API Reference
Understand general concepts, response codes, and authentication strategies.
Base URL
The Indieop API is built on REST principles. We enforce HTTPS in every request to improve data security, integrity, and privacy. The API does not support HTTP.
All requests contain the following base URL:
https://indieop.com/api/sdk
Authentication
To authenticate you need to add an X-API-Key header with your game's API key. You can find your API key in your game settings on the dashboard.
X-API-Key: your_game_api_key_here
Example Request
Here's an example of making an authenticated request using cURL:
curl -X GET "https://indieop.com/api/sdk/health" \
-H "X-API-Key: your_game_api_key_here"
Important: Keep your API key secure and never expose it in client-side code. The API key should only be used in server-side or trusted environments like game engines.
Response Codes
Indieop uses standard HTTP codes to indicate the success or failure of your requests. In general, 2xx HTTP codes correspond to success, 4xx codes are for user-related failures, and 5xx codes are for infrastructure issues.
| Status | Description |
|---|---|
200
|
Successful request. |
201
|
Resource created successfully. |
400
|
Bad request. Check that the parameters were correct. |
401
|
The API key used was missing or invalid. |
403
|
Forbidden. Your studio has reached its plan limits or the game is inactive. |
404
|
The resource was not found. |
405
|
HTTP method not allowed for this endpoint. |
422
|
Validation failed. Check the error details in the response. |
429
|
The rate limit was exceeded. Please slow down your requests. |
5xx
|
Indicates an error with Indieop servers. |
Check Error Codes for a comprehensive breakdown of all possible API errors.
Response Format
All API responses are returned in JSON format with a consistent structure. Successful responses include a success field set to true, along with relevant data.
Success Response
{
"success": true,
"message": "Submission received successfully",
"data": {
"submission_id": "123e4567-e89b-12d3-a456-426614174000",
"form_name": "Player Feedback",
"form_tag": "feedback",
"submitted_at": "2025-10-12T10:30:00.000000Z",
"fields_count": 3
}
}
Error Response
{
"success": false,
"message": "Validation failed",
"errors": {
"form_name": [
"Form name is required."
],
"fields": [
"At least one field is required."
]
}
}
Rate Limit
The default rate limit is 100 requests per minute per API key. If you exceed this limit, you'll receive a 429 response error code.
Rate limits are calculated per API key (per game) and reset every minute. We recommend implementing exponential backoff in your client code when handling rate limit errors.
Need higher limits? If your game requires a higher rate limit, please contact our support team at support@indieop.com to discuss your needs.
Learn more about our rate limits.
Available Endpoints
The Indieop API provides the following endpoints:
/api/sdk/health
Health check endpoint to verify API connectivity and authentication.
/api/sdk/forms
Retrieve all available forms for your game.
/api/sdk/submit
Submit form data from your game to collect player feedback, bug reports, or other data.
Getting Started
To start using the Indieop API:
- Create a game in your dashboard
- Copy your game's API key from the game settings
- Make HTTP requests to the API endpoints with your API key in the
X-API-Keyheader - Start collecting player feedback!
Using a game engine?
While you can use the API directly with any HTTP client, we also provide pre-built SDKs for popular game engines like Godot and Unity to make integration even easier. Check our documentation for SDK installation guides.