---
title: "Ingest events"
method: POST
path: "/api/v1/events"
tags: ["Events"]
---

# Ingest events

`POST /api/v1/events`

Ingests an event or batch of events following the CloudEvents specification.

## Request body

- union — The body of the events request. Either a single event or a batch of events.
  - Event — CloudEvents Specification JSON Schema Optional properties are nullable according to the CloudEvents specification: OPTIONAL not omitted attributes MAY be represented as a null JSON value.
    - `id` string, required — Identifies the event.
    - `source` string, uri-reference, required — Identifies the context in which an event happened.
    - `specversion` string, required — The version of the CloudEvents specification which the event uses.
    - `type` string, required — Contains a value describing the type of event related to the originating occurrence.
    - `datacontenttype` 'application/json', nullable — Content type of the CloudEvents data value. Only the value "application/json" is allowed over HTTP.
    - `dataschema` string, uri, nullable — Identifies the schema that data adheres to.
    - `subject` string, required — Describes the subject of the event in the context of the event producer (identified by source).
    - `time` string, date-time, nullable — Timestamp of when the occurrence happened. Must adhere to RFC 3339.
    - `data` object, nullable — The event payload. Optional, if present it must be a JSON object.
  - Event[]
    - `id` string, required — Identifies the event.
    - `source` string, uri-reference, required — Identifies the context in which an event happened.
    - `specversion` string, required — The version of the CloudEvents specification which the event uses.
    - `type` string, required — Contains a value describing the type of event related to the originating occurrence.
    - `datacontenttype` 'application/json', nullable — Content type of the CloudEvents data value. Only the value "application/json" is allowed over HTTP.
    - `dataschema` string, uri, nullable — Identifies the schema that data adheres to.
    - `subject` string, required — Describes the subject of the event in the context of the event producer (identified by source).
    - `time` string, date-time, nullable — Timestamp of when the occurrence happened. Must adhere to RFC 3339.
    - `data` object, nullable — The event payload. Optional, if present it must be a JSON object.

## Response `204`

There is no content to send for this request, but the headers may be useful.

## Other responses

- `400` — The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
- `401` — The request has not been applied because it lacks valid authentication credentials for the target resource.
- `403` — The server understood the request but refuses to authorize it.
- `412` — One or more conditions given in the request header fields evaluated to false when tested on the server.
- `500` — The server encountered an unexpected condition that prevented it from fulfilling the request.
- `503` — The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.
- `default` — An unexpected error response.

---

[API](https://skmtc.net/openmeterio/apis/openmeter-api.md) · [All operations](https://skmtc.net/openmeterio/apis/openmeter-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openmeterio/openmeter-api/revisions/1cd97f063f4a/schema)
