Shipeasy
Flags experimentsApiOperations

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 created enabled: false with empty config and no credentials; the provider's OAuth flow then attaches credentials and enables it.
  • Trigger providers (claude_trigger, cursor_trigger, copilot_trigger, jules_trigger) — supply config plus 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.
Use cases
  • 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_trigger with its routineId and (optionally) a fire token; subscribe events later to auto-fire on new bugs.
  • Cold cloud-agent run — register a cursor_trigger/jules_trigger with the repo coordinates plus both keys, or a copilot_trigger with the repo + user PAT.
POST
/api/admin/connectors

Authorization

bearerSdkKey
AuthorizationBearer <token>

Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".

In: header

Header Parameters

X-Project-Id?string

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"
}

Was this page helpful?
✎ Edit this page