Ingest server-side event
const url = 'https://hitkeep.com/api/ingest/server/event';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"dnt":true,"name":"example","properties":{},"referrer":"example","session_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","timestamp":"2026-04-15T12:00:00Z","url":"https://example.com","user_agent":"example","visitor_ip":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://hitkeep.com/api/ingest/server/event \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "dnt": true, "name": "example", "properties": {}, "referrer": "example", "session_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "timestamp": "2026-04-15T12:00:00Z", "url": "https://example.com", "user_agent": "example", "visitor_ip": "example" }'Accepts one trusted server-side custom event from an API client. This server-to-server endpoint does not require browser Origin or Referer headers. HitKeep resolves the site from the submitted URL hostname, requires site.manage_data for that resolved site, and uses visitor_ip for ingest-time exclusions and spam filtering. Stored analytics records contain derived context instead of the visitor IP. This endpoint uses the ingest rate limiter.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
When true, HitKeep drops the record consistently with browser tracker privacy behavior.
Custom event name.
object
Optional visitor grouping key. If omitted, this event gets its own standalone session.
Canonical analytics time in RFC3339 format.
Absolute page or event context URL. The hostname resolves the configured HitKeep site.
User agent from the original visitor request context.
Trusted transient visitor IP context. Used for filtering and enrichment, then discarded.
Example generated
{ "dnt": true, "name": "example", "properties": {}, "referrer": "example", "session_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "timestamp": "2026-04-15T12:00:00Z", "url": "https://example.com", "user_agent": "example", "visitor_ip": "example"}Responses
Section titled “ Responses ”Accepted. Empty response body.
Invalid request
object
Example generated
{ "message": "example"}Unauthorized
object
Example generated
{ "message": "example"}Access denied
object
Example generated
{ "message": "example"}Site not found
object
Example generated
{ "message": "example"}Too many requests
object
Example generated
{ "message": "example"}Service not available
object
Example generated
{ "message": "example"}