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

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.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 = offentlig (standard), 1 = privat
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/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}'
FeltVerdier
privacy_mode0 (offentlig), 1 (privat)
license1 (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 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/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": "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

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