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

Message a Discord joiner the onboarding link

Has Scouty's Discord bot DM one person who joined this campaign's Discord and never texted the join code, with the campaign's onboarding link. Somebody already messaged is not messaged again.

POST/v1/campaigns/{campaignId}/discord-joins/{discordUserId}/invite
  • Scopecreators:manage
  • Write
  • MCP toolscouty_invite_discord_join

Markdown version for your agent

Authorization

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

Authorization: Bearer $SCOUTY_TOKEN

Path parameters

NameTypeRequiredDescription
campaignIdintegerRequired

The campaign.

discordUserIdstringRequired

The person's Discord id, as scouty_list_discord_joins reports it.

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.

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.
404 Not Foundnot_foundNo such route, or no such campaign for this client.
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.