---
title: "POST /v1/orgs/{orgId}/integrations/linear/check"
method: POST
path: "/v1/orgs/{orgId}/integrations/linear/check"
tags: ["Orgs", "Integrations"]
---

# POST /v1/orgs/{orgId}/integrations/linear/check

`POST /v1/orgs/{orgId}/integrations/linear/check`

## Request

- Base URL: `https://api.tessl.io`
- URL: `https://api.tessl.io/v1/orgs/{orgId}/integrations/linear/check`
- Auth: none declared

Checks the organization's saved Linear connection live: that its token still reaches the Linear organization it was saved for, and, for each team, where its deliveries are routed and whether an active loop there starts on a Linear event. `ready` describes configuration only: webhook delivery and loop runs are not checked. The check sends nothing to Linear but reads, and changes nothing but a due token refresh. `teams` is `skipped` when the organization check did not pass.

## Path parameters

- `orgId` string, uuid, required

## Headers

- `Authorization` string

## Response `200`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'linear-connection-check', required
    - `attributes` object, required
      - `integrationId` string, uuid, required: The saved connection this check tested. A result for any other id is stale.
      - `linearOrganizationId` string, required
      - `checkedAt` string, date-time, required
      - `organization` union, required
        - object
          - `status` 'passed', required
          - `linearOrganizationName` string, nullable, required
        - object
          - `status` 'failed', required
          - `reason` union, required
            - 'credentials-revoked'
            - 'access-denied'
            - 'wrong-organization'
            - 'rate-limited'
            - 'provider-unavailable'
            - 'timeout'
        - object
          - `status` 'skipped', required
      - `teams` union, required
        - object
          - `status` 'passed', required
          - `teams` object[], required
            - `linearTeamId` string, required
            - `key` string, nullable, required
            - `name` string, nullable, required: Null for a routed team the connection cannot see in Linear.
            - `routedBy` union, required: Whether the team's deliveries follow its own route or the catch-all; null when they go nowhere.
              - …
            - `projectId` string, uuid, nullable, required
            - `projectName` string, nullable, required: Null when there is no project or the caller may not see it.
            - `activeLinearLoopCount` integer, nullable, required: Active loops in the routed project that start on a Linear event; null when the team has no visible routed project.
            - `status` union, required
              - …
            - `reason` union, required
              - …
        - object
          - `status` 'failed', required
          - `reason` union, required
            - 'credentials-revoked'
            - 'access-denied'
            - 'wrong-organization'
            - 'rate-limited'
            - 'provider-unavailable'
            - 'timeout'
        - object
          - `status` 'skipped', required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-10-29** `06d2142ed144`: 1 info
  - api operation id `checkOrgIntegrationLinear` was added
- **2026-10-28** `a1ace5a7e7a4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tessl/apis/tessl-api/changes/v1/orgs/:orgId/integrations/linear/check/post.md)

---

[API](https://skmtc.dev/tessl/apis/tessl-api.md) - [All operations](https://skmtc.dev/tessl/apis/tessl-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tessl/apis/tessl-api/revisions/0d008f56f0c1?raw)
