Generor API-dokumentasjon
Lag med 93+ AI-generatorer — tekst, bilde, video, lyd og mer.
Et enhetlig REST API for å generere, bla i og administrere AI-innhold. Alle forespørsler bruker JSON. Autentiser med en Bearer-token.
Autentisering
Autentiser med et Bearer-token i Authorization-headeren:
curl https://generor.com/api/v1/users/me \
-H "Authorization: Bearer gnr_live_your_api_key_here"
API-nøkler starter med gnr_live_ etterfulgt av 40 hex-tegn. Opprett nøkler via API-nøkler-endepunkt eller kontoinnstillingene dine.
Noen endepunkter (bla i generatorer, offentlige kreasjoner, modeller) fungerer uten autentisering. Endepunkter merket med AUTH krever en gyldig API-nøkkel.
Omfang
API-nøkler kan avgrenses for å begrense tilgang:
| Omfang | Tillater |
|---|---|
read | GET-forespørsler til alle endepunkter |
write | POST-, PATCH-, DELETE-operasjoner (kommentarer, vurderinger, profiloppdateringer osv.) |
generate | Innholdsgenerering (koster kreditter) |
Nøkler uten angitte omfang har full tilgang.
Hastighetsgrenser
Grensene gjelder per API-nøkkel. Hvert svar inkluderer rategrense-headere:
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 28
X-RateLimit-Reset: 1708444860
X-RateLimit-Tier: free
| Nivå | Per minutt | Per time | Per dag |
|---|---|---|---|
| free | 30 | 500 | 5,000 |
| basic | 60 | 2,000 | 20,000 |
| pro | 120 | 5,000 | 50,000 |
| enterprise | 300 | 20,000 | 200,000 |
Uautentiserte forespørsler er begrenset til 15/minutt per IP. Ved hastighetsbegrensning får du et 429-svar med en Retry-After-header.
Responsformat
Alle svar bruker en konsistent JSON-konvolutt:
Vellykket
{
"success": true,
"data": { ... },
"meta": {
"page": 1,
"per_page": 20,
"total": 142,
"total_pages": 8,
"has_next": true,
"has_prev": false
}
}
Feil
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Creation not found",
"status": 404
}
}
Paginering
List-endepunkter støtter paginering via spørringsparametere:
| Parameter | Standard | Beskrivelse |
|---|---|---|
page | 1 | Sidenummer (1-basert) |
per_page | 20 | Elementer per side (maks 100) |
sort | newest | Sorteringsrekkefølge: newest, oldest |
Generatorer
GET /generators
List opp alle tilgjengelige generatorer.
curl https://generor.com/api/v1/generators
Forespørselsparametere: status (active, development, all)
Respons: Matrise av generatorer med slug, tittel, beskrivelse, ikon og lignende generatorer.
GET /generators/{slug}
Hent detaljert informasjon om en bestemt generator.
curl https://generor.com/api/v1/generators/image
POST /generators/{slug}/estimate
Forhåndsvis kredittkostnaden og forventet genereringstid før du kaller /generate. Samme body-struktur som /generate — men skrivebeskyttet: ingen kreditter belastes, ingen kreasjon lagres. Dette er nøyaktig samme tall som grensesnittet viser ved siden av Generer-knappen.
curl -X POST https://generor.com/api/v1/generators/horoscope/estimate \
-H "Content-Type: application/json" \
-d '{
"model_id": 37,
"count": 5,
"parameters": {
"zodiac-sign": "aries",
"horoscope-length": "long"
}
}'
Respons:
{
"success": true,
"data": {
"generator": "horoscope",
"model_id": 37,
"model_type": "text",
"model_name": "Gemini 3.5 Flash",
"credit_cost": {
"total": 15, // after bulk discount
"per_item": 3, // model base × length/quality multipliers
"count": 5,
"discount": 0, // credits saved
"discount_percent": 5 // % off applied (count% off, capped at 10%)
},
"time_estimate": {
"seconds": 50, // total wall-clock estimate
"per_item": 10,
"min_seconds": 8,
"max_seconds": 14,
"sample_count": 10, // recent generations averaged
"has_historical": true,
"source": "historical" // or "fallback" when sample_count < 3
},
"applied_parameters": { // what the API actually used (schema-filtered)
"zodiac-sign": "aries",
"horoscope-length": "long",
"model-text": "3",
"horoscope-count": "5"
}
}
}
Åpen for uautentiserte kall – priser/tider er offentlig informasjon og samsvarer med det den offentlige generatorsiden viser.
Justerte videovarigheter
Hvis du sender en seconds-verdi som ikke finnes i modellens supported_durations, runder API-et til nærmeste støttede verdi (uavgjort brytes nedover) og viser endringen i en adjustments-blokk. Kredittkostnaden og tidsestimatet i samme svar gjenspeiler den justerte verdien — det /generate faktisk vil gjøre — ikke den opprinnelige forespørselen.
{
"success": true,
"data": {
"credit_cost": { "total": 30, ... },
"time_estimate": { "seconds": 60, ... },
"adjustments": {
"seconds": {
"requested": 3,
"used": 5,
"supported": [5, 6, 7, 8, 10, 12, 15],
"reason": "snapped to nearest provider-supported duration"
}
}
}
}
Når du bør bruke det
- Forhåndskontroll av kostnad — bekreft at en bruker har råd til genereringen før du belaster.
- Fremdriftsgrensesnitt — mat
time_estimate.secondsinn i lastelinjen din slik at brukerne vet hvor lenge de må vente. - Parameterjustering — kall den når en bruker endrer en nedtrekksmeny; kostnaden oppdateres uten å forplikte seg til å generere.
Forhold til /generate — /estimate er et separat, valgfritt kall. /generate returnerer allerede den faktiske credit_cost den belastet + credits_remaining i etterkant, så hvis du er fornøyd med å betale uansett hva sanntidsprisen er, kan du hoppe over /estimate helt.
Use the Generor API at https://generor.com/api/v1.
Before calling POST /generators/{slug}/generate, call
POST /generators/{slug}/estimate with the same body to get back:
- credit_cost.total (credits the next generate call will charge)
- time_estimate.seconds (expected wall-clock duration)
Show both to the user, then call /generate when they confirm.
The /generate response includes the real credit_cost charged and
credits_remaining — use those to update the user's balance.
Discover each generator's tweakable fields with GET /generators/{slug}
and pass them under the `parameters` object on both /estimate and
/generate (keys match the dropdown IDs you see on the public page).
POST /generators/{slug}/generate AUTH
Generer innhold med AI. Dette er et synkront kall — svaret returneres når genereringen er fullført. Koster kreditter basert på valgt modell. Tekstgenerering tar vanligvis 5-30 sekunder, bildegenerering 10-60 sekunder, og videogenerering kan ta flere minutter.
# Text generation (joke with GPT 5 Nano)
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": 37
}'
# Image generation (Flux Schnell, square)
curl -X POST https://generor.com/api/v1/generators/image/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "A sunset over mountains",
"model_id": 10003,
"aspect_ratio": 1
}'
# Image description (vision — Qwen VL Max, image-only input, prompt is optional)
curl -X POST https://generor.com/api/v1/generators/vision/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"model_id": 34,
"image_url": "https://example.com/photo.jpg",
"preference": "detailed"
}'
# Video generation (Happy Horse 1.0 R2V — multi-reference, 6s, wide)
curl -X POST https://generor.com/api/v1/generators/video/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "The character from [Image1] walks through the forest from [Image2]",
"model_id": 20050,
"aspect_ratio": "16:9",
"seconds": 6,
"reference_images": [
"https://example.com/character.jpg",
"https://example.com/forest.jpg"
]
}'
# Video generation (Happy Horse Video Edit — natural-language edit of an existing clip)
curl -X POST https://generor.com/api/v1/generators/video/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "Replace the sky with a stormy sunset",
"model_id": 20051,
"video_url": "https://example.com/source.mp4",
"seconds": 5
}'
Forespørselskropp:
| Felt | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
prompt | string | Ja | Genereringsledeteksten (maks 10 000 tegn) |
model_id | integer | Ja | AI-modell-ID. Tekst: 1-9999, Bilde: 10001-19999, Video: 20001-29999. Se Modeller. |
privacy_mode | integer | Nei | 0 = public (default), 1 = private, 2 = team, 3 = unlisted. |
team_id | integer | Nei | Opprett under et team |
count | integer | Nei | Antall elementer (1-10, standard 1) |
language | string | Nei | Språkkode for tekstgenerering (f.eks. "en-US", "nb-NO"). Standard: "auto" |
temperature | float | Nei | LLM-kreativitet (kun tekstmodeller, 0.0-2.0) |
preference | string/int | Nei | Generatorspesifikk preferanse (f.eks. vitsetype, diktstil) |
preference_two | string/int | Nei | Generatorspesifikk sekundærpreferanse |
aspect_ratio | int or string | Nei | Godtar numeriske ID-er eller forhold/navn-strenger. Bilde: 1 / "1:1" / "square", 2 / "3:4" / "vertical", 3 / "4:3" / "horizontal", 4 / "16:9" / "wide", 5 / "9:16" / "tall". Video: 1 / "16:9" / "wide", 2 / "9:16" / "tall". Tips: bruk forholdsstrenger som "16:9", så tilordner API-et riktig ID for modelltypen. |
image_url | string | Nei | Referansebilde-URL for bilde-til-bilde, stiloverføring eller bilde-til-video (I2V). |
seconds | integer | Nei | Videovarighet i sekunder (kun videomodeller). Hver leverandør godtar bare et begrenset sett — spør GET /models/video/{id} for supported_durations. Hvis du sender en verdi som ikke støttes, justerer API-et den til den nærmeste støttede og rapporterer justeringen i adjustments.seconds i svaret. |
generate_audio | boolean | Nei | Veksling for innebygd lyd for Veo 3.1 og Seedance 1.5 Pro (video). Andre videomodeller har lydatferd innebygd og ignorerer dette flagget. |
ending_frame_url | string | Nei | Sluttbilde-anker for modeller som støtter start+slutt-bildekontroll (Veo 3.1, Wan 2.6 I2V, Seedance Pro Lite, Kling v3). Kombiner med image_url for sømløse overganger eller løkker. |
reference_images | array<string> | Nei | Opptil 9 referansebilde-URL-er. Støttes av: Veo 3.1 (maks 3), Seedance 2.0 (maks 9), Happy Horse R2V (maks 9), Happy Horse Video Edit (maks 5). Rekkefølgen bevares og presenteres for modellen som [Image1] … [ImageN] når ledetekster refererer til dem. |
reference_videos | array<string> | Nei | Opptil 3 referansevideo-URL-er. Brukes av Seedance 2.0 (Replicate) og Dreamina Seedance 2.0 (BytePlus direct) for bevegelses-/stilkonsistens. |
reference_audio | string | Nei | Referanselyd-URL for musikk-/stemmekontinuitet. Brukes for øyeblikket av Dreamina Seedance 2.0 (modell 20060-20062, BytePlus direkte). |
video_url | string | Nei | Kilde-video-URL — påkrevd av Happy Horse Video Edit (modell 20051), og brukt av Dreamina Seedance 2.0 (20060-20062) for video-edit / video-extend-moduser. |
parameters | object | Nei | Generatorspesifikke felter — de samme nedtrekkslistene som frontend viser, indeksert etter sine DOM-ID-er. Se Generatorparametere nedenfor. Ukjente / ugyldige nøkler forkastes stille. |
Generatorparametere
Hver generators fullstendige sett med justerbare felt ligger i et skjema per generator (samme kilde som nedtrekkslistene på nettstedet og URL-forhåndsutfylling bruker). Send hvilke som helst av disse feltene i parameters-objektet i en genereringsforespørsel for å styre dem programmatisk.
Hent skjemaet for enhver generator på GET /generators/{slug} — parameters-matrisen i svaret lister opp hvert felt med dets id, type (enum, number eller model), options (eller min/max), default og cost_multipliers.
# 1) Discover the parameters for the horoscope generator
curl https://generor.com/api/v1/generators/horoscope
# 2) Pass them on the generate call
curl -X POST https://generor.com/api/v1/generators/horoscope/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "Aries weekly reading",
"model_id": 37,
"parameters": {
"zodiac-sign": "aries",
"horoscope-timeframe": "weekly",
"horoscope-tone": "mystical",
"horoscope-length": "long",
"horoscope-focus": "career"
}
}'
# Image example — every dropdown in the UI is a key here
curl -X POST https://generor.com/api/v1/generators/wallart/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "Calm mountain lake at dawn",
"model_id": 10003,
"parameters": {
"wallart-type": "framed-print",
"wallart-orientation": "landscape",
"image-aspect-ratio": "4"
}
}'
Ytterligere felt for tekstgenerering
For tekstgeneratorer (model_id 1-9999) videresendes disse feltene på toppnivå i kroppen til LLM-endepunktet når det er relevant:
| Felt | Type | Beskrivelse |
|---|---|---|
user_text | string | Fritt tilleggstekst (f.eks. kildeinnhold som skal oppsummeres / transformeres) |
user_text_two | string | Sekundær tilleggstekst (brukes av generatorer med to tekstinndata) |
avoid_duplicates | boolean | Vri modellen mot nyskapende utdata på tvers av en batch |
thinking_mode | string | For modeller med resonneringsevne: off, on eller high |
story_context | string | Kildehistorie sendt til story, story-part og storyboard for merkevaretilpasset scenebeskrivelse |
character_context / character_name / character_id | string / int | Karakterkontinuitet for storyboards, historiedeler og oppfølgingskreasjoner |
support_for | integer | Foreldre-kreasjons-ID – kobler denne genereringen som en underordnet / tilhørende kreasjon |
mode | string | Generatorspesifikk modusbryter (f.eks. spillfase) |
model_speech | integer | Talemodell som skal pares med tekstutdataen (brukes til fortalte horoskoper, podkaster osv.) |
item_index / total_count | integer | Hint for sekvensiell generering (brukes når elementer genereres i rekkefølge, f.eks. løsningstrinn) |
translation_of / source_language | integer / string | Oversett en eksisterende kreasjon i stedet for å generere fra bunnen av |
Respons (201 Created) — eksempel på tekstgenerator:
{
"success": true,
"data": {
"generator": "joke",
"model_id": 37,
"model_type": "text",
"model_name": "Gemini 3.5 Flash",
"creations": [
{
"creation_id": 6144,
"text": "Why do programmers prefer dark mode? Because light attracts bugs!",
"illustration_desc": "a minimalist bug icon on a dark background"
}
],
"credit_cost": 1,
"credit_cost_estimated": 1,
"credits_remaining": 36024,
"time_taken_seconds": 4.18
}
}
Respons (201 Created) — eksempel på bildegenerator:
{
"success": true,
"data": {
"generator": "image",
"model_id": 10003,
"model_type": "image",
"model_name": "black-forest-labs/flux-schnell",
"creations": [
{
"creation_id": 6147,
"image_url": "https://generor.com/users/2/img/image-6147.webp"
}
],
"credit_cost": 24,
"credit_cost_estimated": 6,
"credits_remaining": 35998,
"time_taken_seconds": 23.7
}
}
Justerte videovarigheter — hvis anroperens seconds ikke finnes i modellens supported_durations, justerer API-et til nærmeste støttede verdi før leverandøren anropes og legger til en adjustments.seconds-blokk i svaret med identisk form som den på /estimate. Dette hindrer leverandører i stille å bruke standardverdier for ustøttede verdier.
Slik fungerer kostnadsfeltene
credit_cost— det faktisk beløpet som trekkes, beregnet sombalance_before − balance_after. Dette er kilden til sannhet: bruk det til logging, fakturering og oppdatering av brukersaldoer.credit_cost_estimated— det forhåndsberegnede katalogestimatet (det samme tallet/estimateville ha forutsagt). Inkludert for åpenhet og avviksovervåking. Avviker ofte fracredit_costfor video / per-sekund / per-tegn-prising der det reelle beløpet beregnes inne i leverandørkallet.time_taken_seconds— faktisk klokketid. Sammenlign medtime_estimate.secondsfra/estimatefor å validere prediksjonen for historisk tid.
text, illustration_desc for vitser; dish_name, ingredients for oppskrifter). Bruk GET /creations/{id} for å hente fullstendige kreasjonsdata senere. Kreasjoner
GET /creations AUTH
List opp dine egne kreasjoner.
curl https://generor.com/api/v1/creations \
-H "Authorization: Bearer gnr_live_..."
Forespørselsparametere: generator (filtrer etter slug), page, per_page, sort
GET /creations/{id}
Hent en enkelt kreasjon med fullstendige detaljer, bilder og generatorspesifikke data.
curl https://generor.com/api/v1/creations/12345
Krever autentisering som eier av kreasjonen, eller medlemskap i teamet den er delt med.
Responsen inkluderer:
{
"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": 1,
"type": "img",
"license": 1,
"images": [
{
"url": "/users/42/img/image-12345.png",
"width": 1024,
"height": 1024
}
],
"generator_data": { ... }
}
}
GET /creations/{id}/status AUTH
Sjekk genereringsstatusen til en kreasjon (nyttig hvis du sporer genereringsoppføringer).
curl https://generor.com/api/v1/creations/12345/status \
-H "Authorization: Bearer gnr_live_..."
Statusverdier: pending, generating, completed, failed, cancelled
PATCH /creations/{id} AUTH
Oppdater en kreasjon du eier.
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}'
| Felt | Verdier |
|---|---|
privacy_mode | 0 (public), 1 (private), 3 (unlisted) |
license | Utdatert — akseptert for bakoverkompatibilitet, men ignorert. Skapere beholder alle rettigheter til sine kreasjoner; se /license. |
DELETE /creations/{id} AUTH
Slett en kreasjon du eier (myk sletting).
curl -X DELETE https://generor.com/api/v1/creations/12345 \
-H "Authorization: Bearer gnr_live_..."
Modeller
GET /models
List opp alle tilgjengelige AI-modeller gruppert etter type.
curl https://generor.com/api/v1/models
GET /models/{type}
List opp modeller for en bestemt type.
curl https://generor.com/api/v1/models/image
Gyldige typer: text, image, video, speech, music, soundeffect, upscale, vector, backgroundremoval
Respons per modell:
{
"id": 10001,
"name": "Flux 1.1 Pro",
"type": "image",
"provider": "replicate",
"description": "High-quality image generation...",
"credit_cost": 80,
"supports_img2img": true,
"supports_aspect_ratio": true
}
Videomodeller inkluder i tillegg hele leverandørkapabilitet-strukturen:
{
"id": 20061,
"name": "Dreamina Seedance 2.0 (720p)",
"type": "video",
"provider": "byteplus",
"credit_cost": 6,
// Duration constraints
"supported_durations": [5, 6, 7, 8, 10, 12, 15],
"default_duration": 8,
// Audio toggle
"supports_audio": true,
"audio_cost_multiplier": 1,
// End-frame anchoring (pass `ending_frame_url` on /generate)
"supports_end_frame": true,
// Resolution variants — same model at different qualities lives at
// different model_ids. Switch quality by picking the matching id.
"quality": "720p",
"default_quality": "720p",
"qualities": { "480p": 20060, "720p": 20061, "1080p": 20062 },
"group_slug": "dreamina-seedance-2-direct",
"group_name": "Dreamina Seedance 2.0",
// Aspect ratios accepted on /generate
"supports_aspect_ratio": true,
"aspect_ratios": [
{ "id": 1, "ratio": "16:9", "label": "Wide" },
{ "id": 2, "ratio": "9:16", "label": "Tall" }
]
}
Bildemodeller som varierer sideforhold inkluderer en tilsvarende aspect_ratios-matrise (bildesiden har 6 oppføringer: kvadratisk, vertikal, horisontal, bred, høy, pluss match_input_image for img2img-moduser).
Slik bruker du disse feltene
supported_durations— send hvilken som helst verdi her viaseconds. Ustøttede verdier justeres på serversiden og rapporteres underadjustments.seconds.qualities— for å bytte oppløsning, slå oppmodel_idfor oppløsningen du ønsker og send den som dinmodel_id. (Oppløsninger er søskenmodeller, ikke en kjøretidsparameter.)supports_audio— nårtrue, kan du sende"generate_audio": truepå/generate. Nårfalse, ignoreres flagget.supports_end_frame— nårtrue, kan du parreimage_url(startbilde) medending_frame_urlfor sømløse overganger eller løkker.aspect_ratios— sendid(heltall) ellerratio(streng) underaspect_ratio-feltet på/generate. Begge formene fungerer.
GET /models/{type}/{id}
Hent detaljer og priser for en bestemt modell.
curl https://generor.com/api/v1/models/image/10001
Brukere
GET /users/me AUTH
Hent profilen din, kredittsaldoen din og statistikken din.
curl https://generor.com/api/v1/users/me \
-H "Authorization: Bearer gnr_live_..."
Respons:
{
"success": true,
"data": {
"user_id": 42,
"username": "johndoe",
"email": "[email protected]",
"avatar": null,
"bio": "I make things with AI",
"website": "https://example.com",
"joined": "2025-01-15 10:30:00",
"credits": {
"total": 1250,
"paid": 1000,
"free": 200,
"earned": 50,
"max": 250
},
"creation_count": 347,
"follower_count": 12,
"following_count": 5,
"teams": [...]
}
}
PATCH /users/me AUTH
Oppdater profilen din.
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 /users/{username}
Hent en brukers offentlige profil.
curl https://generor.com/api/v1/users/johndoe
GET /users/{username}/followers
List opp en brukers følgere. Støtter paginering.
GET /users/{username}/following
List opp hvem en bruker følger. Støtter paginering.
POST /users/{username}/follow AUTH
Følg en bruker.
curl -X POST https://generor.com/api/v1/users/johndoe/follow \
-H "Authorization: Bearer gnr_live_..."
DELETE /users/{username}/follow AUTH
Slutt å følge en bruker.
GET /users/{username}/follow AUTH
Sjekk om du følger en bruker. Returnerer {"following": true/false}.
Team
Alle team-endepunkter krever autentisering.
GET /teams AUTH
List opp teamene dine.
POST /teams AUTH
Opprett et nytt 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 /teams/{id} AUTH
Hent teamdetaljer med medlemsliste.
DELETE /teams/{id} AUTH
Forlat et team.
POST /teams/{id}/members AUTH
Legg til et medlem etter brukernavn: {"username": "janedoe"}
DELETE /teams/{id}/members/{user_id} AUTH
Fjern et teammedlem (kun eier).
POST /teams/join/{invite_code} AUTH
Bli med i et lag via invitasjonskode.
POST /teams/{id}/invite AUTH
Generer invitasjonskode på nytt (kun eier).
GET /teams/{id}/creations AUTH
List opp teamets kreasjoner. Støtter paginering.
Kommentarer
GET /creations/{id}/comments
List opp kommentarer på en kreasjon. Støtter paginering.
curl https://generor.com/api/v1/creations/12345/comments
POST /creations/{id}/comments AUTH
Legg til en kommentar.
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 /comments/{id} AUTH
Slett din egen kommentar.
POST /comments/{id}/vote AUTH
Stem på en kommentar: {"vote": "up"} eller {"vote": "down"}
Vurderinger
GET /creations/{id}/rating
Hent gjennomsnittlig vurdering for en kreasjon.
// Response:
{"success": true, "data": {"creation_id": 12345, "average": 4.2, "count": 15}}
POST /creations/{id}/rating AUTH
Vurder en kreasjon (1-5). Oppdaterer eksisterende vurdering hvis den allerede er vurdert.
curl -X POST https://generor.com/api/v1/creations/12345/rating \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"score": 5}'
Kreditter
Kreditter er betalingssystemet som brukes til AI-genereringer, oppgitt i USD.
GET /credits/balance AUTH
Hent din nåværende kredittsaldo.
curl https://generor.com/api/v1/credits/balance \
-H "Authorization: Bearer gnr_live_..."
// Response:
{
"success": true,
"data": {
"total": 1250,
"paid": 1000,
"free": 200,
"earned": 50,
"max": 250
}
}
GET /credits/transactions AUTH
Hent transaksjonshistorikk for kreditter.
curl "https://generor.com/api/v1/credits/transactions?type=spend&page=1" \
-H "Authorization: Bearer gnr_live_..."
Forespørselsparametere: type (spend, purchase, daily_bonus, weekly_bonus, signup_bonus, refund, gift_sent, gift_received), page, per_page
API-nøkler
Administrer dine egne API-nøkler programmatisk. Alle endepunkter krever autentisering.
GET /api-keys AUTH
List opp API-nøklene dine (viser prefiks, ikke hele nøkkelen).
POST /api-keys AUTH
Opprett en ny API-nøkkel. Hele nøkkelen vises bare én gang i svaret.
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."
}
}
Maksimalt 10 aktive nøkler per konto.
DELETE /api-keys/{id} AUTH
Tilbakekall en API-nøkkel (deaktiverer den umiddelbart).
Feilkoder
| Kode | HTTP-status | Beskrivelse |
|---|---|---|
UNAUTHORIZED | 401 | Manglende eller ugyldig API-nøkkel |
FORBIDDEN | 403 | Gyldig nøkkel, men utilstrekkelige tillatelser eller omfang |
NOT_FOUND | 404 | Ressursen finnes ikke |
METHOD_NOT_ALLOWED | 405 | HTTP-metoden støttes ikke for dette endepunktet |
VALIDATION_ERROR | 400 | Ugyldige inndataparametere |
INSUFFICIENT_CREDITS | 402 | Ikke nok kreditter for generering |
RATE_LIMIT_EXCEEDED | 429 | For mange forespørsler, sjekk Retry-After-headeren |
SERVER_ERROR | 500 | Intern serverfeil |
MCP setup
Connect an AI assistant to Generor with the local PHP MCP server. It supports generator discovery, models, cost estimates, generation, credit balance, and your creations.
Install the MCP package dependencies with Composer in the mcp directory. Requires PHP 8.2 or newer with the cURL and fileinfo extensions.
cd mcp
composer install --no-dev
Add Generor to your MCP client configuration. Replace the path with the location of your local checkout and use your own API key from account settings.
{
"mcpServers": {
"generor": {
"command": "php",
"args": ["/absolute/path/to/generor/mcp/server.php"],
"env": {
"GENEROR_API_KEY": "YOUR_GENEROR_API_KEY"
}
}
}
}
Connect by URL
For MCP clients that support API-key headers, connect to the URL below and send your key in the Authorization header. Keep the trailing slash in the URL.
https://generor.com/mcp/
Authorization: Bearer YOUR_GENEROR_API_KEY
Hosted access uses API keys. Browser OAuth sign-in is not available yet. Keep your API key private; generation requires the generate scope and spends your account credits.
Estimate costs before generating. Long generations may take up to 16 minutes; configure your client timeout accordingly. After a timeout, check your creations before retrying because the generation may still complete and spend credits.
