---
title: "Create Change Event"
method: POST
path: "/change-events"
tags: ["Change Event"]
---

# Create Change Event

`POST /change-events`

## Request

- Base URL: `https://oneuptime.com/api`
- URL: `https://oneuptime.com/api/change-events`
- Auth: API key in header `APIKey`
- TypeScript: <https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/docs/change-events/post.ts> (a function with typed inputs; its response is checked against the schema)

Endpoint to create a new Change Event

## Request body

- object
  - `data` ChangeEventV1CreateSchema, required: Create schema for ChangeEventV1
    - `projectId` string, uuid: ID of project
    - `primaryEntityId` string, uuid: ID of the telemetry Service this change belongs to (the deployed service). Optional — project-wide changes carry none.
    - `primaryEntityType` string: Discriminator for primaryEntityId
    - `time` string, date-time, required: When the change happened
    - `eventType` string: Kind of change — e.g. "deployment", "config-change", "scaling", "rollback", "custom"
    - `title` string, required: Short human label, e.g. "Deploy v2.31.0"
    - `description` string: Optional detail — commit message, change summary, links
    - `attributes` object: Arbitrary tags — version, commit sha, pipeline url, environment
    - `attributeKeys` string[]: Attribute keys extracted from attributes

## Response `201`

Created successfully

- object
  - `data` ChangeEventV1ReadSchema
    - `projectId` string, required: Project ID
    - `primaryEntityId` string: Service ID
    - `primaryEntityType` string: Service Type
    - `time` string: Time
    - `eventType` string: Event Type
    - `title` string, required: Title
    - `description` string: Description
    - `attributes` string: Attributes
    - `attributeKeys` string[]: Attribute Keys

## Other responses

- `400`: Bad request. This response indicates that the request was malformed or contained invalid data.
- `401`: Unauthorized. This response indicates that the request requires user authentication.
- `402`: Payment Required. This response indicates that the request requires payment or a valid subscription.
- `403`: Forbidden. This response indicates that the server understood the request, but refuses to authorize it.
- `405`: Project not found. This response indicates that the requested project does not exist or is not accessible.
- `408`: Request Timeout. This response indicates that the server timed out waiting for the request.
- `415`: Unable to reach server. This response indicates that the server is currently unreachable or down.
- `422`: Not authorized. This response indicates that the user does not have permission to access the requested resource.
- `500`: Internal Server Error. This response indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

---

[API](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification.md) - [All operations](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/revisions/ba3307d00304?raw)
