SyncCreate or update pipeline

Create or update pipeline

Set which connections a run waits for, when it starts, and where the completion webhook goes.

ENABLING TAKES SCHEDULES OVER. Every in-scope connection is set to manual in Airbyte and its previous schedule stashed, because a run can only be a meaningful unit if Mythic is what triggers the syncs. Anything DROPPED from scope, or in the pipeline when it is disabled, gets its original schedule handed back — a connection left on manual with nothing triggering it does not error, it simply stops updating. The response reports both under schedule_changes.

ALL OR NOTHING ON TAKEOVER. Airbyte is changed before the pipeline is saved. If Airbyte is unreachable (502 airbyte_unavailable) or any connection cannot be set to manual (502 schedule_takeover_failed, per-connection reasons in details.errors), nothing is saved and connections taken over during the request get their schedules back. A hand-back that fails after the save is reported in schedule_changes.errors with a top-level warning.

Omitted fields keep their stored value; a new pipeline starts disabled with run_hour_utc 2. connection_ids must be connections belonging to this client; otherwise 400 unknown_connections. Deleting a connection removes it from the scope automatically. Requires an agency key (ak_).

curl -X PUT "https://mythic-analytics.gulp.workers.dev/client/v1/airbyte/pipelines/example_string" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "enabled": true,
  "connection_ids": [
    "example_string"
  ],
  "run_hour_utc": 42,
  "webhook_url": "example_string",
  "webhook_secret": "example_string"
}'
{
  "success": true,
  "data": {
    "id": "example_string",
    "client_id": "example_string",
    "agency_id": "example_string",
    "enabled": true,
    "connection_ids": [
      "example_string"
    ],
    "run_hour_utc": 42,
    "webhook_url": "example_string",
    "has_webhook_secret": true,
    "created_at": "2024-12-25T10:00:00Z",
    "updated_at": "2024-12-25T10:00:00Z",
    "schedule_changes": {
      "taken_over": [
        {}
      ],
      "handed_back": [
        {}
      ],
      "errors": [
        {}
      ]
    }
  },
  "warning": "example_string"
}
PUT
/pipelines/{clientId}
PUT
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

Agency key as bearer token, format Bearer ak_.... Grants full read-write access scoped to the agency. Agency-wide scoped keys (mcp_ with no fixed location) are accepted too and need airbyte:read or airbyte:write; a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.

Agency key as bearer token, format Bearer ak_.... Grants full read-write access scoped to the agency. Agency-wide scoped keys (mcp_ with no fixed location) are accepted too and need airbyte:read or airbyte:write; a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.
Bearer Token
Bearer Tokenstring
Required

Location secret key as bearer token, format Bearer sk_.... Grants read-only access; the agency is resolved from the location. Write endpoints return 403.

Location secret key as bearer token, format Bearer sk_.... Grants read-only access; the agency is resolved from the location. Write endpoints return 403.
path
clientIdstring
Required

Client (location) identifier the pipeline belongs to.

Content-Typestring
Required

The media type of the request body

Options: application/json
connection_idsarray

Mythic connection ids a run waits for. Authoritative — never inferred at run time. Use GET /pipelines/{clientId}/candidates to populate a picker.

run_hour_utcinteger

Hour (UTC) the daily run starts.

Min: 0 • Max: 23
webhook_urlstring

HTTPS endpoint POSTed once the run completes. Empty string or null removes it.

webhook_secretstring

Used to HMAC-SHA256 the request body into X-Mythic-Signature. Write-only; never returned. Empty string or null removes it.

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. Agency key as bearer token, format Bearer ak_.... Grants full read-write access scoped to the agency. Agency-wide scoped keys (mcp_ with no fixed location) are accepted too and need airbyte:read or airbyte:write; a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.

header
Authorizationstring
Required

Bearer token. Location secret key as bearer token, format Bearer sk_.... Grants read-only access; the agency is resolved from the location. Write endpoints return 403.

Path Parameters

clientIdstring
Required

Client (location) identifier the pipeline belongs to.

Body

application/json
connection_idsarray

Mythic connection ids a run waits for. Authoritative — never inferred at run time. Use GET /pipelines/\\{clientId\\}/candidates to populate a picker.

run_hour_utcinteger

Hour (UTC) the daily run starts.

webhook_urlstring

HTTPS endpoint POSTed once the run completes. Empty string or null removes it.

webhook_secretstring

Used to HMAC-SHA256 the request body into X-Mythic-Signature. Write-only; never returned. Empty string or null removes it.

Responses

successboolean
datastring
warningstring

Present when a connection could not be given its schedule back.