For AI Agents
Programmatic access documentation for AI agents and automated systems.
# Arcada Gateway API Documentation
## Base URL
https://api.arcada.dev
## Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## Endpoints
### Health Check
Verify API connectivity and authentication status.
**Endpoint:** `GET /api/v1/health`
**Headers:**
- `Authorization: Bearer YOUR_API_KEY`
**Response:**
```json
{
"status": "healthy",
"timestamp": "2024-01-01T00:00:00.000Z",
"version": "1.0.0"
}
```
### Content Generation
Generate content using universal Router format API. Automatically selects the top-ranked model from DesignArena's leaderboard for your format.
**Endpoint:** `POST /api/v1/generate`
**Headers:**
- `Authorization: Bearer YOUR_API_KEY`
- `Content-Type: application/json`
**Request Body:**
```json
{
"input_format": "text",
"output_format": "website",
"messages": [
{
"role": "user",
"content": "Create a landing page for a coffee shop"
}
]
}
```
**Required Fields:**
- `input_format` (string): Input type - "text" | "image" | "video" | "audio"
- `output_format` (string): Output type (see available formats below)
- `messages` (array): At least one message with role "user" required
**Optional Fields:**
- `input_image` (string): Base64 or URL for image-to-image (required if input_format="image" and output_format="image")
- `input_video` (string): URL for video-to-video (required if input_format="video" and output_format="video" or "video-to-video")
- `input_audio` (string): Base64 or URL for speech-to-speech/text (required if input_format="audio" and output_format="speech"|"sts"|"text"|"stt")
- `temperature` (number): 0-2, controls randomness (default: 0.7)
- `max_tokens` (number): Maximum tokens in response
- `system_prompt` (string): Custom system prompt (overrides DesignArena's default)
- `images` (array): Additional image URLs/base64 for vision models
- `code_context` (string): Code context for code generation (max 50000 characters)
**Response:**
```json
{
"id": "chatcmpl-abc123...",
"object": "chat.completion",
"created": 1234567890,
"model": "GPT-4 Turbo",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Generated content here...",
"image_url": "https://...",
"video_url": "https://..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 150,
"completion_tokens": 200,
"total_tokens": 350
}
}
```
**Note:** The `model` field is not used. Arcada automatically selects the top-performing model from DesignArena's leaderboard based on your `input_format` and `output_format`.
## Available Formats
### Input Formats
- `text` - Text input (default, used for most generation types)
- `image` - Image input (for image-to-image transformation)
- `video` - Video input (for video-to-video transformation)
- `audio` - Audio input (for speech-to-speech and speech-to-text)
### Output Formats
- `website` - HTML website generation
- `image` - Image generation
- `logo` - Logo design
- `svg` - SVG graphics
- `video` - Video generation
- `video-to-video` - Video-to-video transformation
- `image-to-image` - Image-to-image transformation
- `slides` - Presentation slides
- `conversation` - Conversational AI
- `tts` - Text-to-Speech
- `sts` - Speech-to-Speech
- `stt` - Speech-to-Text
- `music` - Music generation
- `gamedev` - Game development assets
- `dataviz` - Data visualization
- `3d` - 3D design
- `uicomponent` - UI component code
- `graphic design` - Graphic design
## Rate Limits
- 300 requests per minute
- 10,000 requests per hour
- 100,000 requests per day
## Error Handling
All errors follow a consistent format:
```json
{
"error": {
"message": "Error description here",
"type": "invalid_request_error" | "rate_limit_error" | "insufficient_quota" | "server_error",
"code": "invalid_api_key" | "rate_limit_exceeded" | "insufficient_credits" | "internal_error" | null
}
}
```
**HTTP Status Codes:**
- `400 Bad Request` - Invalid parameters or missing required fields
- `401 Unauthorized` - Missing or invalid API key
- `402 Payment Required` - Insufficient credits
- `429 Too Many Requests` - Rate limit exceeded
- `500 Internal Server Error` - Server-side error
## Example Requests
### Health Check
```bash
curl https://api.arcada.dev/api/v1/health \
-H "Authorization: Bearer YOUR_API_KEY"
```
### Content Generation
```bash
curl https://api.arcada.dev/api/v1/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input_format": "text",
"output_format": "website",
"messages": [
{
"role": "user",
"content": "Create a landing page for a coffee shop"
}
]
}'
```
### Image-to-Image
```bash
curl https://api.arcada.dev/api/v1/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input_format": "image",
"output_format": "image",
"messages": [
{
"role": "user",
"content": "Transform this into a watercolor painting"
}
],
"input_image": "data:image/jpeg;base64,..."
}'
```
## Getting an API Key
To get an API key, create a developer account at https://api.arcada.dev and generate an API key from your dashboard.
## Additional Resources
- Quickstart Guide: https://api.arcada.dev/docs/quickstart
- Complete API Reference: https://api.arcada.dev/docs/reference