API 레퍼런스

개인 액세스 토큰으로 호출할 수 있는 공개 REST 엔드포인트입니다.

인증

프로필 → 통합 설정 → 액세스 토큰에서 아래 엔드포인트가 요구하는 스코프로 개인 액세스 토큰을 발급한 뒤, "Authorization: Bearer velocis_pat_..."로 전송하세요. 토큰은 그 스코프가 허용하는 만큼만 접근하며, 본인의 프로젝트 권한을 우회하지 않습니다.

로그인하고 토큰 발급하기

Issues

GET/issues
List issues

Returns a page of issues the token owner can see, newest first. Every filter is optional; limit is clamped to 1000 server-side.

필요 스코프: issues:read
파라미터
이름위치필수 여부타입설명
allocatablequery선택string`true` or `1` to drop issues whose status cannot receive a resource allocation. Adds to any `excludeStatuses` you pass rather than replacing it.
assignedToMequery선택string`true` or `1` to narrow to issues assigned to the caller. Applied outside `q`, so an `OR` in `q` cannot widen past it.
assigneeIdquery선택stringNarrow to one assignee, by user id — or the literal `unassigned` for issues with nobody assigned.
excludeStatusesquery선택stringComma-separated statuses to exclude. Parsed exactly like `statuses`.
facetsquery선택stringComma-separated dimensions to count over the same filters, returned as `meta.facets`: `status`, `priority`, `assignee`, `project`, `sprint`, `type`, `epic`, `milestone`. Each dimension is counted without its own filter.
filteredFacetsquery선택stringLike `facets`, but each dimension is counted under the FULL query, its own filter included — how many of the matching issues carry each value. Returned as `meta.filteredFacets`. In both, a bucket is `{ groupId, groupValue, totalCount }`; an `epic` bucket other than `no-epic` also carries `epicStatus`, the status of the epic issue itself; a `milestone` bucket other than `none` also carries the milestone `status` (`open` / `closed`) and its `position` in the project order. A `filteredFacets` bucket also carries `storyPoints`, the points of the bucket under the estimate rule in force: the own points of its members; with `advanced.features.leafEstimateRollup` on, the points of the members that are estimate leaves among ALL the matching issues (a sub-issue outside the result hides nothing), so the buckets add up to the result and the buckets of a sprint to its summary. A `milestone` bucket is always the closure minus the descendants assigned to another milestone. It is seeded from the matching members, so it equals the milestone progress points only when the list is unfiltered.
groupByquery선택stringField being grouped by, such as `status` or `assignee`. Takes effect only together with `groupValue`.
groupValuequery선택stringWhich group within `groupBy` to return — one status, one assignee id (`unassigned` for none), one epic id (`no-epic`), or one milestone id (`none`).
includeArchivedquery선택string`true` or `1` to return archived issues alongside active ones.
limitquery선택numberPage size. Defaults to 50 and is clamped to 1000.
onlyArchivedquery선택string`true` or `1` to return only archived issues. Checked before `includeArchived`, so the two cannot contradict each other.
pagequery선택number1-based page number. Defaults to 1.
projectIdquery선택stringNarrow to one project, by id. Use `projectIds` for several.
projectIdsquery선택stringComma-separated project ids, to query across several projects at once. Entries that are not ids are dropped.
qquery선택stringSearch query in the advanced-search grammar (`status:todo assignee:me is:open sort:priority-desc login`), combined with every other filter; at most 2000 characters. Free text ranks by relevance unless `sortBy` or a `sort:` token is set. Tokens that did not apply are listed in `meta.query.ignoredTokens`; the ordering that ran is `meta.appliedSort`.
sortByquery선택stringField to sort by. A field outside the allowed set leaves the default ordering in place. Wins over a `sort:` token in `q`.
sortOrderquery선택string`asc` or `desc`. Applies only with `sortBy`; any other value reads as `asc`.
sprintIdquery선택stringNarrow to the issues in one sprint, by id. Applied outside `q`, so an `OR` in `q` cannot widen past it.
statusquery선택stringNarrow to a single status. Use `statuses` to pass several.
statusesquery선택stringComma-separated statuses to include. Unrecognised values are dropped; if none survive, the filter is not applied rather than matching nothing.
tagIdsquery선택stringComma-separated tag ids. Entries that are not ids are dropped.
unallocatedquery선택string`true` or `1` to return only issues that have no resource allocations.
응답
200

A page of issues. Each row carries `allocation: { capability: 'manage' | 'self' | 'none', reason?: 'no_permission' | 'issue_archived' | 'issue_container' | 'issue_cancelled' }` — what the caller's CURRENT credential may do. Allocation routes do not accept personal access tokens, so a token request always reads `none` / `no_permission`. `meta.stats` counts the matching issues per status; `meta.query` is the parsed `q` (its `ignoredTokens` did not apply); `meta.appliedSort` is the ordering that ran; `meta.facets` is present when `facets` was requested.

403

The token lacks `issues:read`.

POST/issues
Create an issue

Creates an issue in the given project. The token owner must have permission to create issues there — the issues:write scope narrows the token, it does not grant access.

필요 스코프: issues:write
요청 본문
응답
201

The created issue.

403

The token lacks `issues:write`, or its owner may not create issues in this project.

GET/issues/{id}
Get one issue

Returns a single issue by its id. 403 when the token owner cannot see it — the scope is a ceiling over their own permissions, never a grant.

필요 스코프: issues:read
파라미터
이름위치필수 여부타입설명
idpath필수stringThe issue's id. Not the issue number — `VEL-101` is rejected here.
응답
200

The issue.

404

No such issue.

Projects

GET/projects
List projects

Returns the projects the token owner is a member of. Pass minimal=true for id + name only, which is what a script addressing issues usually needs.

필요 스코프: projects:read
파라미터
이름위치필수 여부타입설명
includeArchivedquery선택string`true` or `1` to return archived projects alongside active ones.
minimalquery선택string`true` or `1` to return only id and name per project — enough to address issues, and much smaller.
응답
200

The projects.

403

The token lacks `projects:read`.

GET/projects/{id}
Get one project

Returns a single project by its id, including its workflow metadata. 403 when the token owner is not a member.

필요 스코프: projects:read
파라미터
이름위치필수 여부타입설명
idpath필수stringThe project's id, as returned by `GET /projects`.
응답
200

The project.

404

No such project.