v1

latestOpenAPI 3.0.02026-07-141,4077,1665.2 MB
Product Analytics

Send server-side events

Send server-side events to Product Analytics. Server-side events are retained for 15 months.

Server-Side events in Product Analytics are helpful for tracking events that occur on the server, as opposed to client-side events, which are captured by Real User Monitoring (RUM) SDKs. This allows for a more comprehensive view of the user journey by including actions that happen on the server. Typical examples could be checkout.completed or payment.processed.

Ingested server-side events are integrated into Product Analytics to allow users to select and filter these events in the event picker, similar to how views or actions are handled.

Requirements:

  • At least one of usr, account, or session must be provided with a valid ID.
  • The application.id must reference a Product Analytics-enabled application.

Custom Attributes: Any additional fields in the payload are flattened and searchable as facets. For example, a payload with {"customer": {"tier": "premium"}} is searchable with the syntax @customer.tier:premium in Datadog.

The status codes answered by the HTTP API are:

  • 202: Accepted: The request has been accepted for processing
  • 400: Bad request (likely an issue in the payload formatting)
  • 401: Unauthorized (likely a missing API Key)
  • 403: Permission issue (likely using an invalid API Key)
  • 408: Request Timeout, request should be retried after some time
  • 413: Payload too large (batch is above 5MB uncompressed)
  • 429: Too Many Requests, request should be retried after some time
  • 500: Internal Server Error, the server encountered an unexpected condition that prevented it from fulfilling the request, request should be retried after some time
  • 503: Service Unavailable, the server is not ready to handle the request probably because it is overloaded, request should be retried after some time
post/api/v2/prodlytics

Request body

type'server' required

The type of Product Analytics event. Must be server for server-side events.

Example request

{
  "account": {
    "id": "account-67890"
  },
  "application": {
    "id": "123abcde-123a-123b-1234-123456789abc"
  },
  "event": {
    "name": "payment.processed"
  },
  "session": {
    "id": "session-abcdef"
  },
  "type": "server",
  "usr": {
    "id": "user-12345"
  }
}

Response

Request accepted for processing (always 202 empty JSON).

object required