Skip to main content
DELETE
/
api
/
partner
/
v1
/
project-links
/
{linkId}
curl -sS -X DELETE https://app.opentrain.ai/api/partner/v1/project-links/<LINK_ID> \
  -H "Authorization: Bearer $OT_PARTNER_TOKEN"
{
  "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"
  },
  "deleted": true
}
Permanently removes a project link. The link row is hard-deleted — the response and the emitted project_link.removed event carry the final snapshot of its data. Contract events for the job stop unless another link on the install references the same job. There is no update operation on links: to re-point a project at a different job, delete and create again. Requirements: project-links:write scope.

Request

The project link ID to remove.

Response

Final snapshot of the removed link: {id, jobId, externalProjectId, externalProjectName, externalProjectUrl, provisioningMode, createdAt}.
deleted
boolean
Always true on success.

Errors

StatuscodeMeaning
401UNAUTHORIZEDMissing, invalid, or revoked token
403FORBIDDENToken lacks project-links:write
404NOT_FOUNDNo link with this ID on this install
curl -sS -X DELETE https://app.opentrain.ai/api/partner/v1/project-links/<LINK_ID> \
  -H "Authorization: Bearer $OT_PARTNER_TOKEN"
{
  "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"
  },
  "deleted": true
}