---
title: "Get card details"
method: GET
path: "/api/v2/projects/{projectId}/cards/{cardId}/details"
tags: ["Cards"]
---

# Get card details

`GET /api/v2/projects/{projectId}/cards/{cardId}/details`

## Request

- Base URL: `https://davinci-app.com`
- URL: `https://davinci-app.com/api/v2/projects/{projectId}/cards/{cardId}/details`
- Auth: HTTP bearer

Returns the card with tags, users, linked cards, design-object references,
team placements, the newest 50 comments, and up to 50 newest history events.
Use the paginated comment/history routes to continue older timelines.

## Response `200`

Composite card details.

- CardDetails
  - `card` AgileCard, required
    - `id` string, uuid, required
    - `name` string, required
    - `description` string, nullable, required
    - `resolution` string, nullable, required: Optional Markdown resolution; closing or reopening the card does not clear it.
    - `created_by_user` string, uuid, nullable, required
    - `author_display_name` string, nullable: Display name of the user who created the card, when available.
    - `created_at` string, date-time, nullable, required
    - `closed_at` string, date-time, nullable: Timestamp of the latest transition to the closed state; null while open.
    - `updated_at` string, date-time, nullable, required
    - `deadline` string, date-time, nullable, required
    - `is_open` boolean, required
    - `project_id` string, uuid, required
    - `effort` integer, nullable, required: Unit-agnostic estimate, commonly interpreted as story points or hours.
  - `tags` AgileCardTag[], required
    - `id` string, uuid, required
    - `name` string, required
    - `description` string, nullable, required
    - `color` string, required
    - `status` string, required
    - `project_id` string, uuid, required
  - `userLinks` CardUserDetailsLink[], required
    - `link_id` string, uuid, required
    - `id` string, uuid, required
    - `display_name` string, nullable, required
    - `relation_type` string, required
    - `created_at` string, date-time, nullable, required
  - `linkedCards` CardLinkedCard[], required
    - `<<` unknown
    - `link_id` string, uuid, required
    - `link_type` 'relates_to' | 'depends_on', required
    - `direction` 'outgoing' | 'incoming', required
  - `objectLinks` AgileCardObjectLink[], required
    - `id` string, uuid, required
    - `card_id` string, uuid, required
    - `object_id` string, uuid, required
    - `object_name` string, required
    - `object_type` string, required
    - `link_type` string, required
    - `project_id` string, uuid, required
    - `branch_name` string, required
    - `created_at` string, date-time, nullable, required
  - `teams` CardTeamPlacement[], required
    - `<<` unknown
    - `sprint_id` string, uuid, nullable, required
    - `status_id` string, uuid, nullable, required
    - `sprint_name` string, nullable, required
    - `status_name` string, nullable, required
    - `status_color` string, nullable
    - `status_close_mode` 'off' | 'manual' | 'automatic' | 'add_mover_to_assignees': Automatic close-on-entry behavior for a workflow status. The bulk close action is available for every status. `off` leaves card state unchanged on entry, while `automatic` closes open cards on entry. `manual` is a deprecated legacy value with the same entry behavior as `off`. `add_mover_to_assignees` is a deprecated write alias that stores `closeMode=off` with `assignMoverOnEntry=true`; reads never return that alias.
    - `status_assign_mover_on_entry` boolean, nullable
    - `requiredCardFields` CardRequiredField[], required
    - `requiredFieldsCompliant` boolean, required
    - `missingRequiredFields` CardRequiredField[], required
    - `org_handle` string, nullable
    - `org_slug` string, nullable
    - `placementAccess` 'full' | 'summary', required: `summary` exposes only bounded Team, status, and sprint identifiers and labels when the Project Card reader cannot otherwise read the Team.
  - `teamPlacementCount` integer, required: Number of team placements; closing State remains global and does not move any placement.
  - `comments` CardCommentDetails[], required
    - `<<` unknown
    - `author_display_name` string, nullable, required
  - `history` AgileHistoryEvent[], required
    - `id` string, uuid, required
    - `project_id` string, uuid, nullable, required
    - `org_id` string, uuid, nullable, required
    - `team_id` string, uuid, nullable, required
    - `timestamp` string, date-time, nullable, required
    - `sequence` string, required: Globally monotonic card-history sequence.
    - `entity_id` string, uuid, required
    - `entity_type` 'card' | 'sprint' | 'team' | 'status', required
    - `user_id` string, uuid, nullable, required
    - `event_type` 'created' | 'deleted' | 'opened' | 'closed' | 'ownership_transfer_requested' | 'ownership_transfer_declined' | 'ownership_transferred' | 'field_updated' | 'status_changed' | 'sprint_added' | 'sprint_removed' | 'team_added' | 'team_removed' | 'card_added' | 'card_removed' | 'tag_added' | 'tag_removed' | 'user_link_added' | 'user_link_removed' | 'reference_added' | 'reference_removed' | 'card_link_added' | 'card_link_removed' | 'card_mentioned' | 'comment_added' | 'comment_updated' | 'comment_deleted', required
    - `event_data` object, required: For `field_updated`, `field` may be `resolution` and `old`/`new` carry the Markdown values.
    - `author_display_name` string, nullable, required
  - `historyHeadId` string, uuid, nullable, required: Latest committed card-history row ID; null only before a card has history.
  - `historyHeadSequence` string, nullable, required: Globally monotonic card-history sequence.
  - `historyContext` CardHistoryContext, required
    - `users` object, required
    - `tags` object, required
    - `cards` object, required
    - `references` object, required
  - `teamOptions` CardTeamOption[], required
    - `id` string, uuid, required
    - `name` string, required
    - `organizationId` string, uuid, required
    - `organizationName` string, nullable, required
    - `statuses` CardTeamOptionStatus[], required
      - `id` string, uuid, required
      - `name` string, required
      - `description` string, nullable, required
      - `color` string, required
      - `transitionState` 'not_started' | 'started' | 'closed', required
      - `closeMode` 'off' | 'manual' | 'automatic' | 'add_mover_to_assignees', required: Automatic close-on-entry behavior for a workflow status. The bulk close action is available for every status. `off` leaves card state unchanged on entry, while `automatic` closes open cards on entry. `manual` is a deprecated legacy value with the same entry behavior as `off`. `add_mover_to_assignees` is a deprecated write alias that stores `closeMode=off` with `assignMoverOnEntry=true`; reads never return that alias.
      - `assignMoverOnEntry` boolean, required: When true, entering this status adds the authenticated mover as an assignee without removing existing assignees.
      - `requiredCardFields` CardRequiredField[], required
    - `sprints` CardTeamOptionSprint[], required
      - `id` string, uuid, required
      - `name` string, required
      - `status` 'planned' | 'active' | 'completed', required
      - `startDate` string, date-time, nullable, required
      - `endDate` string, date-time, nullable, required
    - `isPlaced` boolean, required

## Other responses

- `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.
- `429`: Request rate exceeded, either globally or for this key.
- `500`: Unexpected server error.

## Changes

- **2026-09-24** (v2) `4b520e771e08`: 2 warning, 7 info
  - added the new `add_mover_to_assignees` enum value to the `teamOptions/items/statuses/items/closeMode` response property for the response status `200`
  - added the new `add_mover_to_assignees` enum value to the `teams/items/status_close_mode/oneOf[#/components/schemas/TeamStatusCloseMode]/` response property for the response status `200`
  - added the optional property `teams/items/status_assign_mover_on_entry` to the response with the `200` status
  - added the required property `teamOptions/items/statuses/items/assignMoverOnEntry` to the response with the `200` status
  - …5 more
- **2026-09-15** (v2) `aa52eb4e8fd3`: 4 breaking, 3 warning, 1 info
  - the response property `teams/items/org_handle` became optional for the status `200`
  - the response property `teams/items/org_slug` became optional for the status `200`
  - the response property `teams/items/status_close_mode` became optional for the status `200`
  - the response property `teams/items/status_color` became optional for the status `200`
  - …4 more
- **2026-09-15** (v2) `67c8b8616dbb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/changes/api/v2/projects/:projectId/cards/:cardId/details/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)
