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
GET /generators/{slug}/creations
Bla gjennom offentlige kreasjoner for en generator. Støtter paginering.
curl "https://generor.com/api/v1/generators/joke/creations?page=1&per_page=10"
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 = offentlig (standard), 1 = privat |
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/public
Bla gjennom alle offentlige kreasjoner på tvers av alle generatorer.
curl "https://generor.com/api/v1/creations/public?generator=image&page=1"
GET /creations/search
Søk i offentlige kreasjoner etter ledetekst.
curl "https://generor.com/api/v1/creations/search?q=sunset+mountain"
GET /creations/{id}
Hent en enkelt kreasjon med fullstendige detaljer, bilder og generatorspesifikke data.
curl https://generor.com/api/v1/creations/12345
Offentlige kreasjoner er tilgjengelige for alle. Private kreasjoner krever autentisering som eier.
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": 0,
"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 (offentlig), 1 (privat) |
license | 1 (Open GO-1.0), 2 (Exclusive GE-1.0) |
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": "john@example.com",
"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}/creations
List opp en brukers offentlige kreasjoner. Støtter paginering.
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
Strøm
GET /feed AUTH
Hent offentlige kreasjoner fra brukere du følger.
curl "https://generor.com/api/v1/feed?generator=image&page=1" \
-H "Authorization: Bearer gnr_live_..."
Forespørselsparametere: generator (filtrer etter slug), 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 |
