Introduction
The Frontier API is a Connect RPC API that provides programmatic access to all Frontier features including user management, organization administration, billing, permissions, and more. The API is built on the Connect protocol, which provides efficient gRPC-compatible communication over HTTP/1.1 and HTTP/2.Base URL
All API requests are made to the base URL:/v1beta1 path prefix.
Replace
your-frontier-instance.com with your actual Frontier deployment URL.API Versioning
Frontier uses version-based URL paths. The current API version is v1beta1.- All API endpoints are prefixed with the version:
/raystack.frontier.v1beta1.FrontierService/ - The admin API uses:
/raystack.frontier.v1beta1.AdminService/
Services
Frontier provides two main RPC services:- User and service user management
- Organization and project operations
- Group and role management
- Billing and subscriptions
- Permissions and policies
- Platform configuration
- System-wide permissions
- Namespace management
- Role definitions
Request Format
Frontier accepts requests in both JSON and Protocol Buffers formats. All requests must include the appropriateContent-Type header.
Content Types
application/json- JSON encoding (recommended for most clients)application/proto- Protocol Buffer binary encodingapplication/connect+json- Connect JSON encodingapplication/connect+proto- Connect Protocol Buffer encoding
Response Format
All successful API responses return a JSON or Protocol Buffer object with the requested data. The structure varies by endpoint but follows consistent patterns.Success Response
Common Response Fields
Many resources include these standard fields:Unique identifier for the resource (UUID or custom ID)
Machine-readable name (slug format)
Human-readable display name
ISO 8601 timestamp when the resource was created
ISO 8601 timestamp when the resource was last updated
Optional key-value pairs for custom data
Error Handling
Frontier uses Connect protocol error codes and provides detailed error messages. All errors follow a consistent structure.Error Response
HTTP Status Codes
Connect maps its error codes to HTTP status codes:| Connect Code | HTTP Status | Description |
|---|---|---|
ok | 200 | Success |
canceled | 499 | Request canceled |
invalid_argument | 400 | Invalid request parameters |
not_found | 404 | Resource not found |
already_exists | 409 | Resource already exists |
permission_denied | 403 | Insufficient permissions |
unauthenticated | 401 | Authentication required |
resource_exhausted | 429 | Rate limit exceeded |
failed_precondition | 400 | Precondition failed |
internal | 500 | Internal server error |
unavailable | 503 | Service unavailable |
Common Error Codes
Here are the most common error codes you’ll encounter:Domain-Specific Errors
Frontier provides specific error messages for domain operations:- Organization errors:
org is disabled. Please contact your administrator to enable it - Billing errors:
insufficient credits,already on same plan - Domain verification:
required TXT record not found for domain verification - Invitation errors:
invitation expired,user is already a member of the organization - KYC errors:
customer portal changes not allowed: organization kyc completed
Rate Limiting
Frontier does not enforce global rate limits by default, but individual deployments may configure rate limiting. Check with your Frontier administrator for specific limits.If you receive a
resource_exhausted error, you’ve hit a rate limit. Wait before retrying.Pagination
List endpoints support cursor-based pagination using the following query parameters:Number of results per page (max: 100)
Page number to retrieve
Pagination Example
Health Checks
Frontier provides health check endpoints for monitoring:Ping Endpoint
gRPC Health Check
Service Reflection
Frontier supports gRPC reflection for discovering available services and methods:- Reflection v1:
/grpc.reflection.v1.ServerReflection - Reflection v1alpha:
/grpc.reflection.v1alpha.ServerReflection
SDK Support
Frontier uses the Connect protocol, which has official client libraries for:- Go: connect-go
- TypeScript: connect-es
- Swift: connect-swift
- Kotlin: connect-kotlin
Next Steps
Authentication
Learn how to authenticate API requests
API Endpoints
Explore available API endpoints