Skip to content

Error Codes

All API errors follow a consistent JSON format:

{
"error": "error_code",
"message": "Human and agent-readable description.",
"action_url": "https://app.skillett.dev/..."
}

The action_url field (when present) provides a direct link to resolve the issue.

ErrorMessageResolution
bad_requestVaries by contextCheck request body and parameters
ErrorMessageResolution
unauthorizedMissing or invalid authorization.Include Authorization: Bearer sk_xxx header
api_key_invalidInvalid API key.Check your key is correct and not truncated
api_key_revokedThis API key has been revoked.Create a new API key on the dashboard
api_key_expiredThis API key has expired.Create a new API key on the dashboard
token_expiredToken expired and refresh failed. Please reconnect.Run skillett connect <integration> to re-authorize
ErrorMessageResolution
forbiddenVaries by contextCheck permissions
integration_not_connectedThe user needs to connect their {slug} account first.Run skillett connect <slug> or visit action_url
scope_not_allowedAPI key does not have access to the {slug} integration.Create a new key with broader scopes
plan_limit_reachedPlan limit reached: maximum {limit} {resource}.Upgrade your plan at action_url
ErrorMessageResolution
not_found{resource} not found.Check the resource identifier (slug, ID, endpoint name)
ErrorMessageResolution
conflictVaries by contextResource already exists or state conflict
ErrorMessageResolution
daily_limit_reachedDaily API call limit reached ({limit}). Resets at midnight UTC.Wait for reset or upgrade plan at action_url
ErrorMessageResolution
internalVariesRetry the request. If persistent, contact support.