Skip to main content

API Authentication

The Skode API uses API keys for server-to-server communication and OAuth 2.0 for user-authenticated integrations. All API requests must be made over HTTPS. The base URL for all endpoints is https://api.skodeai.com/v1.

API Key Authentication

Generate an API key under Settings > API & Webhooks > API Keys. Click Generate Key, provide a label, and copy the key immediately — it will not be shown again. Include the key in the Authorization header:

curl -X GET https://api.skodeai.com/v1/leads \
  -H "Authorization: Bearer sk_live_your_api_key_here" \
  -H "Content-Type: application/json"

OAuth 2.0

For integrations that act on behalf of a user, use OAuth 2.0 Authorization Code flow. Register your application under Settings > API & Webhooks > OAuth Apps to obtain a client_id and client_secret. The authorization endpoint is https://app.skodeai.com/oauth/authorize and the token endpoint is https://api.skodeai.com/v1/oauth/token.

// Exchange authorization code for access token
const response = await fetch('https://api.skodeai.com/v1/oauth/token', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    grant_type: 'authorization_code',
    code: 'AUTH_CODE_HERE',
    client_id: 'your_client_id',
    client_secret: 'your_client_secret',
    redirect_uri: 'https://your-app.com/callback'
  })
});

Rate Limits

API requests are rate limited per API key:

  • Free plan — 100 requests per minute
  • Pro plan — 1,000 requests per minute
  • Enterprise plan — 10,000 requests per minute

Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. When the limit is exceeded, the API returns a 429 Too Many Requests response with a Retry-After header.

Error Handling

The API returns standard HTTP status codes. Error responses include a JSON body with error (machine-readable code) and message (human-readable description). Common errors: 401 Unauthorized, 403 Forbidden, 404 Not Found, 422 Unprocessable Entity, and 429 Too Many Requests.