Skip to content

API Guide

This guide is automatically generated from the main Partner API documentation.

Source Documentation

This content is copied from Partner API documentation source files during the build process. See the full API documentation for complete details.

API Overview

The Partner API consists of three main components:

  1. Partner Admin API (/v1/partner/admin/*) - For partner apps to manage their automations and settings
  2. Partner User API (/v1/partner/user/*) - For partner apps to access user data via OAuth
  3. OAuth Endpoints (/oauth2/*, /auth/*) - For authentication and authorization

Base URLs

Environment Base URL
Production https://api.contio.ai
Beta https://beta.api.contio.ai

Authentication

See Authentication Guide for detailed setup instructions.

Rate Limits

Rate limits are enforced at the infrastructure level (AWS WAF) and are evaluated per IP address over a rolling 5-minute window.

Endpoint Type Rate Limit Approx. per Minute
User API (/v1/partner/user/*) 1,000 requests / 5 min ~200/min
Admin API (/v1/partner/admin/*) 500 requests / 5 min ~100/min
OAuth (/oauth/*, /auth/*) 100 requests / 5 min ~20/min

Rate Limit Responses

When you exceed the rate limit, the API returns a 429 Too Many Requests response:

{
  "error": "rate_limit_exceeded",
  "error_description": "Too many requests. Please retry after the rate limit window resets."
}

Best Practices

  • Implement exponential backoff when receiving 429 responses
  • Cache responses where appropriate to reduce API calls
  • Use webhooks for real-time updates instead of polling

Error Responses

All errors follow the OAuth 2.0 standard format:

{
  "error": "invalid_request",
  "error_description": "Missing required parameter: client_id",
  "request_id": "abc123xyz"
}

Common Error Codes

Code HTTP Status Description
invalid_request 400 Missing required parameter or redirect_uri mismatch
invalid_client 401 Invalid client_id or client_secret
invalid_grant 400 Invalid, expired, or already-used authorization code or refresh token
unsupported_grant_type 400 Grant type is not authorization_code or refresh_token
access_denied 403 User denied authorization
server_error 500 Internal server error

Next Steps