Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.msgflash.com/llms.txt

Use this file to discover all available pages before exploring further.

Format

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid request data",
    "details": []
  }
}

Authentication and API quotas

CodeHTTPDescription
UNAUTHORIZED401API key missing, invalid, or revoked. Check x-api-key.
FORBIDDEN403Resource not accessible with this key
SUBSCRIPTION_INACTIVE403The account has no usable subscription for this action
API_RATE_LIMIT_EXCEEDED429More than 10 requests/second on the same key
MONTHLY_API_REQUEST_QUOTA_EXCEEDED429Monthly API request quota exhausted

Plan limits

CodeHTTPDescription
MAX_INSTANCES_REACHED403Instance limit reached
API_KEYS_NOT_AVAILABLE_ON_PLAN403API keys unavailable on the current plan
MAX_API_KEYS_REACHED403API key limit reached
WEBHOOKS_NOT_AVAILABLE_ON_PLAN403Webhooks unavailable on the current plan
MAX_WEBHOOK_ENDPOINTS_REACHED403Webhook endpoint limit reached
CAMPAIGNS_NOT_AVAILABLE_ON_PLAN403Campaigns unavailable on the current plan
STATUSES_NOT_AVAILABLE_ON_PLAN403WhatsApp statuses indisponibles sur le plan actuel
MAX_CONTACT_GROUPS_REACHED403Contact group limit reached
FEATURE_NOT_AVAILABLE_ON_PLAN403Feature unavailable on the current plan

Messages, templates, and validation

CodeHTTPDescription
VALIDATION_ERROR400Body does not match the expected schema
BAD_REQUEST400Invalid request
TEMPLATE_INVALID400Placeholder invalid ou template incohérent
TEMPLATE_VARIABLES_MISSING400One or more required variables could not be resolved
TEMPLATE_CONTEXT_UNAVAILABLE400Requested context is not available (instance or contact)
INVALID_DESTINATION422Invalid recipient number

General

CodeHTTPDescription
NOT_FOUND404Resource does not exist or is outside your account
CONFLICT409Uniqueness conflict
INTERNAL_ERROR500Server error
PROVIDER_TIMEOUT502WhatsApp provider timeout
PROVIDER_UNAVAILABLE502Provider temporarily unavailable
PROVIDER_ERROR502Generic provider error

Teams & workspaces

These codes appear when the request mixes the wrong API key type with X-Team-Id, or when a team-scoped resource is accessed without the right role. See Team context and the Teams & workspaces guide.
CodeHTTPDescription
TEAM_KEY_REQUIRED403Personal API key (msgf_live_…) used with X-Team-Id. Use a team key (msgf_team_…) instead, or drop the header.
TEAM_KEY_NOT_ALLOWED403Team API key used on a personal-only v1 route (/me, /usage, /billing/subscription, /billing/usage, /billing/payments). Use a personal key.
TEAM_NOT_FOUND404X-Team-Id is not a team you currently belong to (deleted, removed, or wrong ID).
TEAM_ACCESS_DENIED403Authenticated but the role is not allowed for this action (e.g. collaborator trying to manage team API keys).
TEAM_FEATURE_UNAVAILABLE403Account plan does not include team creation (Free / Starter). Upgrade to Pro or Plus.
TEAM_LIMIT_REACHED403Owner reached the maximum number of teams allowed by their plan.
TEAM_SEAT_LIMIT_REACHED403Team already has the maximum number of members for the owner’s plan.
INSTANCE_NOT_ASSIGNED403Collaborator targeting an instance that has not been assigned to them in this team workspace.
INVITE_INVALID_OR_EXPIRED400Invitation token / id is unknown, already used, or past its 24h expiry.
INVITE_EMAIL_MISMATCH403The JWT user email does not match the invited address.
INVITE_DUPLICATE_MEMBER409Invitee is already an active member of the team.
PLAN_CHANGE_BLOCKED_ACTIVE_TEAMS409Downgrade refused because the new plan cannot host the current teams / seats. Delete teams or reduce seats first.

Console-only (JWT, dashboard or portal)

These appear only on /api/billing/* JWT routes when called with X-Team-Id:
CodeHTTPDescription
BILLING_PAYMENTS_TEAM_OWNER_ONLY403GET /api/billing/payments in team workspace is reserved to the team owner.
BILLING_TEAM_MUTATION_FORBIDDEN403POST mutations (checkout, cancel, downgrade, cancel-scheduled-change) in team workspace are reserved to the team owner.