Skip to content

Query board content list

GET /api/v5/org/{owner}/kanban/{kanban_id}/item_list

This endpoint queries the list of content items in a board under the specified organization. It supports filtering by repository, source type (issue/merge_request), source state, title, and issue or PR number, supports pagination, and returns details such as content items, associated repositories, labels, assignees, milestones, and board field values.

Access token support

  • AtomGit user access token (AtomGit user access tokens)

Anonymous access

This endpoint allows anonymous access.

Request parameters

Parameter Location Type Required Description
owner path string Yes Organization path
kanban_id path string Yes Board ID
repo query string No Repository path
source_type query string No Source type; enum: issue / merge_request
source_status query string No Source status; enum: opened / closed / merged
title query string No Title
source_iids query string No Query by the iid of a PR or issue; when using this parameter you must provide the repo parameter, otherwise it has no effect
page query string No Pagination parameter; page number
per_page query string No Pagination parameter; number per page

Response parameters

Field Type Always returned Nullable Description
id integer Yes — Board content item ID
number integer Yes — Number
title string Yes — Title
source_type string Yes — Source type (issue / merge_request)
status string Yes — Source status (opened / closed / merged)
html_url string Yes — HTML URL
url string Yes — API URL
repo object Yes — Associated repository information
labels object[] Yes — Label list
assignees object[] Yes — Assignee list
milestone_resp object No — Milestone information
linked_pull_requests object[] No — Linked pull request list
values object[] Yes — Board field value list
reviewers object[] No — Reviewer list

Note: The response body is a JSON array; the table above describes the fields of each array element (a board content item).

repo object

Field Type Always returned Nullable Description
repo.id integer Yes — Repository ID
repo.full_name string Yes — Repository full name
repo.human_name string Yes — Repository display name
repo.url string Yes — Repository API URL
repo.name string Yes — Repository name

labels object (array element)

Field Type Always returned Nullable Description
labels.id integer Yes — Label ID
labels.name string Yes — Label name
labels.color string Yes — Label color

assignees object (array element)

Field Type Always returned Nullable Description
assignees.id string Yes — User ID
assignees.login string Yes — Login name
assignees.name string Yes — Name
assignees.avatar_url string Yes — Avatar URL
assignees.html_url string Yes — User profile URL
assignees.url string Yes — User API URL

milestone_resp object

Field Type Always returned Nullable Description
milestone_resp.html_url string Yes — Milestone HTML URL
milestone_resp.id integer Yes — Milestone ID
milestone_resp.title string Yes — Milestone title
milestone_resp.url string Yes — Milestone API URL

linked_pull_requests object (array element)

Field Type Always returned Nullable Description
linked_pull_requests.id integer No — Pull request ID
linked_pull_requests.html_url string No — Pull request HTML URL
linked_pull_requests.number integer No — Number
linked_pull_requests.state string No — State
linked_pull_requests.url string No — Pull request API URL
linked_pull_requests.repo object No — Associated repository information

linked_pull_requests.repo object

Field Type Always returned Nullable Description
linked_pull_requests.repo.id integer Yes — Repository ID
linked_pull_requests.repo.full_name string Yes — Repository full name
linked_pull_requests.repo.human_name string Yes — Repository display name
linked_pull_requests.repo.url string Yes — Repository API URL
linked_pull_requests.repo.name string Yes — Repository name

values object (array element)

Field Type Always returned Nullable Description
values.field_name string Yes — Field name
values.field_type string Yes — Field type
values.value object Yes — Field value

values.value object

Field Type Always returned Nullable Description
values.value.color string Yes — Color
values.value.value string Yes — Field value
values.value.position integer Yes — Sort position
values.value.description string No — Description

reviewers object (array element)

Field Type Always returned Nullable Description
reviewers.id string No — User ID
reviewers.login string No — Login name
reviewers.name string No — Name
reviewers.avatar_url string No — Avatar URL
reviewers.html_url string No — User profile URL
reviewers.url string No — User API URL

Error responses

A success response alone is not enough: callers need to know what failures look like in order to write error handling.

400 Invalid parameters

{
  "error": "invalid_request",
  "message": "The owner parameter cannot be empty",
  "field": "owner"
}

401 Unauthenticated

{
  "error": "unauthorized",
  "message": "Missing or invalid access token"
}

The actual error field names are determined by what the backend returns; do not make them up when you cannot confirm them.

HTTP response status codes

Status code Description
200 Success (OK)
304 Not modified
401 Requires authentication
403 Forbidden

