tactility 0.1.0 Private request analytics API. AUTHENTICATION All POST actions require: Authorization: Bearer REQUEST FORMAT {"id":"optional","params":{...}} ACCOUNT ACTIONS POST /v1/account/create email, domains[] (domain_id values) POST /v1/account/update account_id, email, domains[] POST /v1/account/delete account_id POST /v1/account/get account_id and/or email POST /v1/account/find optional email, domain_id, limit, offset DOMAIN ACTIONS POST /v1/domain/create domain_name, timezone_offset POST /v1/domain/update domain_id, domain_name, timezone_offset POST /v1/domain/delete domain_id POST /v1/domain/get domain_id and/or domain_name POST /v1/domain/find optional domain_name, limit, offset timezone_offset defaults to 0 and controls daily report boundaries. REQUEST INGESTION POST /v1/request/create Required: domain_name, ip Optional: start, end, ms, timer, method, pathname, query, referrer, user_agent, status_code, request_id start and end are Unix timestamps in milliseconds. ms is the total duration and timer contains named durations. Unknown fields are ignored. start defaults to ingestion time. The IP is stored internally for unique counts and location data. The IP is never returned by the request API. Request records expire one year after ingestion. EXAMPLE { "id": "optional", "params": { "domain_name": "example.com", "ip": "203.0.113.10", "start": 1787871600000, "end": 1787871600042, "ms": 42, "timer": { "database": 8.4 }, "method": "GET", "pathname": "/articles", "status_code": 200 } } REQUEST DATA POST /v1/request/find email, domain_name, from, to from and to are ISO dates. The account must include the domain. REPORT DATA POST /v1/report/find email, domain_name, from, to from and to are JSON dates resolved using the domain timezone. The resulting local report dates are inclusive. ANALYTICS POST /v1/analytics/get email, domain_name, range range is daily, weekly, monthly, or yearly. Returns one object aggregated from stored daily reports. Ranges use the domain timezone and end on the current local day. Weekly starts Monday, monthly on day 1, yearly on January 1. RESPONSES Success: {"ok":true,"data":...} Failure: {"ok":false,"code":"...","message":"..."} Created by Tekki AS: https://tekki.no