Suggested provisioning order
- Organisation: Create or select the organisation that owns the work.
- Project: Create an incoming or outgoing project (see Organisations and projects).
- Sources (incoming): Define how events enter Convoy (HTTP, REST API, broker-backed, etc.); see Sources.
- Endpoints (outgoing): Define destination URLs, timeouts, auth, and optional verification considerations. For many endpoints at once inside an existing project, use bulk onboard after the project exists (and configure sources separately if your topology needs explicit source links).
- Subscriptions: Link sources to endpoints (filters, retry policy, functions); see Subscriptions.
Bulk onboard
POST /api/v1/projects/{projectID}/onboard creates endpoints and matching subscriptions in bulk inside a project you already have. It does not replace the full provisioning order above; use it after your project exists.
Payload formats
Send either JSON or a CSV file (not both in the same request). JSON (Content-Type: application/json):
name and url. Optional fields: event_type (defaults to *, all events), auth_username and auth_password (must both be set or both omitted).
CSV (Content-Type: multipart/form-data, field name file, max 10 MB):
name, url. Optional columns: event_type, auth_username, auth_password.
Recommended workflow
Dry run
Add A 200 response returns validation results:If there are problems,
?dry_run=true to validate your payload without creating anything:errors lists each one with row, field, and message.Fix validation errors
Correct any rows flagged in the dry-run response and re-run until
errors is empty.Submit
Remove the Work is processed asynchronously in batches of up to 50 items. If you submit without
dry_run parameter and POST the same payload. A 202 confirms the request is accepted:dry_run and there are validation errors, the API returns 400 with the same error shape as the dry run.Verify
Poll the list endpoints and list subscriptions APIs, or check the dashboard, until the expected resources appear.
-F instead of -d:
Limits
| Limit | Value |
|---|---|
| Maximum items per request | 1,000 |
| Batch size (items per queue job) | 50 |
| Multipart form size (CSV upload) | 10 MB |
What gets created
For each valid row the processor creates:- Endpoint: active status,
application/jsoncontent type, auto-generated signing secret. - Subscription: named
{name}-subscription, typeapi, event type filter set fromevent_type(default*). No source is attached; if you need source-to-endpoint wiring for incoming projects, update the subscription via the subscriptions API after onboard.
auth_username and auth_password are both provided, the endpoint is configured with HTTP Basic outbound auth. Basic auth requires an enterprise license and the organisation early adopter flag. See Endpoint authentication for details.
Self-hosted note
The Convoy agent (convoy agent) must be running to process onboard batches. If it is not, jobs sit in the queue and endpoints will not appear until the agent starts.
Export, audit, and backups
- API listing: Use list endpoints (projects, endpoints, subscriptions, etc.) to snapshot configuration for audits or drift detection.
- Self-hosted: Database backups and restores are your operational responsibility; Convoy stores configuration and state in PostgreSQL.
- Hosted / Cloud: Follow your provider’s export and support processes for tenant data.