Request example

Parameter description

  • Replace <org> with the organization path (the address path of an enterprise, organization, or individual);
  • Replace <kanban_id> with the board ID;
  • Replace <repo> with the repository path (optional);
  • This endpoint allows anonymous access; you may also authenticate with an AtomGit user access token (via the access_token parameter) (optional).

cURL

curl -X GET 'https://api.atomgit.com/api/v5/org/<org>/kanban/<kanban_id>/item_list?repo=<repo>&source_type=issue&source_status=opened&page=1&per_page=20' \
  -H 'Accept: application/json'

JavaScript

const org = "<org>";
const kanbanId = "<kanban_id>";

const params = new URLSearchParams({
  repo: "<repo>",
  source_type: "issue",
  source_status: "opened",
  page: "1",
  per_page: "20",
});

const response = await fetch(
  `https://api.atomgit.com/api/v5/org/${encodeURIComponent(org)}/kanban/${encodeURIComponent(kanbanId)}/item_list?${params}`,
  {
    headers: {
      "Accept": "application/json",
    },
  },
);

if (!response.ok) {
  throw new Error(`Request failed: ${response.status}`);
}

const data = await response.json();
console.log(data);

Python

import requests

org = "<org>"
kanban_id = "<kanban_id>"

params = {
    "repo": "<repo>",
    "source_type": "issue",
    "source_status": "opened",
    "page": "1",
    "per_page": "20",
}

resp = requests.get(
    f"https://api.atomgit.com/api/v5/org/{org}/kanban/{kanban_id}/item_list",
    params=params,
    headers={"Accept": "application/json"},
    timeout=10,
)
resp.raise_for_status()

print(resp.json())

Response example

Status code: 200

[
  {
    "id": 101,
    "number": 2,
    "title": "Implement board content list query endpoint",
    "source_type": "issue",
    "status": "opened",
    "html_url": "https://api.atomgit.com/<org>/<repo>/issues/2",
    "url": "https://api.atomgit.com/api/v5/org/<org>/kanban/<kanban_id>/item_list",
    "repo": {
      "id": 1,
      "full_name": "<org>/<repo>",
      "human_name": "Example repository",
      "url": "https://api.atomgit.com/api/v5/repos/<org>/<repo>",
      "name": "<repo>"
    },
    "labels": [
      {
        "id": 1,
        "name": "bug",
        "color": "#d73a4a"
      }
    ],
    "assignees": [
      {
        "id": "12345",
        "login": "octocat",
        "name": "Octo Cat",
        "avatar_url": "https://api.atomgit.com/avatars/octocat.png",
        "html_url": "https://api.atomgit.com/octocat",
        "url": "https://api.atomgit.com/api/v5/users/octocat"
      }
    ],
    "milestone_resp": {
      "html_url": "https://api.atomgit.com/<org>/<repo>/milestone/3",
      "id": 3,
      "title": "v1.0",
      "url": "https://api.atomgit.com/api/v5/repos/<org>/<repo>/milestones/3"
    },
    "linked_pull_requests": [
      {
        "id": 501,
        "html_url": "https://api.atomgit.com/<org>/<repo>/pull/5",
        "number": 5,
        "state": "open",
        "url": "https://api.atomgit.com/api/v5/repos/<org>/<repo>/pulls/5",
        "repo": {
          "id": 1,
          "full_name": "<org>/<repo>",
          "human_name": "Example repository",
          "url": "https://api.atomgit.com/api/v5/repos/<org>/<repo>",
          "name": "<repo>"
        }
      }
    ],
    "values": [
      {
        "field_name": "State",
        "field_type": "select",
        "value": {
          "color": "#36a2eb",
          "value": "In progress",
          "position": 1,
          "description": "Current iteration in progress"
        }
      }
    ],
    "reviewers": [
      {
        "id": "67890",
        "login": "reviewer1",
        "name": "Reviewer One",
        "avatar_url": "https://api.atomgit.com/avatars/reviewer1.png",
        "html_url": "https://api.atomgit.com/reviewer1",
        "url": "https://api.atomgit.com/api/v5/users/reviewer1"
      }
    ]
  }
]

Error codes

Error code Description
401 Unauthenticated or invalid credentials (missing or invalid access credentials)
400 Invalid parameters or unparseable request
404 Request path does not exist
405 Request method not supported
429 Too many requests; rate limit triggered
500 Internal system error

Markdown source: View on AtomGit·Content from the open-source project gitcode-dev/atomgit-api-doc