The Outlign API provides programmatic access to your project management data. Build integrations, automate workflows, and sync data with other tools your team uses.
Authenticate
Set up OAuth2 authentication to access the API
Make your first request
Start with fetching your companies or projects
Build your integration
Use the documented endpoints to create your application
https://go.outlign.co/api/v1
All API responses return JSON. Successful requests return a 200 status code along with the requested data.
Endpoints that return a single record wrap it in a data object:
{
"data": {
"id": 123,
"title": "Website Redesign",
"created_at": "2023-01-01T12:00:00.000000Z",
"updated_at": "2023-01-01T12:00:00.000000Z"
}
}
List endpoints return an array under data alongside pagination links and
meta:
{
"data": [
{ "id": 123, "title": "Website Redesign" },
{ "id": 124, "title": "Brand System" }
],
"links": {
"first": "https://go.outlign.co/api/v1/projects?page=1",
"last": null,
"prev": null,
"next": "https://go.outlign.co/api/v1/projects?page=2"
},
"meta": {
"current_page": 1,
"current_page_url": "https://go.outlign.co/api/v1/projects?page=1",
"from": 1,
"path": "https://go.outlign.co/api/v1/projects",
"per_page": 25,
"to": 25
}
}
Reading the examples: To keep things concise, the example responses on the
endpoint pages show the contents of data (the object or array). Unless noted,
single-resource responses are wrapped in { "data": { … } } and list responses in
{ "data": [ … ], "links": { … }, "meta": { … } } as shown above.
{
"message": "The given data was invalid.",
"errors": {
"title": ["The title field is required."]
}
}
Task, document, message, comment, and project info bodies are read and written as Markdown. Two block types that Markdown has no syntax for — callouts and collapsible toggles — use a ::: container fence. These are also what you receive when reading content that already contains them.
:::callout{emoji="💡" color="mint"}
Body content. Any Markdown blocks are allowed in here.
:::
:::toggle{summary="Deployment steps"}
Hidden until the reader expands it.
:::
Both callout attributes are optional. color accepts mandarin, coral, pink, orchid, mint, aqua, mustard, blue, or steel, or a hex value. To nest one container inside another, give the outer fence more colons (::::).
Content updates replace the whole body. Unlike attachments, form fields, and embeds — which are preserved automatically because Markdown cannot express them — callouts and toggles are removed if you omit them, since your Markdown can represent them. Read the existing body first and send it back with your edits applied.
Most list endpoints are paginated. Use the page parameter to move
between pages and per_page to control the page size (max 1000).
Follow links.next from the response to fetch the next page — it is null
on the last page.
GET /api/v1/projects?per_page=25&page=2
API requests are limited to 60 requests per minute. The limit is applied per
authenticated user (falling back to the client IP address for unauthenticated requests). Exceeding it
returns a 429 Too Many Requests response.
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
Retry-After: 17
Note: X-RateLimit-Limit and X-RateLimit-Remaining are
returned on every response so you can monitor your usage. When you are throttled,
Retry-After tells you how many seconds to wait before retrying.
Learn how to authenticate with the Outlign API using OAuth2 and make your first request.