Create a custom source
curl --request POST \
--url https://api.seynlabs.com/v1/sources \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Internal CRM",
"entityTypes": [
"deal",
"account",
"activity"
],
"description": "Deals and activity from our in-house CRM"
}
'{
"success": true,
"data": {
"id": "b6f1c0de-1f2a-4c3b-9d4e-5a6b7c8d9e0f",
"type": "custom_api",
"name": "Internal CRM",
"status": "active",
"createdAt": "2026-06-12T16:20:00Z"
},
"meta": {
"requestId": "f0e1d2c3-b4a5-4968-8778-695a4b3c2d1e"
}
}Ingestion
Create a custom source
Register a custom source to ingest data from any system Seyn has no prebuilt
connector for. Returns a sourceId you then push records to via POST /v1/ingest.
Requires an API key with the ingest scope.
POST
/
v1
/
sources
Create a custom source
curl --request POST \
--url https://api.seynlabs.com/v1/sources \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Internal CRM",
"entityTypes": [
"deal",
"account",
"activity"
],
"description": "Deals and activity from our in-house CRM"
}
'{
"success": true,
"data": {
"id": "b6f1c0de-1f2a-4c3b-9d4e-5a6b7c8d9e0f",
"type": "custom_api",
"name": "Internal CRM",
"status": "active",
"createdAt": "2026-06-12T16:20:00Z"
},
"meta": {
"requestId": "f0e1d2c3-b4a5-4968-8778-695a4b3c2d1e"
}
}Authorizations
Bearer token from app.seynlabs.com → Settings → API Keys.
Send as Authorization: Bearer sk_live_....
Headers
Optional. Reuse the same key when retrying so a source is created only once.
Body
application/json
⌘I