import type { Metadata } from 'next'; import { TipBox } from '@/components/docs/shared/TipBox'; import { Table } from '@/components/docs/shared/Table'; import { CodeBlock } from '@/components/docs/shared/CodeBlock'; import { DocPage } from '@/components/docs/layout/DocPage'; import { JsonLd } from '@/components/seo/JsonLd'; import { createDocsMetadata, DOCS_PAGES } from '@/config/docs-seo'; import { createBreadcrumbSchema, createTechArticleSchema, API_REFERENCE_SCHEMA } from '@/config/docs-schema'; import { Hero, SectionHeader, InlineCode, LinkCard, LinkCardGrid, } from '@/components/docs/blocks'; const PAGE = DOCS_PAGES['api-overview']; export const metadata: Metadata = createDocsMetadata(PAGE); const breadcrumbSchema = createBreadcrumbSchema([ { name: 'Home', path: '/' }, { name: 'Documentation', path: '/docs/' }, { name: 'API Reference', path: '/docs/api/' }, ]); const articleSchema = createTechArticleSchema(PAGE); const tocItems = [ { id: 'base-url', text: 'Base URL', level: 2 }, { id: 'authentication', text: 'Authentication', level: 2 }, { id: 'response-format', text: 'Response Format', level: 2 }, { id: 'error-codes', text: 'Common Error Codes', level: 2 }, { id: 'rate-limits', text: 'Rate Limits', level: 2 }, { id: 'endpoints', text: 'Endpoints', level: 2 }, { id: 'next-steps', text: 'Next Steps', level: 2 }, ]; export default function APIOverviewPage() { return ( <> Base URL Authentication All endpoints require the X-API-Key header: See Authentication for details on obtaining and using API keys. Response Format All responses follow a consistent JSON structure: Success Response: Error Response: Paginated Response: Common Error Codes 400, 'VALIDATION_ERROR', 'Missing or invalid parameters', ], [ 401, 'UNAUTHORIZED', 'Missing or invalid API key', ], [ 404, '*_NOT_FOUND', 'Requested resource not found', ], [ 409, 'ALIAS_CONFLICT', 'Alias already exists', ], [ 429, 'RATE_LIMIT_EXCEEDED', 'Too many requests', ], [ 500, 'INTERNAL_ERROR', 'Server error', ], ]} /> Rate Limits API requests are rate limited to 100 requests per hour per API key. Rate limit headers are included in every response: X-RateLimit-Limit, 'Maximum requests per hour'], [X-RateLimit-Remaining, 'Requests remaining in current window'], [X-RateLimit-Reset, 'Unix timestamp when limit resets'], ]} /> Endpoints > ); }
All endpoints require the X-API-Key header:
See Authentication for details on obtaining and using API keys.
All responses follow a consistent JSON structure:
Success Response:
Error Response:
Paginated Response:
API requests are rate limited to 100 requests per hour per API key.
Rate limit headers are included in every response: