Have more questions? Need help setting up your workflow? Get in touch!
To access the Zube API, you first need to generate a private key. You will then use this private key to sign access token requests.
Make sure to store this file! Zube only stores the public portion of the key and you will not be able to view this key again.
Before you can send requests to Zube's API endpoints, you will need an access token. Before you can request an access token from Zube, you will need to create a refresh JSON Web Token (JWT) signed by your private key and encoded using the RS256
algorithm. Zube checks the key of this refresh JWT against the public key stored by Zube and returns a new access JWT that you use to access all other API endpoints.
var fs = require('fs');
var jsonwebtoken = require('jsonwebtoken'); // $ npm install jsonwebtoken
var client_id = CLIENT_ID;
var private_key = fs.readFileSync(PATH_TO_PEM_FILE);
var now = Math.floor(Date.now() / 1000);
var refresh_jwt = jsonwebtoken.sign({
iat: now, // Issued at time
exp: now + 60, // JWT expiration time (10 minute maximum)
iss: client_id // Your Zube client id
}, private_key, { algorithm: 'RS256' });
console.log(refresh_jwt);
Replace CLIENT_ID
and PATH_TO_PEM_FILE
in the above code with your information.
The code above creates a refresh JWT with a one minute expiry. You can create your refresh JWT with an expiry of up to 10 minutes. Once your refresh JWT is expired, you will need to generate a new refresh JWT to request new access tokens.
After creating the refresh JWT, you can request a new access token. Set your refresh JWT and Client Id in the Header
of the API request to the tokens endpoint:
curl -i \
-H "Authorization: Bearer REFRESH_JWT" \
-H "X-Client-ID: CLIENT_ID" \
-H "Accept: application/json" \
-X POST \
https://zube.io/api/users/tokens
REFRESH_JWT
and CLIENT_ID
are the values you must replace.
The API request above will return an access token, your ACCESS_JWT
, which you can use to make further requests to Zube's API endpoints.
curl -i \
-H "Authorization: Bearer ACCESS_JWT" \
-H "X-Client-ID: CLIENT_ID" \
-H "Accept: application/json" \
https://zube.io/api/ANY_END_POINT
NOTE: The access JWT in only valid for 24 hours, after which you will need to request a new access token by repeating the steps outlined above.
Zube generates a fingerprint for your private and public key pair using a SHA-1 hash function. You can verify that your private key matches the public key stored on Zube by generating the fingerprint of your private key and comparing it to the fingerprint displayed on Zube. To verify your private key:
openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha1 -c
You can remove a lost, compromised or unwanted private key by deleting it in the Zube interface. After you have deleted your private key, you will be able to generate a new one.
You can find instructions for getting your CLIENT_ID
and generating your ACCESS_JWT
in the Authentication section above.
To send a request to a Zube API endpoint, include your ACCESS_JWT
and CLIENT_ID
in the Header
for your request.
The code below will send a GET
request to the projects
endpoint.
curl -i \
-H "Authorization: Bearer ACCESS_JWT" \
-H "X-Client-ID: CLIENT_ID" \
-H "Accept: application/json" \
https://zube.io/api/projects
The code above will return a JSON object:
{
"pagination":{
"page":1,
"per_page":30,
"total_pages":1,
"total":1
},
"data":[
{
"id":123456,
"account_id":54321,
"description":"The place to organize our web application",
"name":"Web Project",
"created_at":"2018-07-06T03:52:29.513Z",
"updated_at":"2018-07-06T03:52:29.513Z",
"slug":"web-project",
"private":true,
"priority_format":"number",
"priority":true,
"points":true,
"triage":false,
"upvotes":false,
"sources":[
{
"id":123456789,
"github_owner_id":87654321,
"description":"Javascript frontend repository",
"full_name":"zubeio/js-frontend",
"homepage":null,
"html_url":"https://github.com/zubeio/js-frontend",
"name":"js-frontend",
"private":true,
"created_at":"2018-09-13T19:53:09.000Z",
"updated_at":"2019-07-02T22:25:48.000Z",
"webhook_verified_at":"2019-07-03T23:29:09.894Z",
"initial_import_at":"2018-12-17T04:09:49.348Z"
}
],
"workspaces":[
{
"id":654321,
"project_id":123456,
"description":null,
"name":"Product Team Workspace",
"slug":"product-team-workspace",
"private":true,
"priority_format":"number",
"priority":true,
"points":true,
"upvotes":false,
"created_at":"2018-12-17T04:09:49.348Z",
"updated_at":"2018-12-17T04:09:49.348Z",
"archive_merged_prs":false,
"use_category_labels":false
}
]
}
]
}
Most endpoints that return lists will return their data as paginated collections defaulting to 30 items per page. You can specify further pages by passing the page
parameter. For pages that allow customized pagination, you can set the number of results per page with the per_page
parameter.
curl -i \
-H "Authorization: Bearer ACCESS_JWT" \
-H "X-Client-ID: CLIENT_ID" \
"https://zube.io/api/cards?page=2&per_page=10"
Most endpoints that return lists accept order[by]
and order[direction]
parameters. order[direction]
accepts either asc
or desc
. The possible attributes available for order[by]
can be found in the table below the endpoint description.
curl -i \
-H "Authorization: Bearer ACCESS_JWT" \
-H "X-Client-ID: CLIENT_ID" \
"https://zube.io/api/cards?order%5Bby%5D=points&order%5Bdirection%5D=desc"
Most endpoints that return lists can be filtered using where
. For endpoints that support filtering, the attributes available for where
appear in the table below the endpoint. All filtering is scoped under the where
query parameter. For example, you'd use where[project_id]
to filter for a direct match of cards that are on the specified project.
curl -i \
-H "Authorization: Bearer ACCESS_JWT" \
-H "X-Client-ID: CLIENT_ID" \
"https://zube.io/api/cards?where%5Bproject_id%5D=3"
For most endpoints that return lists you can specify which data attributes you'd like included in the response using the select
parameter. select
takes an array of attributes. For example to select just the id
and title
attributes of cards you'd use select[]=id&select[]=title
Note: For convenience, many models return with some of their associated models populated. For endpoints where a model returns with associated model data, the associated data will not be removed when a request includes select
, so select
may be of limited use in those cases.
curl -i \
-H "Authorization: Bearer ACCESS_JWT" \
-H "X-Client-ID: CLIENT_ID" \
"https://zube.io/api/cards?select%5B%5D=id&select%5B%5D=title"
Most responses will return with an ETag
header. You are highly encouraged to make use of ETags for subsequent requests to the same endpoint. If the response would be the same, a 304 Not Modified
will be returned instead.
For example, if you received a response to the cards endpoint with the response header ETag: "27e-BpOwiFj52s046/zdOTfiQ0fepw8"
, then you'd include it as the value of the request header If-None-Match
for subsequent requests like so:
curl -i \
-H "Authorization: Bearer ACCESS_JWT" \
-H "X-Client-ID: CLIENT_ID" \
-H 'If-None-Match: "27e-BpOwiFj52s046/zdOTfiQ0fepw8"' \
https://zube.io/api/cards
When body data is sent for POST
or PUT
requests, it should be sent as valid JSON. Any request that sends body data should also include the required header "Content-Type: application/json"
.
curl -i \
-H "Authorization: Bearer ACCESS_JWT" \
-H "X-Client-ID: CLIENT_ID" \
-H "Content-Type: application/json" \
-d '{"project_id":YOUR_PROJECT_ID,"title":"Hello World"}' \
-X POST \
https://zube.io/api/cards
You can can make at most one (1) request per second. While short bursts of a few requests at a slightly higher rate are permitted, exceeding one request per second for any extended duration will result in rejection of your requests and may constitute abuse.
Never make concurrent requests or make requests at a rate faster than one per second. If you accidentally hit the rate limit, please back off the rate of your requests immediately. If you happen to trigger abuse detection, please do your best not to trigger it again. Failure to observe these rules will result in rejection of your requests and possible suspension from future API usage.
accounts
in the Zube API.
where
clause and order
clause.
name | type |
---|---|
annual_amount
|
numeric |
created_at
|
timestamp |
discount
|
integer |
display_name
|
text |
first_billable_at
|
timestamp |
has_annual_billing
|
boolean |
has_github_billing
|
boolean |
id
|
integer |
private_users_count
|
integer |
seats
|
integer |
slug
|
text |
status
|
text |
updated_at
|
timestamp |
where
clause and order
clause.
name | type |
---|---|
avatar_path_is_locked
|
boolean |
created_at
|
timestamp |
github_user_id
|
integer |
id
|
integer |
is_user
|
boolean |
name
|
text |
name_is_locked
|
boolean |
updated_at
|
timestamp |
username
|
text |
name | type | required | notes |
---|---|---|---|
person_id
|
Integer | ✅ |
where
clause and order
clause.
name | type |
---|---|
avatar_path_is_locked
|
boolean |
created_at
|
timestamp |
github_user_id
|
integer |
id
|
integer |
is_user
|
boolean |
name
|
text |
name_is_locked
|
boolean |
updated_at
|
timestamp |
username
|
text |
name | type | required | notes |
---|---|---|---|
person_id
|
Integer | ✅ |
where
clause and order
clause.
name | type |
---|---|
account_id
|
integer |
auto_add_github_users
|
boolean |
created_at
|
timestamp |
default_epic_list_id
|
integer |
id
|
integer |
name
|
text |
private
|
boolean |
should_use_fibonacci_scale
|
boolean |
slug
|
text |
updated_at
|
timestamp |
where
clause and order
clause.
name | type |
---|---|
body
|
text |
category_name
|
text |
closed_at
|
timestamp |
closer_id
|
integer |
comments_count
|
integer |
created_at
|
timestamp |
creator_id
|
integer |
epic_id
|
integer |
id
|
integer |
last_comment_at
|
timestamp |
number
|
integer |
points
|
number |
priority
|
integer |
project_id
|
integer |
search_key
|
text |
sprint_id
|
integer |
state
|
text |
status
|
text |
updated_at
|
timestamp |
upvotes_count
|
integer |
was_archived_from_404
|
boolean |
workspace_id
|
integer |
name | type | required | notes |
---|---|---|---|
where[created_after]
|
timestamp | ||
where[updated_after]
|
timestamp |
name | type | required | notes |
---|---|---|---|
assignee_ids
|
Array |
Array of assignee.id s
|
|
body
|
Text | ||
category_name
|
String | ||
epic_id
|
Integer | ||
github_issue[milestone_id]
|
Integer | ||
github_issue[source_id]
|
Integer |
Required if github_issue object is sent
|
|
label_ids
|
Array |
Array of label.id s
|
|
points
|
Number | ||
priority
|
Integer |
Must be one of 1 , 2 , 3 , 4 , 5 , or null
|
|
project_id
|
Integer | ✅ | |
sprint_id
|
Integer | ||
title
|
String | ✅ | |
workspace_id
|
Integer |
name | type | required | notes |
---|---|---|---|
assignee_ids
|
Array | ✅ |
Array of assignee.id s
|
body
|
Text | ✅ | |
epic_id
|
Integer | ✅ | |
github_issue[milestone_id]
|
Integer | ✅ | |
label_ids
|
Array | ✅ |
Array of label.id s
|
points
|
Number | ✅ | |
priority
|
Integer | ✅ |
Must be one of 1 , 2 , 3 , 4 , 5 , or null
|
project_id
|
Integer | ✅ | |
sprint_id
|
Integer | ✅ | |
state
|
String | ✅ |
Only accepts open or closed
|
title
|
String | ✅ | |
workspace_id
|
Integer | ✅ |
destination: {
position: CARD_POSITION,
type: "category",
name: NAME_OF_CATEGORY,
workspace_id: YOUR_WORKSPACE_ID
}
To move a card to a project's triage, pass:
destination: {
position: CARD_POSITION,
type: "project"
}
name | type | required | notes |
---|---|---|---|
destination[name]
|
Integer | Name of the destination category. | |
destination[position]
|
Integer | ✅ | |
destination[type]
|
String | ✅ |
Only accepts category or project
|
destination[workspace_id]
|
Integer |
Required if sending destination[type] as category
|
name | type | required | notes |
---|---|---|---|
source_id
|
Integer | ✅ | You cannot change the source for a card that already has a source |
where
clause and order
clause.
name | type |
---|---|
card_id
|
integer |
created_at
|
timestamp |
id
|
integer |
linked_card_id
|
integer |
name | type | required | notes |
---|---|---|---|
card_id
|
Integer | ✅ | |
linked_card_id
|
Integer | ✅ |
where
clause and order
clause.
name | type |
---|---|
card_id
|
integer |
created_at
|
timestamp |
creator_id
|
integer |
id
|
integer |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
body
|
Text | ✅ |
name | type | required | notes |
---|---|---|---|
body
|
Text | ✅ |
where
clause and order
clause.
name | type |
---|---|
card_id
|
integer |
created_at
|
timestamp |
custom_field_id
|
integer |
date
|
timestamp |
id
|
integer |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
custom_field_id
|
Integer | ✅ | |
date
|
Timestamp | ✅ |
name | type | required | notes |
---|---|---|---|
custom_field_id
|
Integer | ✅ | |
date
|
Timestamp | ✅ |
where
clause and order
clause.
name | type |
---|---|
card_id
|
integer |
created_at
|
timestamp |
custom_field_id
|
integer |
id
|
integer |
number
|
double precision |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
custom_field_id
|
Integer | ✅ | |
number
|
Float | ✅ |
name | type | required | notes |
---|---|---|---|
custom_field_id
|
Integer | ✅ | |
number
|
Float | ✅ |
where
clause and order
clause.
name | type |
---|---|
card_id
|
integer |
created_at
|
timestamp |
custom_field_id
|
integer |
id
|
integer |
text
|
text |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
custom_field_id
|
Integer | ✅ | |
text
|
String | ✅ |
name | type | required | notes |
---|---|---|---|
custom_field_id
|
Integer | ✅ | |
text
|
String | ✅ |
where
clause and order
clause.
name | type |
---|---|
card_id
|
integer |
created_at
|
timestamp |
custom_field_id
|
integer |
id
|
integer |
single_select_option_id
|
integer |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
custom_field_id
|
Integer | ✅ | |
single_select_option_id
|
Integer | ✅ |
name | type | required | notes |
---|---|---|---|
custom_field_id
|
Integer | ✅ | |
single_select_option_id
|
Integer | ✅ |
where
clause and order
clause.
name | type |
---|---|
assignee_id
|
integer |
cards_count
|
integer |
cards_status
|
text |
closed_at
|
timestamp |
closer_id
|
integer |
comments_count
|
integer |
created_at
|
timestamp |
creator_id
|
integer |
customer_id
|
integer |
due_on
|
timestamp |
id
|
integer |
number
|
integer |
priority
|
integer |
project_id
|
integer |
search_key
|
text |
start_date
|
timestamp |
state
|
text |
status
|
text |
title
|
text |
track_cards
|
boolean |
type
|
text |
updated_at
|
timestamp |
categories
in the Zube API.
_categoryId
is an ObjectId
, not an integer
.
_categoryId
is an ObjectId
, not an integer
.
where
clause and order
clause.
name | type |
---|---|
created_at
|
timestamp |
data_type
|
USER-DEFINED |
id
|
integer |
name
|
text |
project_id
|
integer |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
data_type
|
String | ✅ |
Must be one of date , number , text , or single_select
|
name
|
String | ✅ |
name | type | required | notes |
---|---|---|---|
text
|
String | ✅ |
where
clause and order
clause.
name | type |
---|---|
created_at
|
timestamp |
custom_field_id
|
integer |
id
|
integer |
text
|
text |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
text
|
String | ✅ |
name | type | required | notes |
---|---|---|---|
text
|
String | ✅ |
where
clause and order
clause.
name | type |
---|---|
assignee_id
|
integer |
cards_status
|
text |
closed_at
|
timestamp |
closed_cards_count
|
integer |
closed_points
|
number |
closer_id
|
integer |
comments_count
|
integer |
created_at
|
timestamp |
creator_id
|
integer |
due_on
|
timestamp |
epic_list_id
|
integer |
id
|
integer |
number
|
integer |
open_cards_count
|
integer |
open_points
|
number |
priority
|
integer |
project_id
|
integer |
rank
|
text |
search_key
|
text |
start_date
|
timestamp |
state
|
text |
status
|
text |
title
|
text |
track_cards
|
boolean |
updated_at
|
timestamp |
workspace_id
|
integer |
name | type | required | notes |
---|---|---|---|
where[after_number]
|
integer | ||
where[created_after]
|
timestamp | ||
where[updated_after]
|
timestamp |
name | type | required | notes |
---|---|---|---|
after_target_id
|
Integer |
after_target_id is the id of the epic after which this epic should be placed
|
|
assignee_id
|
Integer | ||
before_target_id
|
Integer |
before_target_id is the id of the epic before which this epic should be placed
|
|
color
|
String | Hex color code string without preceding "#" | |
description
|
Text | ||
due_on
|
Timestamp | ||
epic_list_id
|
Boolean | ||
label_ids
|
Array |
Array of label.id s
|
|
target_position
|
Integer | Refers to the target index position of the epic | |
title
|
String | ✅ | |
track_cards
|
Boolean |
name | type | required | notes |
---|---|---|---|
assignee_id
|
Integer | ✅ | |
color
|
String | ✅ | Hex color code string without preceding "#" |
description
|
Text | ✅ | |
due_on
|
Timestamp | ✅ | |
epic_list_id
|
Boolean | ✅ | |
label_ids
|
Array | ✅ |
Array of label.id s
|
state
|
String | ✅ |
Only accepts open or closed
|
status
|
String | ✅ |
Must be one of new , queued , in_progress , completed , closed , or archived
|
title
|
String | ✅ | |
track_cards
|
Boolean | ✅ |
target_position
, after_target_id
or before_target_id
.
name | type | required | notes |
---|---|---|---|
after_target_id
|
Integer |
after_target_id is the id of the epic after which this epic should be placed
|
|
assignee_id
|
Integer | ✅ | |
before_target_id
|
Integer |
before_target_id is the id of the epic before which this epic should be placed
|
|
color
|
String | ✅ | Hex color code string without preceding "#" |
description
|
Text | ✅ | |
due_on
|
Timestamp | ✅ | |
epic_list_id
|
Boolean | ✅ | |
label_ids
|
Array | ✅ |
Array of label.id s
|
state
|
String | ✅ |
Only accepts open or closed
|
status
|
String | ✅ |
Must be one of new , queued , in_progress , completed , closed , or archived
|
target_position
|
Integer | Refers to the target index position of the epic | |
title
|
String | ✅ | |
track_cards
|
Boolean | ✅ |
where
clause and order
clause.
name | type |
---|---|
body
|
text |
category_name
|
text |
closed_at
|
timestamp |
closer_id
|
integer |
comments_count
|
integer |
created_at
|
timestamp |
creator_id
|
integer |
epic_id
|
integer |
id
|
integer |
last_comment_at
|
timestamp |
number
|
integer |
points
|
number |
priority
|
integer |
project_id
|
integer |
search_key
|
text |
sprint_id
|
integer |
state
|
text |
status
|
text |
updated_at
|
timestamp |
upvotes_count
|
integer |
was_archived_from_404
|
boolean |
workspace_id
|
integer |
name | type | required | notes |
---|---|---|---|
card_id
|
Integer | ✅ |
where
clause and order
clause.
name | type |
---|---|
card_id
|
integer |
created_at
|
timestamp |
creator_id
|
integer |
id
|
integer |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
body
|
Text | ✅ |
name | type | required | notes |
---|---|---|---|
body
|
Text | ✅ |
where
clause and order
clause.
name | type |
---|---|
actor_id
|
integer |
assignee_id
|
integer |
commit_id
|
text |
created_at
|
timestamp |
event
|
text |
github_issue_id
|
integer |
id
|
bigint |
source_id
|
integer |
updated_at
|
timestamp |
where
clause and order
clause.
name | type |
---|---|
created_at
|
timestamp |
id
|
integer |
name
|
text |
project_id
|
integer |
rank
|
text |
updated_at
|
timestamp |
target_position
, after_target_id
or before_target_id
.
name | type | required | notes |
---|---|---|---|
after_target_id
|
Integer |
after_target_id is the id of the epic list after which this epic list should be placed
|
|
before_target_id
|
Integer |
before_target_id is the id of the epic list before which this epic list should be placed
|
|
name
|
String | ✅ | |
target_position
|
Integer | Refers to the target index position of the list. |
name | type | required | notes |
---|---|---|---|
name
|
String | ✅ |
target_position
, after_target_id
or before_target_id
.
name | type | required | notes |
---|---|---|---|
after_target_id
|
Integer |
after_target_id is the id of the epic list after which this epic list should be placed
|
|
before_target_id
|
Integer |
before_target_id is the id of the epic list before which this epic list should be placed
|
|
target_position
|
Integer | Refers to the target index position of the list. |
where
clause and order
clause.
name | type |
---|---|
created_at
|
timestamp |
id
|
integer |
project_id
|
integer |
slug
|
text |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
color
|
String | ✅ | Hex color code string without preceding "#" |
name
|
String | ✅ |
name | type | required | notes |
---|---|---|---|
color
|
String | ✅ | Hex color code string without preceding "#" |
name
|
String | ✅ |
_notificationId
is an ObjectId
, not an integer
.
name | type | required | notes |
---|---|---|---|
read
|
Boolean | ✅ |
_notificationId
is an ObjectId
, not an integer
.
where
clause and order
clause.
name | type |
---|---|
account_id
|
integer |
auto_add_github_users
|
boolean |
created_at
|
timestamp |
default_epic_list_id
|
integer |
id
|
integer |
name
|
text |
private
|
boolean |
should_use_fibonacci_scale
|
boolean |
slug
|
text |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
account_id
|
Integer | ✅ | |
description
|
String | ||
name
|
String | ✅ |
name | type | required | notes |
---|---|---|---|
auto_add_github_users
|
Boolean | ||
color
|
String | Hex color code string without preceding "#" | |
description
|
String | ||
name
|
String | ✅ | |
should_use_fibonacci_scale
|
Boolean | ||
triage
|
Boolean | Only valid for projects with one workspace |
where
clause and order
clause.
name | type |
---|---|
avatar_path_is_locked
|
boolean |
created_at
|
timestamp |
github_user_id
|
integer |
id
|
integer |
is_user
|
boolean |
name
|
text |
name_is_locked
|
boolean |
updated_at
|
timestamp |
username
|
text |
name | type | required | notes |
---|---|---|---|
person_id
|
Integer | ✅ |
where
clause and order
clause.
name | type |
---|---|
avatar_path_is_locked
|
boolean |
created_at
|
timestamp |
github_user_id
|
integer |
id
|
integer |
is_user
|
boolean |
name
|
text |
name_is_locked
|
boolean |
updated_at
|
timestamp |
username
|
text |
name | type | required | notes |
---|---|---|---|
person_id
|
Integer | ✅ |
where
clause and order
clause.
name | type |
---|---|
avatar_path_is_locked
|
boolean |
created_at
|
timestamp |
github_user_id
|
integer |
id
|
integer |
is_user
|
boolean |
name
|
text |
name_is_locked
|
boolean |
updated_at
|
timestamp |
username
|
text |
where
clause and order
clause.
name | type |
---|---|
body
|
text |
category_name
|
text |
closed_at
|
timestamp |
closer_id
|
integer |
comments_count
|
integer |
created_at
|
timestamp |
creator_id
|
integer |
epic_id
|
integer |
id
|
integer |
last_comment_at
|
timestamp |
number
|
integer |
points
|
number |
priority
|
integer |
project_id
|
integer |
search_key
|
text |
sprint_id
|
integer |
state
|
text |
status
|
text |
updated_at
|
timestamp |
upvotes_count
|
integer |
was_archived_from_404
|
boolean |
workspace_id
|
integer |
name | type | required | notes |
---|---|---|---|
where[after_number]
|
integer | ||
where[assignee_ids][]
|
Array |
Array of assignee.id s or null
|
|
where[created_after]
|
timestamp | ||
where[labels][]
|
Array |
Array of label.name s or null
|
|
where[milestones][]
|
Array |
Array of milestone.title s or null
|
|
where[source_ids][]
|
Array |
Array of source.id s or null
|
|
where[types]
|
String |
Only accepts issue , pull_request or null
|
|
where[updated_after]
|
timestamp | ||
order[by]
|
String | ✅ |
Accepts assignee , creator , milestone or sprint
|
order[direction]
|
String | ✅ |
Only accepts asc or desc
|
where
clause and order
clause.
name | type |
---|---|
closed_at
|
timestamp |
created_at
|
timestamp |
creator_id
|
integer |
due_on
|
timestamp |
id
|
integer |
number
|
integer |
source_id
|
integer |
state
|
text |
title
|
text |
updated_at
|
timestamp |
where
clause and order
clause.
name | type |
---|---|
contact
|
text |
created_at
|
timestamp |
creator_id
|
integer |
id
|
integer |
name
|
text |
project_id
|
integer |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
contact
|
String | ||
name
|
String | ✅ |
name | type | required | notes |
---|---|---|---|
contact
|
String | ||
name
|
String | ✅ |
name | type | required | notes |
---|---|---|---|
subscription_level
|
String | ✅ |
Must be one of following , not_following , or muted
|
name | type | required | notes |
---|---|---|---|
subscription_level
|
String | ✅ |
Must be one of following , not_following , or muted
|
name | type | required | notes |
---|---|---|---|
card_added_to_triage
|
Boolean | ✅ | |
card_assigned_to_self
|
Boolean | ✅ | |
card_assignee_added
|
Boolean | ✅ | |
card_card_linked
|
Boolean | ✅ | |
card_comment_added
|
Boolean | ✅ | |
card_comment_mention
|
Boolean | ✅ | |
card_epic_added
|
Boolean | ✅ | |
card_label_added
|
Boolean | ✅ | |
card_mention
|
Boolean | ✅ | |
card_milestone_added
|
Boolean | ✅ | |
card_points_changed
|
Boolean | ✅ | |
card_priority_changed
|
Boolean | ✅ | |
card_ticket_added
|
Boolean | ✅ | |
email
|
String | ✅ | |
epic_assigned_to_self
|
Boolean | ✅ | |
epic_assignee_added
|
Boolean | ✅ | |
epic_card_added
|
Boolean | ✅ | |
epic_comment_added
|
Boolean | ✅ | |
epic_comment_mention
|
Boolean | ✅ | |
epic_created
|
Boolean | ✅ | |
epic_due_date_changed
|
Boolean | ✅ | |
epic_mention
|
Boolean | ✅ | |
epic_status_closed
|
Boolean | ✅ | |
epic_status_completed
|
Boolean | ✅ | |
epic_status_in_progress
|
Boolean | ✅ | |
epic_status_queued
|
Boolean | ✅ | |
pr_added_to_triage
|
Boolean | ✅ | |
pr_assigned_to_self
|
Boolean | ✅ | |
pr_assignee_added
|
Boolean | ✅ | |
pr_card_linked
|
Boolean | ✅ | |
pr_comment_added
|
Boolean | ✅ | |
pr_comment_mention
|
Boolean | ✅ | |
pr_epic_added
|
Boolean | ✅ | |
pr_label_added
|
Boolean | ✅ | |
pr_mention
|
Boolean | ✅ | |
pr_milestone_added
|
Boolean | ✅ | |
pr_points_changed
|
Boolean | ✅ | |
pr_priority_changed
|
Boolean | ✅ | |
pr_ticket_added
|
Boolean | ✅ | |
ticket_assigned_to_self
|
Boolean | ✅ | |
ticket_assignee_added
|
Boolean | ✅ | |
ticket_card_added
|
Boolean | ✅ | |
ticket_comment_added
|
Boolean | ✅ | |
ticket_comment_mention
|
Boolean | ✅ | |
ticket_created
|
Boolean | ✅ | |
ticket_due_date_changed
|
Boolean | ✅ | |
ticket_label_added
|
Boolean | ✅ | |
ticket_mention
|
Boolean | ✅ | |
ticket_priority_changed
|
Boolean | ✅ | |
ticket_start_date_changed
|
Boolean | ✅ | |
ticket_status_closed
|
Boolean | ✅ | |
ticket_status_completed
|
Boolean | ✅ | |
ticket_status_in_progress
|
Boolean | ✅ | |
ticket_status_queued
|
Boolean | ✅ |
name | type | required | notes |
---|---|---|---|
card_added_to_triage
|
Boolean | ✅ | |
card_assigned_to_self
|
Boolean | ✅ | |
card_assignee_added
|
Boolean | ✅ | |
card_card_linked
|
Boolean | ✅ | |
card_comment_added
|
Boolean | ✅ | |
card_comment_mention
|
Boolean | ✅ | |
card_epic_added
|
Boolean | ✅ | |
card_label_added
|
Boolean | ✅ | |
card_mention
|
Boolean | ✅ | |
card_milestone_added
|
Boolean | ✅ | |
card_points_changed
|
Boolean | ✅ | |
card_priority_changed
|
Boolean | ✅ | |
card_ticket_added
|
Boolean | ✅ | |
epic_assigned_to_self
|
Boolean | ✅ | |
epic_assignee_added
|
Boolean | ✅ | |
epic_card_added
|
Boolean | ✅ | |
epic_comment_added
|
Boolean | ✅ | |
epic_comment_mention
|
Boolean | ✅ | |
epic_created
|
Boolean | ✅ | |
epic_due_date_changed
|
Boolean | ✅ | |
epic_mention
|
Boolean | ✅ | |
epic_status_closed
|
Boolean | ✅ | |
epic_status_completed
|
Boolean | ✅ | |
epic_status_in_progress
|
Boolean | ✅ | |
epic_status_queued
|
Boolean | ✅ | |
pr_added_to_triage
|
Boolean | ✅ | |
pr_assigned_to_self
|
Boolean | ✅ | |
pr_assignee_added
|
Boolean | ✅ | |
pr_card_linked
|
Boolean | ✅ | |
pr_comment_added
|
Boolean | ✅ | |
pr_comment_mention
|
Boolean | ✅ | |
pr_epic_added
|
Boolean | ✅ | |
pr_label_added
|
Boolean | ✅ | |
pr_mention
|
Boolean | ✅ | |
pr_milestone_added
|
Boolean | ✅ | |
pr_points_changed
|
Boolean | ✅ | |
pr_priority_changed
|
Boolean | ✅ | |
pr_ticket_added
|
Boolean | ✅ | |
ticket_assigned_to_self
|
Boolean | ✅ | |
ticket_assignee_added
|
Boolean | ✅ | |
ticket_card_added
|
Boolean | ✅ | |
ticket_comment_added
|
Boolean | ✅ | |
ticket_comment_mention
|
Boolean | ✅ | |
ticket_created
|
Boolean | ✅ | |
ticket_due_date_changed
|
Boolean | ✅ | |
ticket_label_added
|
Boolean | ✅ | |
ticket_mention
|
Boolean | ✅ | |
ticket_priority_changed
|
Boolean | ✅ | |
ticket_start_date_changed
|
Boolean | ✅ | |
ticket_status_closed
|
Boolean | ✅ | |
ticket_status_completed
|
Boolean | ✅ | |
ticket_status_in_progress
|
Boolean | ✅ | |
ticket_status_queued
|
Boolean | ✅ |
where
clause and order
clause.
name | type |
---|---|
closed_at
|
timestamp |
created_at
|
timestamp |
end_date
|
timestamp |
id
|
integer |
project_id
|
integer |
start_date
|
timestamp |
state
|
text |
updated_at
|
timestamp |
workspace_id
|
integer |
name | type | required | notes |
---|---|---|---|
description
|
Text | ||
end_date
|
Timestamp | ✅ | |
start_date
|
Timestamp | ✅ | |
title
|
String | ✅ |
name | type | required | notes |
---|---|---|---|
description
|
Text | ✅ | |
end_date
|
Timestamp | ✅ | |
start_date
|
Timestamp | ✅ | |
state
|
String | ✅ |
Only accepts open or closed
|
title
|
String | ✅ |
where
clause and order
clause.
name | type |
---|---|
created_at
|
timestamp |
full_name
|
text |
github_owner_id
|
integer |
has_webhooks
|
boolean |
id
|
integer |
name
|
text |
updated_at
|
timestamp |
webhook_verified_at
|
timestamp |
where
clause and order
clause.
name | type |
---|---|
avatar_path_is_locked
|
boolean |
created_at
|
timestamp |
github_user_id
|
integer |
id
|
integer |
is_user
|
boolean |
name
|
text |
name_is_locked
|
boolean |
updated_at
|
timestamp |
username
|
text |
where
clause and order
clause.
name | type |
---|---|
closed_at
|
timestamp |
created_at
|
timestamp |
creator_id
|
integer |
due_on
|
timestamp |
id
|
integer |
number
|
integer |
source_id
|
integer |
state
|
text |
title
|
text |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
description
|
Text | ||
due_on
|
Timestamp | ||
title
|
String | ✅ |
name | type | required | notes |
---|---|---|---|
description
|
Text | ✅ | |
due_on
|
Timestamp | ✅ | |
state
|
String | ✅ |
Only accepts open or closed
|
title
|
String | ✅ |
where
clause and order
clause.
name | type |
---|---|
assignee_id
|
integer |
cards_count
|
integer |
cards_status
|
text |
closed_at
|
timestamp |
closer_id
|
integer |
comments_count
|
integer |
created_at
|
timestamp |
creator_id
|
integer |
customer_id
|
integer |
due_on
|
timestamp |
id
|
integer |
number
|
integer |
priority
|
integer |
project_id
|
integer |
search_key
|
text |
start_date
|
timestamp |
state
|
text |
status
|
text |
title
|
text |
track_cards
|
boolean |
type
|
text |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
where[after_number]
|
integer | ||
where[created_after]
|
timestamp | ||
where[updated_after]
|
timestamp |
name | type | required | notes |
---|---|---|---|
assignee_id
|
Integer | ||
customer_id
|
Integer | ||
description
|
Text | ||
due_on
|
Timestamp | ||
priority
|
Number |
Must be one of 1 , 2 , 3 , 4
|
|
start_date
|
Timestamp | ||
title
|
String | ✅ | |
track_cards
|
Boolean | ||
type
|
String |
Must be one of task , bug , feature , question
|
name | type | required | notes |
---|---|---|---|
assignee_id
|
Integer | ✅ | |
customer_id
|
Integer | ✅ | |
description
|
Text | ✅ | |
due_on
|
Timestamp | ✅ | |
priority
|
Number | ✅ |
Must be one of 1 , 2 , 3 , 4
|
start_date
|
Timestamp | ✅ | |
state
|
String | ✅ |
Only accepts open or closed
|
status
|
String | ✅ |
Must be one of new , queued , in_progress , completed , closed , or archived
|
title
|
String | ✅ | |
track_cards
|
Boolean | ✅ | |
type
|
String | ✅ |
Must be one of task , bug , feature , or question
|
where
clause and order
clause.
name | type |
---|---|
body
|
text |
category_name
|
text |
closed_at
|
timestamp |
closer_id
|
integer |
comments_count
|
integer |
created_at
|
timestamp |
creator_id
|
integer |
epic_id
|
integer |
id
|
integer |
last_comment_at
|
timestamp |
number
|
integer |
points
|
number |
priority
|
integer |
project_id
|
integer |
search_key
|
text |
sprint_id
|
integer |
state
|
text |
status
|
text |
updated_at
|
timestamp |
upvotes_count
|
integer |
was_archived_from_404
|
boolean |
workspace_id
|
integer |
name | type | required | notes |
---|---|---|---|
card_id
|
Integer | ✅ |
where
clause and order
clause.
name | type |
---|---|
card_id
|
integer |
created_at
|
timestamp |
creator_id
|
integer |
id
|
integer |
updated_at
|
timestamp |
name | type | required | notes |
---|---|---|---|
body
|
Text | ✅ |
name | type | required | notes |
---|---|---|---|
body
|
Text | ✅ |
where
clause and order
clause.
name | type |
---|---|
add_category_labels_to_imported_cards
|
boolean |
archive_merged_prs
|
boolean |
auto_archive_closed_cards
|
boolean |
created_at
|
timestamp |
default_card_template_id
|
integer |
id
|
integer |
is_archived
|
boolean |
name
|
text |
private
|
boolean |
project_id
|
integer |
should_display_prs
|
boolean |
should_use_fibonacci_scale
|
boolean |
slug
|
text |
timezone
|
text |
updated_at
|
timestamp |
use_category_labels
|
boolean |
name | type | required | notes |
---|---|---|---|
description
|
Text | ||
name
|
String | ✅ | |
project_id
|
Integer | ✅ |
name | type | required | notes |
---|---|---|---|
add_category_labels_to_imported_cards
|
Boolean | ✅ | |
add_category_labels_to_imported_cards
|
Boolean | ✅ | |
archive_merged_prs
|
Boolean | ✅ | |
auto_archive_closed_cards
|
Boolean | ✅ | |
description
|
Text | ✅ | |
name
|
String | ✅ | |
points
|
Boolean | ✅ | |
priority
|
Boolean | ✅ | |
priority_format
|
String | ✅ |
Must be one of number , name , or color
|
should_use_fibonacci_scale
|
Boolean | ✅ | |
upvotes
|
Boolean | ✅ | |
use_category_labels
|
Boolean | ✅ |
name | type | required | notes |
---|---|---|---|
subscription_level
|
String | ✅ |
Must be one of following , not_following , or muted
|
name | type | required | notes |
---|---|---|---|
card_added_to_workspace
|
Boolean | ✅ | |
card_assigned_to_self
|
Boolean | ✅ | |
card_assignee_added
|
Boolean | ✅ | |
card_card_linked
|
Boolean | ✅ | |
card_column_changed
|
Boolean | ✅ | |
card_comment_added
|
Boolean | ✅ | |
card_comment_mention
|
Boolean | ✅ | |
card_epic_added
|
Boolean | ✅ | |
card_label_added
|
Boolean | ✅ | |
card_mention
|
Boolean | ✅ | |
card_milestone_added
|
Boolean | ✅ | |
card_points_changed
|
Boolean | ✅ | |
card_priority_changed
|
Boolean | ✅ | |
card_sprint_added
|
Boolean | ✅ | |
card_state_changed
|
Boolean | ✅ | |
card_status_done
|
Boolean | ✅ | |
card_status_in_progress
|
Boolean | ✅ | |
card_status_in_review
|
Boolean | ✅ | |
card_status_queued
|
Boolean | ✅ | |
card_ticket_added
|
Boolean | ✅ | |
pr_added_to_workspace
|
Boolean | ✅ | |
pr_assigned_to_self
|
Boolean | ✅ | |
pr_assignee_added
|
Boolean | ✅ | |
pr_card_linked
|
Boolean | ✅ | |
pr_column_changed
|
Boolean | ✅ | |
pr_comment_added
|
Boolean | ✅ | |
pr_comment_mention
|
Boolean | ✅ | |
pr_epic_added
|
Boolean | ✅ | |
pr_label_added
|
Boolean | ✅ | |
pr_mention
|
Boolean | ✅ | |
pr_merged
|
Boolean | ✅ | |
pr_milestone_added
|
Boolean | ✅ | |
pr_points_changed
|
Boolean | ✅ | |
pr_priority_changed
|
Boolean | ✅ | |
pr_sprint_added
|
Boolean | ✅ | |
pr_state_changed
|
Boolean | ✅ | |
pr_status_done
|
Boolean | ✅ | |
pr_status_in_progress
|
Boolean | ✅ | |
pr_status_in_review
|
Boolean | ✅ | |
pr_status_queued
|
Boolean | ✅ | |
pr_ticket_added
|
Boolean | ✅ | |
sprint_card_added
|
Boolean | ✅ | |
sprint_card_removed
|
Boolean | ✅ | |
sprint_created
|
Boolean | ✅ | |
sprint_end_date_changed
|
Boolean | ✅ | |
sprint_start_date_changed
|
Boolean | ✅ | |
sprint_state_changed
|
Boolean | ✅ |
name | type | required | notes |
---|---|---|---|
card_added_to_workspace
|
Boolean | ✅ | |
card_assigned_to_self
|
Boolean | ✅ | |
card_assignee_added
|
Boolean | ✅ | |
card_card_linked
|
Boolean | ✅ | |
card_column_changed
|
Boolean | ✅ | |
card_comment_added
|
Boolean | ✅ | |
card_comment_mention
|
Boolean | ✅ | |
card_epic_added
|
Boolean | ✅ | |
card_label_added
|
Boolean | ✅ | |
card_mention
|
Boolean | ✅ | |
card_milestone_added
|
Boolean | ✅ | |
card_points_changed
|
Boolean | ✅ | |
card_priority_changed
|
Boolean | ✅ | |
card_sprint_added
|
Boolean | ✅ | |
card_state_changed
|
Boolean | ✅ | |
card_status_done
|
Boolean | ✅ | |
card_status_in_progress
|
Boolean | ✅ | |
card_status_in_review
|
Boolean | ✅ | |
card_status_queued
|
Boolean | ✅ | |
card_ticket_added
|
Boolean | ✅ | |
email
|
String | ✅ | |
pr_added_to_workspace
|
Boolean | ✅ | |
pr_assigned_to_self
|
Boolean | ✅ | |
pr_assignee_added
|
Boolean | ✅ | |
pr_card_linked
|
Boolean | ✅ | |
pr_column_changed
|
Boolean | ✅ | |
pr_comment_added
|
Boolean | ✅ | |
pr_comment_mention
|
Boolean | ✅ | |
pr_epic_added
|
Boolean | ✅ | |
pr_label_added
|
Boolean | ✅ | |
pr_mention
|
Boolean | ✅ | |
pr_merged
|
Boolean | ✅ | |
pr_milestone_added
|
Boolean | ✅ | |
pr_points_changed
|
Boolean | ✅ | |
pr_priority_changed
|
Boolean | ✅ | |
pr_sprint_added
|
Boolean | ✅ | |
pr_state_changed
|
Boolean | ✅ | |
pr_status_done
|
Boolean | ✅ | |
pr_status_in_progress
|
Boolean | ✅ | |
pr_status_in_review
|
Boolean | ✅ | |
pr_status_queued
|
Boolean | ✅ | |
pr_ticket_added
|
Boolean | ✅ | |
sprint_card_added
|
Boolean | ✅ | |
sprint_card_removed
|
Boolean | ✅ | |
sprint_created
|
Boolean | ✅ | |
sprint_end_date_changed
|
Boolean | ✅ | |
sprint_start_date_changed
|
Boolean | ✅ | |
sprint_state_changed
|
Boolean | ✅ |
where
clause and order
clause.
name | type |
---|---|
created_at
|
timestamp |
id
|
integer |
project_id
|
integer |
title
|
text |
updated_at
|
timestamp |
workspace_id
|
integer |
name | type | required | notes |
---|---|---|---|
content
|
Text | ✅ | |
description
|
Text | ||
title
|
Text | ✅ | |
workspace_id
|
Integer | ✅ |
name | type | required | notes |
---|---|---|---|
content
|
Text | ✅ | |
description
|
Text | ✅ | |
title
|
Text | ✅ |
Have more questions? Need help setting up your workflow? Get in touch!