Skip to content

Destinations API

Create, list, read, update, delete destinations.

See the Destinations concept for background.

POST /v1/destinations

Register a new URL that Harbor should deliver events to.

NameTypeRequiredDescription
urlstringyesThe HTTPS URL Harbor will POST events to. Must be publicly reachable. HTTP is rejected outside test mode.
namestringnoHuman-readable label; shown in the dashboard.
retry_policyobjectnoOverride defaults. See Retry policy.
metadataobjectnoArbitrary key/value pairs. Returned on reads. 8 KB limit.

The created destination object including its signing_secret (shown ONCE; store it).

Terminal window
curl -X POST https://api.harbor.example/v1/destinations \
-H "Authorization: Bearer hk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://api.example.com/webhooks/harbor",
"name": "Production receiver",
"metadata": {
"owner": "payments-team"
}
}'
  • invalid_url
  • url_not_reachable
  • over_destination_limit

GET /v1/destinations

Paginated list of destinations.

NameTypeRequiredDescription
cursorstringnoPagination cursor from a previous response.
limitintegernoPage size, 1-100. Default 25.
statusstringnoFilter by ‘active’ or ‘paused’.

A page of destinations plus a next_cursor.

Terminal window
curl -X GET https://api.harbor.example/v1/destinations \
-H "Authorization: Bearer hk_live_your_api_key"
  • invalid_cursor

GET /v1/destinations/{id}

Retrieve a destination by ID.

The destination object. Does NOT include the signing_secret — use the signing-keys API if you need to rotate.

Terminal window
curl -X GET https://api.harbor.example/v1/destinations/dest_01HXYZ \
-H "Authorization: Bearer hk_live_your_api_key"
  • destination_not_found

PATCH /v1/destinations/{id}

Modify a destination’s URL, name, retry policy, or metadata.

NameTypeRequiredDescription
urlstringno
namestringno
retry_policyobjectno
metadataobjectno
statusstringno’active’ or ‘paused’.

The updated destination.

Terminal window
curl -X PATCH https://api.harbor.example/v1/destinations/dest_01HXYZ \
-H "Authorization: Bearer hk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"status": "paused"
}'
  • destination_not_found
  • invalid_url

DELETE /v1/destinations/{id}

Permanently delete a destination. In-flight deliveries are cancelled.

204 No Content.

Terminal window
curl -X DELETE https://api.harbor.example/v1/destinations/dest_01HXYZ \
-H "Authorization: Bearer hk_live_your_api_key"
  • destination_not_found