---
title: "Read an object's commit history"
method: GET
path: "/api/v2/projects/{projectId}/objects/{objectId}/history"
tags: ["Branches"]
---

# Read an object's commit history

`GET /api/v2/projects/{projectId}/objects/{objectId}/history`

## Request

- Base URL: `https://davinci-app.com`
- URL: `https://davinci-app.com/api/v2/projects/{projectId}/objects/{objectId}/history`
- Auth: HTTP bearer

Returns the commits on a branch that changed one object, newest first, each
with the object's state at that commit and the fields that changed.

Commits that did not touch the object are omitted, so this is not a slice of
the project history — it is the object's own.

## Query parameters

- `branch` string
- `limit` integer

## Response `200`

The object's history on this branch.

- ObjectHistoryResponse
  - `objectId` string, required
  - `found` boolean, required: False when no commit on this branch ever touched the object.
  - `totalChanges` integer, required
  - `history` ObjectHistoryEntry[], required: Newest first. Commits that did not change the object are omitted.
    - `commit` object, required
      - `hash` string, required
      - `shortHash` string
      - `message` string
      - `timestamp` string, date-time
      - `author` object
        - `name` string
        - `email` string
    - `changeType` 'created' | 'modified' | 'deleted', required
    - `state` object, nullable: The object as of this commit. Null when the commit deleted it.
    - `changes` object: Field-level difference from the previous commit.

## Other responses

- `400`: Malformed request parameters or body. Agile requests may return `INVALID_PAGINATION` or `INVALID_IDEMPOTENCY_KEY`.
- `401`: No credential was supplied, or the supplied credential is malformed, expired, or revoked. A credential that is present but unusable is never downgraded to an anonymous request.
- `403`: Authenticated but not authorized. Either the acting user lacks the required resource permission, the key's scope ceiling excludes it, or the endpoint rejects this credential type (`CREDENTIAL_NOT_PERMITTED`).
- `404`: The resource does not exist in the parent named by the path, or is hidden from the caller. Absence and privacy denial are deliberately indistinguishable so project, organization, and private-team existence cannot be probed.
- `409`: The project stopped running between being opened for this request and the request reaching it. Error code is `PROJECT_NOT_RUNNING`. Retry: the next call opens it again.
- `429`: Request rate exceeded, either globally or for this key.
- `500`: Unexpected server error.
- `502`: The git operation failed inside the engine rather than being refused. Error code is `GIT_OPERATION_FAILED`, or `CHANGES_UNAVAILABLE` and `COMMIT_NOT_RECORDED` for the two cases where a specific step is known to have produced nothing.
- `503`: The project could not be opened in time, or no machine is currently available to run it. Error codes are `PROJECT_NOT_READY`, `SERVER_NOT_AVAILABLE`, and `SERVICE_UNAVAILABLE`. Retry after the interval in `Retry-After`.

## Changes

- **2026-09-15** (v2) `67c8b8616dbb`: 9 info
  - the `success` response property const value `false` was added for the status `400`
  - the `success` response property const value `false` was added for the status `401`
  - the `success` response property const value `false` was added for the status `403`
  - the `success` response property const value `false` was added for the status `404`
  - …5 more
- **2026-09-15** (v2) `48948af37797`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/changes/api/v2/projects/:projectId/objects/:objectId/history/get.md)

---

[API](https://skmtc.dev/celedon-solutions/apis/davinci-public-api.md) - [All operations](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/revisions/279218ca2e8d?raw)
