generor

Generor API-dokumentasjon

Lag med 93+ AI-generatorer — tekst, bilde, video, lyd og mer.

Base-URL v1
https://generor.com/api/v1

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:

OmfangTillater
readGET-forespørsler til alle endepunkter
writePOST-, PATCH-, DELETE-operasjoner (kommentarer, vurderinger, profiloppdateringer osv.)
generateInnholdsgenerering (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 minuttPer timePer dag
free305005,000
basic602,00020,000
pro1205,00050,000
enterprise30020,000200,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:

ParameterStandardBeskrivelse
page1Sidenummer (1-basert)
per_page20Elementer per side (maks 100)
sortnewestSorteringsrekkefø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.seconds inn 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.

Integrasjonsledetekst (lim inn i AI-assistenten din når du kobler opp Generor):
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:

FeltTypePåkrevdBeskrivelse
promptstringJaGenereringsledeteksten (maks 10 000 tegn)
model_idintegerJaAI-modell-ID. Tekst: 1-9999, Bilde: 10001-19999, Video: 20001-29999. Se Modeller.
privacy_modeintegerNei0 = public (default), 1 = private, 2 = team, 3 = unlisted.
team_idintegerNeiOpprett under et team
countintegerNeiAntall elementer (1-10, standard 1)
languagestringNeiSpråkkode for tekstgenerering (f.eks. "en-US", "nb-NO"). Standard: "auto"
temperaturefloatNeiLLM-kreativitet (kun tekstmodeller, 0.0-2.0)
preferencestring/intNeiGeneratorspesifikk preferanse (f.eks. vitsetype, diktstil)
preference_twostring/intNeiGeneratorspesifikk sekundærpreferanse
aspect_ratioint or stringNeiGodtar 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_urlstringNeiReferansebilde-URL for bilde-til-bilde, stiloverføring eller bilde-til-video (I2V).
secondsintegerNeiVideovarighet 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_audiobooleanNeiVeksling for innebygd lyd for Veo 3.1 og Seedance 1.5 Pro (video). Andre videomodeller har lydatferd innebygd og ignorerer dette flagget.
ending_frame_urlstringNeiSluttbilde-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_imagesarray<string>NeiOpptil 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_videosarray<string>NeiOpptil 3 referansevideo-URL-er. Brukes av Seedance 2.0 (Replicate) og Dreamina Seedance 2.0 (BytePlus direct) for bevegelses-/stilkonsistens.
reference_audiostringNeiReferanselyd-URL for musikk-/stemmekontinuitet. Brukes for øyeblikket av Dreamina Seedance 2.0 (modell 20060-20062, BytePlus direkte).
video_urlstringNeiKilde-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.
parametersobjectNeiGeneratorspesifikke 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"
    }
  }'
Hvorfor et oppdagelsesendepunkt? Plattformen har 100+ generatorer, hver med sine egne innstillinger. I stedet for å fryse dem inn i API-spesifikasjonen, henter du det aktive skjemaet for generatoren du bygger mot, og API-et speiler nøyaktig nedtrekksmenyene du ser på den offentlige siden.

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:

FeltTypeBeskrivelse
user_textstringFritt tilleggstekst (f.eks. kildeinnhold som skal oppsummeres / transformeres)
user_text_twostringSekundær tilleggstekst (brukes av generatorer med to tekstinndata)
avoid_duplicatesbooleanVri modellen mot nyskapende utdata på tvers av en batch
thinking_modestringFor modeller med resonneringsevne: off, on eller high
story_contextstringKildehistorie sendt til story, story-part og storyboard for merkevaretilpasset scenebeskrivelse
character_context / character_name / character_idstring / intKarakterkontinuitet for storyboards, historiedeler og oppfølgingskreasjoner
support_forintegerForeldre-kreasjons-ID – kobler denne genereringen som en underordnet / tilhørende kreasjon
modestringGeneratorspesifikk modusbryter (f.eks. spillfase)
model_speechintegerTalemodell som skal pares med tekstutdataen (brukes til fortalte horoskoper, podkaster osv.)
item_index / total_countintegerHint for sekvensiell generering (brukes når elementer genereres i rekkefølge, f.eks. løsningstrinn)
translation_of / source_languageinteger / stringOversett 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 som balance_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 /estimate ville ha forutsagt). Inkludert for åpenhet og avviksovervåking. Avviker ofte fra credit_cost for video / per-sekund / per-tegn-prising der det reelle beløpet beregnes inne i leverandørkallet.
  • time_taken_seconds — faktisk klokketid. Sammenlign med time_estimate.seconds fra /estimate for å validere prediksjonen for historisk tid.
Merk: Tekstkreasjoner returnerer generatorspesifikke felter (f.eks. 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}'
FeltVerdier
privacy_mode0 (public), 1 (private), 3 (unlisted)
licenseUtdatert — 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 via seconds. Ustøttede verdier justeres på serversiden og rapporteres under adjustments.seconds.
  • qualities — for å bytte oppløsning, slå opp model_id for oppløsningen du ønsker og send den som din model_id. (Oppløsninger er søskenmodeller, ikke en kjøretidsparameter.)
  • supports_audio — når true, kan du sende "generate_audio": true på /generate. Når false, ignoreres flagget.
  • supports_end_frame — når true, kan du parre image_url (startbilde) med ending_frame_url for sømløse overganger eller løkker.
  • aspect_ratios — send id (heltall) eller ratio (streng) under aspect_ratio-feltet på /generate. Begge formene fungerer.
Modell-ID-områder: tekst (1-9999), bilde (10001-19999), video (20001-29999), tale (30001-39999), musikk (40001-49999), lydeffekter (50001-59999).

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

KodeHTTP-statusBeskrivelse
UNAUTHORIZED401Manglende eller ugyldig API-nøkkel
FORBIDDEN403Gyldig nøkkel, men utilstrekkelige tillatelser eller omfang
NOT_FOUND404Ressursen finnes ikke
METHOD_NOT_ALLOWED405HTTP-metoden støttes ikke for dette endepunktet
VALIDATION_ERROR400Ugyldige inndataparametere
INSUFFICIENT_CREDITS402Ikke nok kreditter for generering
RATE_LIMIT_EXCEEDED429For mange forespørsler, sjekk Retry-After-headeren
SERVER_ERROR500Intern 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.