Skip to content

Getting started

Quickstart

FullsendAI speaks both APIs your code and tools already know: OpenAI's Chat Completions and Anthropic's Messages. One key works with both, every model is hosted in the USA, and you pay per token from a prepaid balance.

Base URLs#

APIBase URLEndpoints
OpenAI-compatiblehttps://fullsendai.com/v1POST /chat/completions, GET /models, POST /embeddings, POST /rerank, GET /key
Anthropic-compatiblehttps://fullsendai.comPOST /v1/messages, POST /v1/messages/count_tokens, GET /v1/models
Anthropic's SDKs and Claude Code add /v1/messages themselves, so their base URL is the bare domain. OpenAI-style tools want the URL ending in /v1.

The whole API is described in an OpenAPI spec (/openapi.json, OpenAPI 3.1) for code generators and API clients. AI assistants and coding agents can read /llms.txt, a plain-text map of the API and these docs (/llms-full.txt has every endpoint and the live models).

1. Get a key#

  1. Create an account and confirm your email, then add a card or credit to start your agent.
  2. Open API keys and create one. It starts with fs_live_ and is shown once, so copy it somewhere safe.
  3. Put it in an environment variable, so it stays out of your code:
shell
export FULLSEND_API_KEY=fs_live_...

Kept in this browser tab only and never sent to us. Copy buttons then paste it into every sample.

2. Make a request#

Install the OpenAI SDK (pip install openai or npm install openai), or use curl:

curl https://fullsendai.com/v1/chat/completions \  -H "Authorization: Bearer $FULLSEND_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "model": "deepseek-v4.1-flash",    "messages": [{"role": "user", "content": "Write a debounce function in TypeScript"}]  }'
Response
{  "id": "chatcmpl-ed1a50752eb09f27899afda3",  "object": "chat.completion",  "created": 1792116871,  "model": "deepseek-v4.1-flash",  "choices": [    {      "index": 0,      "message": { "role": "assistant", "content": "function debounce<T extends (...args: any[]) => void>(…" },      "finish_reason": "stop"    }  ],  "usage": { "prompt_tokens": 16, "completion_tokens": 214, "total_tokens": 230, "prompt_tokens_details": { "cached_tokens": 0 } }}

Every call appears within a second under Logs with its status, tokens, time and cost. Model IDs are on Models, or GET /v1/models.

Or use the Anthropic API#

The same key and models, through Anthropic's Messages API (pip install anthropic or npm install @anthropic-ai/sdk). max_tokens is required here.

curl https://fullsendai.com/v1/messages \  -H "x-api-key: $FULLSEND_API_KEY" \  -H "anthropic-version: 2023-06-01" \  -H "Content-Type: application/json" \  -d '{    "model": "deepseek-v4.1-flash",    "max_tokens": 1024,    "messages": [{"role": "user", "content": "Write a debounce function in TypeScript"}]  }'

3. Plug in your agent#

Claude Code, Cursor, Cline, Roo Code, Continue, Aider, Codex and anything else that lets you set a base URL and key works. Exact settings for each are on Connect your agent.

Claude Code
export ANTHROPIC_BASE_URL=https://fullsendai.comexport ANTHROPIC_AUTH_TOKEN=$FULLSEND_API_KEYexport ANTHROPIC_MODEL=deepseek-v4.1-flashclaude

Next steps#

Stuck? Email [email protected]System statusChangelog