Build with 93+ AI generators. Version 1 — Base URL: https://generor.com/api/v1
Authenticate with a Bearer token in the Authorization header:
curl https://generor.com/api/v1/users/me \
-H "Authorization: Bearer gnr_live_your_api_key_here"
API keys start with gnr_live_ followed by 40 hex characters. Create keys via the API Keys endpoint or your account settings.
Some endpoints (browsing generators, public creations, models) work without authentication. Endpoints marked with AUTH require a valid API key.
API keys can be scoped to limit access:
| Scope | Allows |
|---|---|
read | GET requests to all endpoints |
write | POST, PATCH, DELETE operations (comments, ratings, profile updates, etc.) |
generate | Content generation (costs oomph) |
Keys with no scopes specified have full access.
Limits are per API key. Every response includes rate limit headers:
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 28
X-RateLimit-Reset: 1708444860
X-RateLimit-Tier: free
| Tier | Per Minute | Per Hour | Per Day |
|---|---|---|---|
| free | 30 | 500 | 5,000 |
| basic | 60 | 2,000 | 20,000 |
| pro | 120 | 5,000 | 50,000 |
| enterprise | 300 | 20,000 | 200,000 |
Unauthenticated requests are limited to 15/minute per IP. When rate limited, you'll receive a 429 response with a Retry-After header.
All responses use a consistent JSON envelope:
{
"success": true,
"data": { ... },
"meta": {
"page": 1,
"per_page": 20,
"total": 142,
"total_pages": 8,
"has_next": true,
"has_prev": false
}
}
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Creation not found",
"status": 404
}
}
List endpoints support pagination via query parameters:
| Parameter | Default | Description |
|---|---|---|
page | 1 | Page number (1-based) |
per_page | 20 | Items per page (max 100) |
sort | newest | Sort order: newest, oldest |
List all available generators.
curl https://generor.com/api/v1/generators
Query params: status (active, development, all)
Response: Array of generators with slug, title, description, icon, and similar generators.
Get detailed info about a specific generator.
curl https://generor.com/api/v1/generators/image
Browse public creations for a generator. Supports pagination.
curl "https://generor.com/api/v1/generators/joke/creations?page=1&per_page=10"
Generate content. Costs oomph based on the model selected.
curl -X POST https://generor.com/api/v1/generators/joke/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "Tell me a joke about programming",
"model_id": 1,
"privacy_mode": 0
}'
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
prompt | string | Yes | The generation prompt (max 10,000 chars) |
model_id | integer | No | AI model ID (see Models) |
privacy_mode | integer | No | 0 = public (default), 1 = private |
team_id | integer | No | Create under a team |
count | integer | No | Number of items (1-10, default 1) |
Response (202 Accepted):
{
"success": true,
"data": {
"init_id": 12345,
"session_key": "abc123...",
"status": "pending",
"generator": "joke",
"model_id": 1,
"oomph_cost": 2,
"status_url": "/api/v1/creations/12345/status",
"message": "Generation request queued. Poll the status_url to check progress."
}
}
List your own creations.
curl https://generor.com/api/v1/creations \
-H "Authorization: Bearer gnr_live_..."
Query params: generator (filter by slug), page, per_page, sort
Browse all public creations across all generators.
curl "https://generor.com/api/v1/creations/public?generator=image&page=1"
Search public creations by prompt text.
curl "https://generor.com/api/v1/creations/search?q=sunset+mountain"
Get a single creation with full details, images, and generator-specific data.
curl https://generor.com/api/v1/creations/12345
Public creations are accessible to anyone. Private creations require authentication as the owner.
Response includes:
{
"success": true,
"data": {
"creation_id": 12345,
"generator": "image",
"user_id": 42,
"username": "johndoe",
"prompt": "A sunset over mountains",
"created_at": "2026-02-20 12:00:00",
"privacy_mode": 0,
"type": "img",
"license": 1,
"images": [
{
"url": "/users/42/img/image-12345.png",
"width": 1024,
"height": 1024
}
],
"generator_data": { ... }
}
}
Poll the status of an async generation. Use the init_id returned from the generate endpoint.
curl https://generor.com/api/v1/creations/12345/status \
-H "Authorization: Bearer gnr_live_..."
Status values: pending, generating, completed, failed, cancelled
Update a creation you own.
curl -X PATCH https://generor.com/api/v1/creations/12345 \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"privacy_mode": 1, "license": 2}'
| Field | Values |
|---|---|
privacy_mode | 0 (public), 1 (private) |
license | 1 (Open GO-1.0), 2 (Exclusive GE-1.0) |
Delete a creation you own (soft delete).
curl -X DELETE https://generor.com/api/v1/creations/12345 \
-H "Authorization: Bearer gnr_live_..."
List all available AI models grouped by type.
curl https://generor.com/api/v1/models
List models for a specific type.
curl https://generor.com/api/v1/models/image
Valid types: text, image, video, speech, music, soundeffect, upscale, vector, backgroundremoval
Response per model:
{
"id": 10001,
"name": "Flux 1.1 Pro",
"type": "image",
"provider": "replicate",
"description": "High-quality image generation...",
"oomph_cost": 80,
"supports_img2img": true,
"supports_aspect_ratio": true
}
Get a specific model's details and pricing.
curl https://generor.com/api/v1/models/image/10001
Get your profile, oomph balance, and stats.
curl https://generor.com/api/v1/users/me \
-H "Authorization: Bearer gnr_live_..."
Response:
{
"success": true,
"data": {
"user_id": 42,
"username": "johndoe",
"email": "john@example.com",
"avatar": null,
"bio": "I make things with AI",
"website": "https://example.com",
"joined": "2025-01-15 10:30:00",
"oomph": {
"total": 1250,
"paid": 1000,
"free": 200,
"earned": 50,
"max": 250
},
"creation_count": 347,
"follower_count": 12,
"following_count": 5,
"teams": [...]
}
}
Update your profile.
curl -X PATCH https://generor.com/api/v1/users/me \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"bio": "Updated bio", "website": "https://example.com"}'
Get a user's public profile.
curl https://generor.com/api/v1/users/johndoe
List a user's public creations. Supports pagination.
List a user's followers. Supports pagination.
List who a user follows. Supports pagination.
Follow a user.
curl -X POST https://generor.com/api/v1/users/johndoe/follow \
-H "Authorization: Bearer gnr_live_..."
Unfollow a user.
Check if you follow a user. Returns {"following": true/false}.
All team endpoints require authentication.
List your teams.
Create a new team.
curl -X POST https://generor.com/api/v1/teams \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "My Creative Team"}'
Get team details with member list.
Leave a team.
Add a member by username: {"username": "janedoe"}
Remove a team member (owner only).
Join a team via invite code.
Regenerate invite code (owner only).
List team creations. Supports pagination.
List comments on a creation. Supports pagination.
curl https://generor.com/api/v1/creations/12345/comments
Add a comment.
curl -X POST https://generor.com/api/v1/creations/12345/comments \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"text": "Great creation!", "parent_id": null}'
Delete your own comment.
Vote on a comment: {"vote": "up"} or {"vote": "down"}
Get average rating for a creation.
// Response:
{"success": true, "data": {"creation_id": 12345, "average": 4.2, "count": 15}}
Rate a creation (1-5). Updates existing rating if already rated.
curl -X POST https://generor.com/api/v1/creations/12345/rating \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"score": 5}'
Oomph is the virtual currency used for AI generations.
Get your current oomph balance.
curl https://generor.com/api/v1/oomph/balance \
-H "Authorization: Bearer gnr_live_..."
// Response:
{
"success": true,
"data": {
"total": 1250,
"paid": 1000,
"free": 200,
"earned": 50,
"max": 250
}
}
Get oomph transaction history.
curl "https://generor.com/api/v1/oomph/transactions?type=spend&page=1" \
-H "Authorization: Bearer gnr_live_..."
Query params: type (spend, purchase, daily_bonus, weekly_bonus, signup_bonus, refund, gift_sent, gift_received), page, per_page
Get public creations from users you follow.
curl "https://generor.com/api/v1/feed?generator=image&page=1" \
-H "Authorization: Bearer gnr_live_..."
Query params: generator (filter by slug), page, per_page
Manage your own API keys programmatically. All endpoints require authentication.
List your API keys (shows prefix, not full key).
Create a new API key. The full key is shown only once in the response.
curl -X POST https://generor.com/api/v1/api-keys \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "My App", "scopes": ["read", "generate"]}'
// Response (201):
{
"success": true,
"data": {
"key_id": 1,
"api_key": "gnr_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0",
"prefix": "gnr_live_a1b2c3d4",
"name": "My App",
"scopes": ["read", "generate"],
"message": "Save this API key now. It will not be shown again."
}
}
Maximum 10 active keys per account.
Revoke an API key (deactivates it immediately).
| Code | HTTP Status | Description |
|---|---|---|
UNAUTHORIZED | 401 | Missing or invalid API key |
FORBIDDEN | 403 | Valid key but insufficient permissions or scope |
NOT_FOUND | 404 | Resource does not exist |
METHOD_NOT_ALLOWED | 405 | HTTP method not supported for this endpoint |
VALIDATION_ERROR | 400 | Invalid input parameters |
INSUFFICIENT_OOMPH | 402 | Not enough oomph for generation |
RATE_LIMIT_EXCEEDED | 429 | Too many requests, check Retry-After header |
SERVER_ERROR | 500 | Internal server error |