Pro API: styr cloud-rendering fra din egen server
Alt det appen gør online (billeder, retuschering, videoer, trænede karakterer) er også tilgængeligt via HTTP, til samme pris i kreditter, uden at appen behøver at være åben. Du styrer det fra din egen server, dine scripts eller din agent, ved hjælp af kreditterne på din licens.
Tilgængeligt med Pro-licensen. Nøglen oprettes i appen under Settings > API.
Ikke udvikler? Det samme er tilgængeligt fra en AI-agent uden at skrive en eneste linje: se MCP.
| Base | https://api.tendre.ai/pro/v1 |
| Autentificering | header Authorization: Bearer tk_pro_... |
| Format | JSON ind og ud, PNG til billeder, MP4 til videoer |
| Maskindokumentation | openapi.json (OpenAPI 3.0), til at generere en klient |
| Prisoversigt | GET /pro/v1/pricing |
Få en nøgle
I appen med en Pro-licens: Settings > API > New key. Giv den et navn (f.eks. "production server"), vælg dens tilladelser og eventuelt et dagligt kreditloft samt en udløbsdato.
Nøglen vises kun én gang. Kopiér den med det samme. En tabt nøgle erstattes, den kan aldrig gendannes.
- Højst tre aktive nøgler pr. licens. Nok til at rotere én uden at afbryde servicen: opret den nye, installer den, tilbagekald den gamle.
- En nøgle er ikke en plads. Din computer og din telefon kan stadig bruges ved siden af den.
- En nøgle er dine kreditter værd. Læg aldrig en nøgle på en webside, i en distribueret app eller i et offentligt repository. Giv den et dagligt kreditloft, så snart den lever på en server.
Hvad en nøgle må gøre
| Tilladelse | Hvad den tillader |
|---|---|
| Read | Altid tildelt: render-status, fildownload, saldo, karakterliste |
| Images | Indsend og annuller billeder (generering, retuschering, variation), opret karakterer |
| Videos | Indsend og annuller videoer, Multi-Ref Video og Face swap inkluderet |
Et kald ud over nøglens tilladelser besvares med 403 missing_scope, med den manglende
tilladelse i scope.
Render-livscyklussen
Altid de samme tre trin.
- Indsend.
POST /imagesellerPOST /videos. Øjeblikkeligt svar med etjobIdog prisen. - Poll.
GET /images/{jobId}ellerGET /videos/{jobId}, hvert 3. sekund, indtilstatusercompletedellerfailed. - Download.
GET /images/{jobId}/fileellerGET /videos/{jobId}/file, så snart status ercompleted. Filen gemmes ikke, så download den uden at vente.
Omtrentlige tider: 10 til 40 sekunder for et billede, 1 til 5 minutter for en video, længere når motoren starter koldt.
Dit første kald
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, virker alt det andet også.
En komplet render, tre måder
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"))Hvad er det næste
- Billeder: generering, de tre retuscheringstilstande, karakterer.
- Videoer: formater, prisoversigt, start- og slutbilleder, Multi-Ref Video, Face swap.
- Karakterer: ét foto, syv vinkler, til brug i Multi-Ref Video.
- Konto: saldo, lofter, trænede karakterer, aktivitet.
- Grænser og fejl: lofter, alle fejlkoder, god praksis.
- MCP (agenter): tilslut Claude, ChatGPT eller Cursor direkte, uden kode.
Hvad der endnu ikke er der
I den planlagte rækkefølge: karaktertræning fra dine egne fotos, stemmer, opskalering til 2K, et fast seed til at genskabe en render, og webhooks så du kan holde op med at polle.
Træning er det, der er værd at nævne: du kan ikke træne via API'en, men du kan uploade en
.safetensors du allerede har og rendere med den med det samme. Se
Konto, kreditter og karakterer.
API'en er versioneret. Alt beskrevet her forbliver gyldigt under /pro/v1: tilføjelser bryder aldrig
det eksisterende, og en breaking change ville blive leveret som /pro/v2.