Create a source
curl -X POST "https://api.summerbase.com/v1/sources" \ -H "Authorization: Bearer sb_..." \ -H "Content-Type: application/json" \ -d '{ "name": "Backend", "slug": "backend" }'const response = await fetch("https://api.summerbase.com/v1/sources", { method: "POST", headers: { Authorization: "Bearer sb_...", "Content-Type": "application/json", }, body: JSON.stringify({ "name": "Backend", "slug": "backend" }),})const data = await response.json()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.
Request Bodyrequired
Section titled “Request Bodyrequired”object
What the source is called, for people reading a screen.
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.
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.
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.
Example
{ "name": "Backend", "slug": "backend"}Response
Section titled “Response”Returns the source object.
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"}