Create a connector
Creates a connector. The request body is discriminated on provider.
Creates a connector. The request body is discriminated on provider.
- OAuth/app providers (
google_sheets,github,slack) — supply{ provider, name, events }. The connector is createdenabled: falsewith emptyconfigand no credentials; the provider's OAuth flow then attaches credentials and enables it. - Trigger providers (
claude_trigger,cursor_trigger,copilot_trigger,jules_trigger) — supplyconfigplus the provider's credential field(s) and the connector is fireable immediately. Trigger creates are idempotent by their natural key (config.routineId/config.repoUrl/config.owner+config.repo/config.source): re-creating updates the existing row rather than duplicating it.
- File bugs as GitHub Issues —
{ "provider": "github", "name": "Bugs → acme/app", "events": ["bug.created"] }, then finish the GitHub App install. - Nightly ops sweep — register a
claude_triggerwith itsroutineIdand (optionally) a firetoken; subscribeeventslater to auto-fire on new bugs. - Cold cloud-agent run — register a
cursor_trigger/jules_triggerwith the repo coordinates plus both keys, or acopilot_triggerwith the repo + user PAT.
Authorization
bearerSdkKey Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".
In: header
Header Parameters
Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://shipeasy.ai/api/admin/connectors" \ -H "Content-Type: application/json" \ -d '{ "provider": "github", "name": "Bugs → acme/app issues", "events": [ "bug.created" ] }'{
"id": "9b0e7c2a-1f3d-4a8e-bf21-0c6a2e5d7f10"
}{
"error": "Malformed request (bad JSON, missing project scope).",
"code": "BAD_REQUEST"
}{
"error": "Missing or invalid admin SDK key.",
"code": "UNAUTHORIZED"
}{
"error": "Key is valid but not allowed to act on this project.",
"code": "FORBIDDEN"
}{
"error": "The resource does not exist or is not visible to the caller.",
"code": "NOT_FOUND"
}{
"error": "A resource with this name already exists in the project.",
"code": "ALREADY_EXISTS"
}{
"error": "The request body failed structural (schema) validation.",
"code": "VALIDATION"
}