---
title: "Create a destination"
method: POST
path: "/v1/destinations"
tags: ["Delivery"]
---

# Create a destination

`POST /v1/destinations`

## Request

- Base URL: `https://sourcefinch.com`
- URL: `https://sourcefinch.com/v1/destinations`
- Auth: HTTP bearer

Webhooks: every successful run of the selected sources is POSTed to the URL, signed (Standard Webhooks) and retried with backoff for 24 hours. The signing secret is returned once.

## Headers

- `Idempotency-Key` string
- `X-Request-Id` string
- `SourceFinch-Project` string, uuid

## Request body

- DestinationCreate
  - `kind` 'webhook', required: Webhooks are available now; credential-backed destinations follow (ADR 0011)
  - `name` string, required
  - `url` string, uri, required
  - `mode` 'changes' | 'snapshot'
  - `source_ids` string[], nullable

## Response `201`

The destination, with its signing secret (once)

- DestinationCreated: Where SourceFinch delivers a project's results. Secrets are never returned.
  - `id` Id, required (unresolved $ref)
  - `project_id` ProjectId, required (unresolved $ref)
  - `kind` 'webhook' | 'email' | 'slack' | 'google_sheets' | 'postgres' | 's3' | 'warehouse', required
  - `name` Name, required (unresolved $ref)
  - `config` Config, required (unresolved $ref)
  - `mode` Mode, required (unresolved $ref)
  - `source_ids` SourceIds, required (unresolved $ref)
  - `status` Status, required (unresolved $ref)
  - `status_reason` StatusReason, required (unresolved $ref)
  - `created_at` CreatedAt, required (unresolved $ref)
  - `updated_at` UpdatedAt, required (unresolved $ref)
  - `signing_secret` string, nullable, required: Webhooks only, shown once: verify the `webhook-signature` header with it (Standard Webhooks, HMAC-SHA256)

## Other responses

- `400`: Problem details; `code` is `validation`
- `401`: Problem details; `code` is `unauthenticated`
- `402`: Problem details; `code` is `plan_limit`
- `403`: Problem details; `code` is `forbidden`
- `409`: Problem details; `code` is `policy`
- `422`: Problem details; `code` is `idempotency_mismatch`
- `429`: Problem details; `code` is `rate_limited`
- `500`: Problem details; `code` is `internal`

---

[API](https://skmtc.dev/sourcefinch/apis/sourcefinch-api.md) · [All operations](https://skmtc.dev/sourcefinch/apis/sourcefinch-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sourcefinch/apis/sourcefinch-api/revisions/190cbe57a5e8?raw)
