Pro API: kjør skyrendering fra din egen server
Alt appen gjør på nett (bilder, retusjering, videoer, trente karakterer) er også tilgjengelig over HTTP, til samme pris i kreditter, uten at appen trenger å være åpen. Du styrer det fra din egen server, dine skript eller din agent, med kredittene på lisensen din.
Tilgjengelig med Pro-lisensen. Nøkkelen opprettes i appen, under Settings > API.
Ikke utvikler? Det samme er tilgjengelig fra en AI-agent uten å skrive en eneste linje: se MCP.
| Base | https://api.tendre.ai/pro/v1 |
| Autentisering | header Authorization: Bearer tk_pro_... |
| Format | JSON inn og ut, PNG for bilder, MP4 for videoer |
| Maskinkonfigurasjoner | openapi.json (OpenAPI 3.0), for å generere en klient |
| Prisliste | GET /pro/v1/pricing |
Skaff deg en nøkkel
I appen, med en Pro-lisens: Settings > API > New key. Gi den et navn (f.eks. "produksjonsserver"), velg tillatelser og, om du vil, en daglig kredittgrense og en utløpsdato.
Nøkkelen vises bare én gang. Kopier den med en gang. En tapt nøkkel erstattes, den kan aldri gjenopprettes.
- Maks tre aktive nøkler per lisens. Nok til å rotere én uten å avbryte tjenesten: opprett den nye, installer den, tilbakekall den gamle.
- En nøkkel er ikke en brukerenhet. Datamaskinen og telefonen din kan fortsatt brukes ved siden av den.
- En nøkkel er like verdifull som kredittene dine. Legg den aldri i en nettside, en distribuert app eller et offentlig repositorium. Sett en daglig kredittgrense på den så snart den lever på en server.
Hva en nøkkel har lov til å gjøre
| Tillatelse | Hva den tillater |
|---|---|
| Read | Alltid innvilget: renderstatus, filnedlasting, saldo, karakterliste |
| Images | Send inn og avbryt bilder (generering, retusjering, variasjon), opprett karakterer |
| Videos | Send inn og avbryt videoer, Multi-Ref Video og Face swap inkludert |
Et kall utenfor nøkkelens tillatelser svarer med 403 missing_scope, med den manglende
tillatelsen i scope.
Render-livssyklusen
Alltid de samme tre stegene.
- Send inn.
POST /imagesellerPOST /videos. Umiddelbart svar med enjobIdog kostnaden. - Poll.
GET /images/{jobId}ellerGET /videos/{jobId}, hvert 3. sekund, inntilstatusercompletedellerfailed. - Last ned.
GET /images/{jobId}/fileellerGET /videos/{jobId}/file, så snart statusen ercompleted. Filen lagres ikke, så last den ned uten å vente.
Omtrentlige tider: 10 til 40 sekunder for et bilde, 1 til 5 minutter for en video, lenger når motoren starter kaldt.
Ditt første kall
KEY=tk_pro_...
B=https://api.tendre.ai/pro/v1
curl -s $B/credits -H "Authorization: Bearer $KEY"{ "balance": 1830, "licenseId": "lic_...", "key": "k_1a2b3c4d",
"limits": { "concurrent": 2, "perMinute": 60, "perDay": 0 }, "running": 0 }Hvis det svarer, fungerer alt det andre også.
En komplett render, på tre måter
bash
KEY=tk_pro_...
B=https://api.tendre.ai/pro/v1
JOB=$(curl -s $B/images -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"prompt":"a lighthouse at dawn, photorealistic","width":1216,"height":832}' | jq -r .jobId)
until curl -s $B/images/$JOB -H "Authorization: Bearer $KEY" | grep -q '"completed"'; do sleep 3; done
curl -s $B/images/$JOB/file -H "Authorization: Bearer $KEY" -o lighthouse.pngPowerShell
$H = @{ Authorization = "Bearer tk_pro_..." }
$B = "https://api.tendre.ai/pro/v1"
$job = Invoke-RestMethod -Uri "$B/videos" -Method Post -Headers $H -ContentType "application/json" `
-Body '{"prompt":"waves on a beach at sunset, gentle wind","width":1080,"height":1920,"audio":true}'
do { Start-Sleep 5; $s = Invoke-RestMethod -Uri "$B/videos/$($job.jobId)" -Headers $H } while ($s.status -eq "pending")
Invoke-WebRequest -Uri "https://api.tendre.ai$($s.file_url)" -Headers $H -OutFile beach.mp4Python
import time, requests
KEY, B = "tk_pro_...", "https://api.tendre.ai/pro/v1"
H = {"Authorization": f"Bearer {KEY}"}
job = requests.post(f"{B}/videos", headers=H, json={"prompt": "waves on a beach at sunset, gentle wind", "audio": True}).json()
while (s := requests.get(f"{B}/videos/{job['jobId']}", headers=H).json())["status"] == "pending":
time.sleep(3)
if s["status"] == "completed":
open("beach.mp4", "wb").write(requests.get("https://api.tendre.ai" + s["file_url"], headers=H).content)
else:
print("failed:", s.get("detail"))Hva du kan gjøre videre
- Bilder: generering, de tre retusjeringsmodusene, karakterer.
- Videoer: formater, prislisten, start- og sluttrammer, Multi-Ref Video, Face swap.
- Karakterer: ett foto, sju vinkler, for å bruke i Multi-Ref Video.
- Konto: saldo, grenser, trente karakterer, aktivitet.
- Grenser og feil: grenser, alle feilkoder, god praksis.
- MCP (agenter): koble til Claude, ChatGPT eller Cursor direkte, uten kode.
Det som ikke finnes ennå
I planlagt rekkefølge: karaktertrening fra dine egne bilder, stemmer, oppskalering til 2K, et fast seed for å reprodusere en render, og webhooks slik at du kan slutte å polle.
Trening er det som er verdt å nevne: du kan ikke trene via API-et, men du kan laste opp en
.safetensors du allerede har og rendre med den med en gang. Se
Konto, kreditter og karakterer.
API-et er versjonert. Alt som er beskrevet her forblir gyldig under /pro/v1: tillegg vil aldri
ødelegge det som finnes, og en bryterendring ville bli levert som /pro/v2.