Welcome to the Outlign API v1.0

The Outlign API provides programmatic access to your project management data. Build integrations, automate workflows, and sync data with other tools your team uses.

Quick Start

1

Authenticate

Set up OAuth2 authentication to access the API

2

Make your first request

Start with fetching your companies or projects

3

Build your integration

Use the documented endpoints to create your application

Base URL

https://go.outlign.co/api/v1

Response Format

All API responses return JSON. Successful requests return a 200 status code along with the requested data.

Single Resource

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"
  }
}

Collections

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.

Error Response

{
  "message": "The given data was invalid.",
  "errors": {
    "title": ["The title field is required."]
  }
}

Rich Content

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.

Pagination

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

Rate Limiting

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.

Next Steps

Learn how to authenticate with the Outlign API using OAuth2 and make your first request.