Skip to main content
POST
/
api
/
v1
/
storage
/
sandboxes
/
{sandbox_id}
/
sources
Register Source
curl --request POST \
  --url https://api.copass.id/api/v1/storage/sandboxes/{sandbox_id}/sources \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "provider": "<string>",
  "name": "<string>",
  "ingestion_mode": "manual",
  "kind": "durable",
  "external_account_id": "<string>",
  "adapter_config": {},
  "poll_interval_seconds": 61
}
'
{
  "data_source_id": "<string>",
  "user_id": "<string>",
  "sandbox_id": "<string>",
  "provider": "<string>",
  "name": "<string>",
  "ingestion_mode": "<string>",
  "status": "<string>",
  "kind": "durable",
  "external_account_id": "<string>",
  "adapter_config": {},
  "poll_interval_seconds": 123,
  "webhook_url": "<string>",
  "webhook_signing_secret": "<string>",
  "last_sync_at": "2023-11-07T05:31:56Z",
  "created_at": "2023-11-07T05:31:56Z"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

authorization
string | null

Path Parameters

sandbox_id
string
required

Body

application/json
provider
string
required

Provider type: slack, github, linear, etc.

name
string
required

Developer-facing label

Required string length: 1 - 255
ingestion_mode
string
default:manual

realtime, polling, batch, or manual

kind
string
default:durable

Lifecycle category: 'durable' (default, lives until deleted) or 'ephemeral' (auto-archived after inactivity; used by SDK Context Window).

external_account_id
string | null

External account ID (e.g., Slack workspace)

adapter_config
Adapter Config · object

Provider-specific settings

poll_interval_seconds
integer | null

Poll interval (min 60s)

Required range: x >= 60

Response

Successful Response

data_source_id
string
required
user_id
string
required
sandbox_id
string
required
provider
string
required
name
string
required
ingestion_mode
string
required
status
string
required
kind
string
default:durable

Lifecycle category: durable or ephemeral

external_account_id
string | null
adapter_config
Adapter Config · object
poll_interval_seconds
integer | null

Poll cadence for polling mode. Minimum 60 seconds.

webhook_url
string | null

Read-only. Generated server-side for sources registered with ingestion_mode=realtime. Cannot be set via POST or PATCH.

webhook_signing_secret
string | null

TRANSIENT — populated ONLY in the response from POST /sources (register) and POST /sources/{id}/rotate-webhook-secret. NEVER present on GET / list responses. Plaintext Copass API key the user pastes into their Pipedream HTTP step's Authorization: Bearer <secret> header. After this response the server only stores the sha256 hash.

last_sync_at
string<date-time> | null

Read-only. Stamped server-side on each successful ingest call. Cannot be set via POST or PATCH.

created_at
string<date-time> | null