ScoutsUpdate a scout

Update a scout

Merge a change onto the scout. skill cannot change. A body of only {"enabled": false} pauses the scout without any plan, model key or scope check, so spend can always be stopped. Every other change is checked like a create. Omitting both provider and model keeps the provider; a model-only change keeps the current provider when the model fits it, and on a scout whose provider's key was deleted gets 409 no_model_key naming that provider. The update is rejected with 409 version_conflict if the scout changed concurrently.

curl -X PATCH "https://mythic-analytics.gulp.workers.dev/client/v1/scouts/123e4567-e89b-12d3-a456-426614174000" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "name": "John Doe",
  "instructions": "example_string",
  "schedule": {
    "kind": "daily",
    "time": "08:00",
    "day_of_week": 42,
    "timezone": "America/New_York"
  },
  "delivery": {
    "channel_ids": [
      "123e4567-e89b-12d3-a456-426614174000"
    ]
  },
  "enabled": true,
  "provider": "openrouter",
  "model": "example_string"
}'
{
  "success": true,
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "location_id": "example_string",
    "name": "John Doe",
    "skill": "error_tracking",
    "instructions": "example_string",
    "schedule": {
      "kind": "daily",
      "time": "08:00",
      "day_of_week": 42,
      "timezone": "America/New_York"
    },
    "delivery": {
      "channel_ids": [
        "123e4567-e89b-12d3-a456-426614174000"
      ]
    },
    "model": "example_string",
    "provider": "openrouter",
    "enabled": true,
    "version": 42,
    "next_run_at": "2024-12-25T10:00:00Z",
    "last_run_at": "2024-12-25T10:00:00Z",
    "last_report_at": "2024-12-25T10:00:00Z",
    "last_error": "example_string",
    "current_run": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "pending",
      "scheduled_for": "2024-12-25T10:00:00Z",
      "triggered_by": "schedule",
      "attempts": 42
    },
    "can_run_now": true,
    "created_at": "2024-12-25T10:00:00Z",
    "updated_at": "2024-12-25T10:00:00Z"
  }
}
PATCH
/client/v1/scouts/{id}
PATCH
Base URLstring

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

Bearer Token
Bearer Tokenstring
Required

Agency key (ak_) only; a location secret key (sk_) gets 403 agency_required. Agency-wide scoped keys (mcp_) need scouts:read or scouts:write, plus the read scope of every surface a scout's skill reads to create or run it, and of every surface a report's run read to open it.

Agency key (ak_) only; a location secret key (sk_) gets 403 agency_required. Agency-wide scoped keys (mcp_) need scouts:read or scouts:write, plus the read scope of every surface a scout's skill reads to create or run it, and of every surface a report's run read to open it.
Content-Typestring
Required

The media type of the request body

Options: application/json
namestring
Min length: 1 • Max length: 120
instructionsstring

Your notes, added after the skill's playbook. Required for the custom skill.

Max length: 8000
providerstring

Which key runs the scout: the client's key for this provider, else the agency's. Null runs on the client's default key if it has keys of its own, else the agency's default. Omitted with a model: inferred and stored. Omitted without one: unchanged (null on create).

Options: openrouter, gemini, cloudflare,
modelstring

A model the key can run: google/model on OpenRouter or Cloudflare, other vendor/model on OpenRouter only, @cf/vendor/model on Cloudflare only, a bare id on Gemini. Null uses the key's default unless it is a lite or nano model, else google/gemini-3.8-flash (OpenRouter), gemini-3.8-flash (Gemini) or @cf/moonshotai/kimi-k2.6 (Cloudflare). Lite and nano models are refused.

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. Agency key (ak_) only; a location secret key (sk_) gets 403 agency_required. Agency-wide scoped keys (mcp_) need scouts:read or scouts:write, plus the read scope of every surface a scout's skill reads to create or run it, and of every surface a report's run read to open it.

Path Parameters

Body

application/json
instructionsstring

Your notes, added after the skill's playbook. Required for the custom skill.

scheduleobject
deliveryobject
providerstring

Which key runs the scout: the client's key for this provider, else the agency's. Null runs on the client's default key if it has keys of its own, else the agency's default. Omitted with a model: inferred and stored. Omitted without one: unchanged (null on create).

Allowed values:openroutergeminicloudflare
modelstring

A model the key can run: google/model on OpenRouter or Cloudflare, other vendor/model on OpenRouter only, @cf/vendor/model on Cloudflare only, a bare id on Gemini. Null uses the key's default unless it is a lite or nano model, else google/gemini-3.8-flash (OpenRouter), gemini-3.8-flash (Gemini) or @cf/moonshotai/kimi-k2.6 (Cloudflare). Lite and nano models are refused.

Responses

successboolean
dataobject