Skip to main content
The Flextell API is a REST API that lets you build applications on top of Flextell’s platform. All communication happens over HTTPS, and all request and response bodies are JSON.

What the API is

The Flextell API follows REST conventions. You interact with resources using standard HTTP methods (GET, POST, PUT, PATCH, DELETE). Every request must be made over HTTPS — plain HTTP is not supported and will be rejected.

Base URL and versioning

All API requests are made to the following base URL:
https://dev.flextell.ai/api
The current API version is v0.0.1. Include the version in the path of every request:
curl https://dev.flextell.ai/api/v0.0.1/your-resource \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN"
If the API introduces breaking changes in the future, a new version will be released at a new path. Your existing integrations will continue to work until a version is explicitly deprecated.

Authentication

The Flextell API uses OAuth 2.0 for authentication. After completing the OAuth flow, you receive an access token. Include this token as a Bearer token in the Authorization header of every API request:
Authorization: Bearer YOUR_ACCESS_TOKEN
See the OAuth 2.0 Flow page for a complete walkthrough of how to obtain an access token.

Request and response format

Request bodies

For requests that include a body (POST, PUT, PATCH), send JSON and set the Content-Type header:
Content-Type: application/json

Response bodies

All responses are JSON. A successful response looks like this:
{
  "data": {
    "id": "obj_abc123",
    "created_at": "2026-04-08T10:00:00Z"
  }
}
Error responses follow a consistent shape:
{
  "error": "invalid_request",
  "message": "The 'name' field is required."
}

HTTP status codes

The API uses standard HTTP status codes to indicate the result of a request.
StatusMeaning
200 OKThe request succeeded.
201 CreatedA resource was successfully created.
204 No ContentThe request succeeded with no response body.
400 Bad RequestThe request was malformed or missing required fields.
401 UnauthorizedThe access token is missing, invalid, or expired.
403 ForbiddenThe token is valid but lacks permission for this action.
404 Not FoundThe requested resource does not exist.
422 Unprocessable EntityThe request was well-formed but failed validation.
429 Too Many RequestsYou have exceeded the rate limit.
500 Internal Server ErrorAn unexpected error occurred on the server.

Rate limits

The Flextell API enforces rate limits to ensure fair use across all customers. The specific limits vary based on your account tier. When you exceed a rate limit, the API returns a 429 Too Many Requests response. The response includes a Retry-After header that tells you how many seconds to wait before retrying.
HTTP/1.1 429 Too Many Requests
Retry-After: 30
Content-Type: application/json

{
  "error": "rate_limit_exceeded",
  "message": "Too many requests. Retry after 30 seconds."
}
Sending requests continuously after receiving a 429 response — without respecting Retry-After — may result in your access being temporarily suspended.
Best practices for handling rate limits:
  • Read the Retry-After header and wait the specified duration before retrying.
  • Implement exponential backoff for retries when no Retry-After header is present.
  • Cache responses where possible to avoid redundant requests.
  • Contact Flextell support if you regularly approach your rate limit and need a higher tier.

Environments

Flextell currently provides one environment for API access:
EnvironmentBase URL
Livehttps://dev.flextell.ai/api
All API activity — including testing and development — takes place against the live environment. Use test resources and accounts to avoid affecting production data during development.