Overview

Each supported cloud service, such as S3, has its own dedicated POST route in the API. Every route supports a set of allowed, predefined usage events. In some cases, like S3, these usage event types are given by the API methods supported by the service. In other cases, such as open-ended compute services like EC2, these usage event types are defined by Dashdive rather than the cloud provider.

Currently, only one event can be sent per POST request, but an analogous batch route for each endpoint will be added soon.

Data Type Considerations

Upon schema failure, the rejected event will still be recorded to the database in raw form. This way, the schema violation can be manually corrected later, and the event can be inserted as originally intended.

  • Timestamps. It is recommended to pass timestamps in ISO 8601 “Extended Date and Time” format and with timezone omitted, meaning UTC is implied (e.g. "2013-01-01T04:00:00Z"). Dashdive will attempt to honor timezone annotations (e.g. +08:00) if present.
  • Required vs. optional fields. All fields are required unless explicitly marked as optional. If a required field is missing, schema validation will fail and the event will be rejected.
  • Permissive with extraneous fields. If unexpected fields (e.g. { "unknown_foo": "bar" }) are included, the event will still be accepted, and the unexpected fields are simply ignored. Note that the data in those fields is permanently lost. Unlike hard schema violations where a required field is missing or malformed, validated events with extraneous fields are not recorded in their raw form.
  • Nullability. An explicit null can always be passed for optional fields.

OpenAPI Specification

The most up-to-date OpenAPI spec is always available at: https://ingest.dashdive.com/openapi.json.

Authentication

API key based authentication is required for all endpoints. Use your Dashdive API key as follows:

"header": {
  "X-API-Key": "<YOUR_DASHDIVE_API_KEY>"
}

Valid API keys have the format: <8_char_readable_prefix>.<48_char_base64_payload>. For example: EXMPLKEY.SGVsbG8gd29ybGQgZnJvbSBEYXNoZGl2ZSEgKGJhc2U2NCk=.