Base URL
The Orquestra API is available at:API Routes Structure
The API is organized into the following route groups:/auth/*- Authentication endpoints (GitHub OAuth, user sessions)/api/*- Core API endpoints (projects, instructions, transactions)/api/idl/*- IDL management (upload, update, versioning)/health- Health check endpoint
Response Format
All API responses follow a consistent JSON structure:Success Response
Error Response
Standard Error Codes
Invalid request parameters or malformed JSON
Missing or invalid authentication credentials
Valid authentication but insufficient permissions
Resource does not exist or is not accessible
Resource already exists (e.g., duplicate project)
Request validation failed with detailed error messages
Rate limit exceeded. Check
Retry-After headerServer error occurred. Contact support if persistent
Rate Limiting
The API implements rate limiting to ensure fair usage and system stability. Rate limits are applied per IP address.Rate Limit Tiers
100 requests per minuteStandard rate limit for public API endpoints including project listing, instruction queries, and account information.
20 requests per minuteStricter limit on authentication endpoints to prevent abuse.
10 requests per minuteLimited rate for IDL uploads to protect storage resources.
30 requests per minuteRate limit for transaction building endpoints that interact with Solana RPC.
Rate Limit Headers
All API responses include rate limit information in headers:Maximum number of requests allowed in the current window
Number of requests remaining in the current window
Unix timestamp when the rate limit window resets
429 Too Many Requests response:
Retry-After header indicates seconds to wait before retrying.
Public vs Private Projects
Projects in Orquestra can be either public or private:Public Projects
- Accessible to all users without authentication
- Listed in public project directory (
GET /api/projects) - IDL and instructions are publicly queryable
- Documentation is publicly available
- Transaction building is open to all
Private Projects
- Only visible to the project owner
- Require authentication (JWT token) to access
- Not listed in public project directory
- Useful for development or proprietary programs
- Can be made public at any time by the owner
Access Control Example
Authenticated users see both public and their own private projects:CORS Configuration
The API supports Cross-Origin Resource Sharing (CORS) for browser-based applications:Allowed Origins
https://orquestra.dev(production)http://localhost:3000(local development)http://localhost:5173(Vite dev server)
Allowed Headers
Content-TypeAuthorizationX-API-Key
Allowed Methods
GET,POST,PUT,DELETE,OPTIONS
Credentials
Credentials (cookies, authorization headers) are supported for authenticated requests.Network Selection
When building transactions, you can specify the Solana network:Solana network or custom RPC URL:
"mainnet"or"mainnet-beta"- Solana Mainnet"devnet"- Solana Devnet- Custom RPC URL - e.g.,
"https://my-rpc.com"
Example
Pagination
List endpoints support pagination with query parameters:Page number (1-indexed)
Items per page (max: 100)
Search query to filter results
Pagination Response
Current page number
Items per page
Total number of items across all pages
Total number of pages
Caching
The API implements intelligent caching for performance:- IDL data is cached in KV storage for 7 days
- Documentation is cached for 7 days and regenerated when IDL updates
- Public API responses are cached when appropriate
- Cache is automatically invalidated on updates
Health Check
Check API availability:Next Steps
Authentication
Learn how to authenticate API requests with JWT tokens or API keys
Projects
Explore project management endpoints for organizing your Solana programs
Instructions
Build and execute Solana transactions with program instructions