curl --request GET \
--url https://davinci-app.com/api/v2/projects/{projectId}/cards \
--header 'Authorization: Bearer <token>'import requests
url = "https://davinci-app.com/api/v2/projects/{projectId}/cards"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://davinci-app.com/api/v2/projects/{projectId}/cards', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://davinci-app.com/api/v2/projects/{projectId}/cards', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"cards": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"resolution": "<string>",
"created_by_user": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deadline": "2023-11-07T05:31:56Z",
"is_open": true,
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"effort": 1,
"tag_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"user_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"team_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"team_status_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"sprint_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"team_statuses": [
{
"team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status_name": "<string>",
"status_color": "<string>",
"sprint_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"team_placements": [
{
"team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sprint_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"history_head_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"history_head_sequence": "<string>",
"author_display_name": "<string>",
"closed_at": "2023-11-07T05:31:56Z"
}
],
"meta": {
"limit": 2,
"hasMore": true,
"state": "open",
"sort": "<string>",
"previousCursor": "<string>",
"nextCursor": "<string>",
"total": 1,
"projection": "full",
"hydrateOpen": true,
"pageStart": 1,
"pageEnd": 1
},
"filterOptions": {
"tags": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"color": "<string>"
}
],
"teams": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"assignees": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_name": "<string>"
}
],
"statuses": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"color": "<string>",
"teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"teamName": "<string>"
}
],
"sprints": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "active",
"teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"teamName": "<string>"
}
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}Search project cards
Returns a bounded flat card page plus tag, assignee, linked-team,
workflow-status, and accessible active/planned sprint filter options.
Cards default to open only. Values within
one repeated/comma-separated filter are ORed; distinct filter dimensions
are ANDed. includeNoTeam extends the team facet with cards having no
placement, and includeUnassigned extends the assignee facet with cards
having no user links. Deadline and effort bounds are inclusive. Within
either range dimension, its include-no-value flag ORs null-valued cards
with bounded non-null matches; using only the flag matches only null-valued
cards. Range dimensions AND with every other facet. Invalid instants,
negative/non-integer effort values, reversed ranges, and cursors issued
for different ranges return canonical 400 errors:
INVALID_CARD_DEADLINE_FILTER, INVALID_CARD_DEADLINE_RANGE,
INVALID_CARD_EFFORT_FILTER, INVALID_CARD_EFFORT_RANGE, or
INVALID_CARD_CURSOR. Results use an explicit stable sort and opaque
cursor.
curl --request GET \
--url https://davinci-app.com/api/v2/projects/{projectId}/cards \
--header 'Authorization: Bearer <token>'import requests
url = "https://davinci-app.com/api/v2/projects/{projectId}/cards"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://davinci-app.com/api/v2/projects/{projectId}/cards', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://davinci-app.com/api/v2/projects/{projectId}/cards', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"cards": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"resolution": "<string>",
"created_by_user": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deadline": "2023-11-07T05:31:56Z",
"is_open": true,
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"effort": 1,
"tag_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"user_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"team_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"team_status_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"sprint_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"team_statuses": [
{
"team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status_name": "<string>",
"status_color": "<string>",
"sprint_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"team_placements": [
{
"team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sprint_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"history_head_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"history_head_sequence": "<string>",
"author_display_name": "<string>",
"closed_at": "2023-11-07T05:31:56Z"
}
],
"meta": {
"limit": 2,
"hasMore": true,
"state": "open",
"sort": "<string>",
"previousCursor": "<string>",
"nextCursor": "<string>",
"total": 1,
"projection": "full",
"hydrateOpen": true,
"pageStart": 1,
"pageEnd": 1
},
"filterOptions": {
"tags": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"color": "<string>"
}
],
"teams": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"assignees": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_name": "<string>"
}
],
"statuses": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"color": "<string>",
"teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"teamName": "<string>"
}
],
"sprints": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "active",
"teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"teamName": "<string>"
}
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}Authorizations
Personal access token. The scopes granted at issuance determine both which
operations the key may call and the ceiling on the resource permissions it
can exercise. Each scope family is a ladder: projects:manage implies
projects:write and projects:read; cards:manage implies cards:write
and cards:read; and teams:manage implies teams:write and teams:read.
These are named API capability bundles, not blanket domain roles:
manage exposes only the permissions enumerated for that scope and never
bypasses the acting user's current role-based access.
Path Parameters
Project id. May be compound in the form {projectId}--{branchName}.
1Query Parameters
Case-insensitive substring search across card name, description, and resolution.
200Project-global card lifecycle state.
open, closed, all Match cards carrying any selected project tag.
50Match cards assigned to any selected project member.
50OR cards with no user links into the assignee facet. This is not a sentinel assignee ID.
Match cards placed on any selected linked team.
50OR cards with no team placement into the team facet. This is not a sentinel team ID.
Match cards whose selected-team placement uses any selected status.
50Match cards whose team placement uses any selected sprint.
50Inclusive ISO 8601 instant lower bound for non-null card deadlines.
Inclusive ISO 8601 instant upper bound for non-null card deadlines.
OR cards with a null deadline into bounded deadline matches. With no deadline bounds, match only cards with no deadline.
Inclusive lower bound for non-null card effort.
x >= 0Inclusive upper bound for non-null card effort.
x >= 0OR cards with null effort into bounded effort matches. With no effort bounds, match only cards with no effort.
Stable card sort; card ID is the deterministic tie-breaker.
created_asc, created_desc, updated_asc, updated_desc, deadline_asc, deadline_desc, effort_asc, effort_desc, name_asc, name_desc Maximum cards returned.
1 <= x <= 500Opaque cursor returned as meta.nextCursor or meta.previousCursor.
2048Response
Flat project-card search page.
Hide child attributes
Hide child attributes
Optional Markdown resolution; closing or reopening the card does not clear it.
10000Unit-agnostic estimate, commonly interpreted as story points or hours.
x >= 0Deterministically ordered placed-team status metadata.
Latest committed card-history row ID; null only before a card has history.
Globally monotonic card-history sequence.
^\d+$Display name of the user who created the card, when available.
Timestamp of the latest transition to the closed state; null while open.
Hide child attributes
Hide child attributes
x >= 1open, closed, all x >= 0full, index, mention x >= 0x >= 0Hide child attributes
Hide child attributes