Skip to content
Scouty Docs
ScoutyDocs
  • Get startedGuides
  • Control and troubleshootingGuides
  • API referenceAPI reference
  • Limits, errors, and policiesGuides

Fill in a new campaign from its contract

Reads a contract PDF and returns the details of a new campaign it describes (title, description, pay line, deliverables, requirements, countries, targeting and application deadline), as the dashboard's new-campaign form does. Nothing is saved: pass the fields you keep to scouty_create_campaign. Each read is a billed model call, at most 10 per workspace an hour; a retry with the same idempotency key replays the answer rather than reading again. contractBase64 is the PDF as standard base64.

POST/v1/contract-autofill
  • Scopecampaigns:write
  • Write
  • Safe to retry
  • MCP toolscouty_autofill_campaign_from_contract

Markdown version for your agent

Authorization

Send a Scouty token as a bearer token in the Authorization header. The token needs the campaigns:write scope, or the call answers 403 insufficient_scope. Tokens and scopes

Authorization: Bearer $SCOUTY_TOKEN

Headers

NameTypeRequiredDescription
Idempotency-KeystringOptional

The same key the body's idempotencyKey carries. Send one or the other, or both with the same value.

Body parameters

A JSON object, sent with Content-Type: application/json.

NameTypeRequiredDescription
idempotencyKeystringRequired

A key you choose for this call, 8 to 128 characters of letters, digits, dot, underscore, colon or hyphen. Sending the same key with the same arguments replays the first answer and changes nothing, so a retry after a timeout is safe.

contractBase64stringRequired

The contract, a PDF, as standard base64 with no data: prefix.

Errors

A refusal answers { "error": { "code", "message" } }. Branch on code; the message is for a person. Every error and its fix

Statuserror.codeMeaning
400 Bad Requestinvalid_requestThe request was not the shape this capability takes, or its body was not JSON.
401 Unauthorizedmissing_token invalid_token token_revoked token_expired token_orphanedNo token, or one that is not recognized, revoked or expired.
403 Forbiddeninsufficient_scope wrong_principalThe token does not carry the scope this capability needs.
409 Conflictidempotency_conflictThat idempotency key was already used for a different request. Nothing was changed.
429 Too Many Requestsrate_limitedToo many requests this minute. Retry-After says how long is left.