> ## Documentation Index
> Fetch the complete documentation index at: https://opentrain.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Project Link

> Retrieve one project link by ID.

Retrieves one [project link](/docs/developers/annotation-platforms/project-links) on the calling token's install.

**Requirements:** `project-links:read` scope (implied by `project-links:write`).

## Request

<ParamField path="linkId" type="string" required>
  The project link ID, from [create](/docs/developers/annotation-platforms/api-reference/project-links/create) or [list](/docs/developers/annotation-platforms/api-reference/project-links/list).
</ParamField>

## Response

<ResponseField name="projectLink" type="object">
  <Expandable title="ProjectLink fields">
    <ResponseField name="id" type="string">
      Link ID.
    </ResponseField>

    <ResponseField name="jobId" type="string | null">
      The linked OpenTrain job, or `null` if the link is not job-bound yet.
    </ResponseField>

    <ResponseField name="externalProjectId" type="string">
      Your project's identifier — unique per install.
    </ResponseField>

    <ResponseField name="externalProjectName" type="string | null">
      Human-readable project name.
    </ResponseField>

    <ResponseField name="externalProjectUrl" type="string | null">
      Deep link to the project in your platform.
    </ResponseField>

    <ResponseField name="provisioningMode" type="string">
      `PARTNER_WEBHOOK` or `MANAGED_ADAPTER` — see [provisioning modes](/docs/developers/annotation-platforms/overview#provisioning-modes).
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 creation timestamp.
    </ResponseField>
  </Expandable>
</ResponseField>

## Errors

| Status | `code`         | Meaning                              |
| ------ | -------------- | ------------------------------------ |
| `401`  | `UNAUTHORIZED` | Missing, invalid, or revoked token   |
| `403`  | `FORBIDDEN`    | Token lacks `project-links:read`     |
| `404`  | `NOT_FOUND`    | No link with this ID on this install |

<RequestExample>
  ```bash curl theme={null}
  curl -sS https://app.opentrain.ai/api/partner/v1/project-links/<LINK_ID> \
    -H "Authorization: Bearer $OT_PARTNER_TOKEN"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "projectLink": {
      "id": "<LINK_ID>",
      "jobId": "<OPENTRAIN_JOB_ID>",
      "externalProjectId": "42",
      "externalProjectName": "Traffic signs batch 3",
      "externalProjectUrl": "https://your-platform.example.com/projects/42",
      "provisioningMode": "PARTNER_WEBHOOK",
      "createdAt": "2026-06-12T10:00:00.000Z"
    }
  }
  ```
</ResponseExample>
