Skip to content

Create a source

POST
/v1/sources
curl -X POST "https://api.summerbase.com/v1/sources" \
-H "Authorization: Bearer sb_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Backend",
"slug": "backend"
}'

Add a source to the project you are working in.

Its slug is fixed from here on: it is how records from this source are identified — warehouse:acct-9 — so an integration hard-codes it.

A custom source is one your own code writes to: bind an API key to it and everything that key writes is attributed here, separately from anything else. A provider source, stripe, is created empty and then connected with the provider’s own action, which is what starts the import.

Media typeapplication/json
object
name
required

What the source is called, for people reading a screen.

string
>= 1 characters <= 255 characters
priority

Where this source sits when resolving name and email. Lower wins, and the project’s own source starts at the top so a manual correction outranks a provider sync. It orders nothing else — every other property is namespaced by source and never arbitrated.

integer
provider_code

The code of the system the source pulls from. custom is a source you write to yourself, and the only one that accepts writes; stripe is connected with connect_stripe and fetches for itself.

string
Allowed values: custom stripe summerbase
slug
required

How this source’s records are identified — the stripe in stripe:cus_123. Lowercase letters, digits, hyphens and underscores; unique within the project and fixed once the source exists, because integrations hard-code it. A reference shaped like an id is read as one, so a slug may not look like a UUID.

string
>= 1 characters <= 100 characters

Example

{
"name": "Backend",
"slug": "backend"
}

Returns the source object.

Media typeapplication/json

Example

{
"connected_at": "2025-09-08T14:10:05Z",
"created_at": "2025-09-08T14:09:47Z",
"id": "0198f1a3-0b7c-7e25-9f41-6a2d8c3e5b19",
"import_failed_at": null,
"import_progress": null,
"import_started_at": null,
"import_step": null,
"imported_at": "2025-09-08T14:26:51Z",
"name": "Stripe",
"object": "source",
"priority": 2,
"project_id": "0198f1a2-6c52-7b18-8e3f-2a9c4d6b1e07",
"provider_account_id": "acct_1QfR3sT8uVw2XyZa",
"provider_code": "stripe",
"sandbox": false,
"slug": "stripe",
"webhook_installed_at": "2025-09-08T14:10:06Z",
"webhook_url": "https://api.summerbase.com/webhooks/stripe/0198f1a3-0b7c-7e25-9f41-6a2d8c3e5b19?c=us1"
}