Pro API: cloud rendering aansturen vanuit je eigen server

Alles wat de app online doet (afbeeldingen, retouchering, video's, getrainde personages) is ook bereikbaar via HTTP, tegen dezelfde prijs in credits, zonder dat de app open hoeft. Je stuurt het aan vanuit je eigen server, je scripts of je agent, met de credits van je licentie.

Beschikbaar met de Pro-licentie. De sleutel wordt aangemaakt in de app, via Instellingen > API.

Geen ontwikkelaar? Hetzelfde is bereikbaar vanuit een AI-agent zonder één regel te schrijven: zie MCP.

Basishttps://api.tendre.ai/pro/v1
Authenticatieheader Authorization: Bearer tk_pro_...
FormaatJSON in en uit, PNG voor afbeeldingen, MP4 voor video's
Machine-beschrijvingopenapi.json (OpenAPI 3.0), om een client te genereren
PrijsoverzichtGET /pro/v1/pricing

Een sleutel aanmaken

In de app, met een Pro-licentie: Instellingen > API > Nieuwe sleutel. Geef hem een naam (bijvoorbeeld "productieserver"), kies de rechten en stel eventueel een dagelijks creditlimiet en een vervaldatum in.

De sleutel wordt slechts één keer getoond. Kopieer hem meteen. Een verloren sleutel wordt vervangen, nooit teruggehaald.

  • Maximaal drie actieve sleutels per licentie. Genoeg om er één te roteren zonder de dienst te onderbreken: maak de nieuwe aan, installeer hem, trek de oude in.
  • Een sleutel is geen seat. Je computer en je telefoon blijven gewoon bruikbaar naast de sleutel.
  • Een sleutel staat gelijk aan je credits. Zet hem nooit in een webpagina, een gedistribueerde app of een openbare repository. Geef hem een dagelijks creditlimiet zodra hij op een server staat.

Wat een sleutel mag doen

RechtWat het toestaat
LezenAltijd toegekend: renderstatus, bestandsdownload, saldo, personagelijst
AfbeeldingenAfbeeldingen indienen en annuleren (generatie, retouchering, variatie), personages aanmaken
Video'sVideo's indienen en annuleren, Multi-Ref Video en Face swap inbegrepen

Een aanroep buiten de rechten van de sleutel geeft 403 missing_scope als antwoord, met het ontbrekende recht in scope.

De render-levenscyclus

Altijd dezelfde drie stappen.

  1. Indienen. POST /images of POST /videos. Onmiddellijk antwoord met een jobId en de kosten.
  2. Pollen. GET /images/{jobId} of GET /videos/{jobId}, elke 3 seconden, totdat status completed of failed is.
  3. Downloaden. GET /images/{jobId}/file of GET /videos/{jobId}/file, zodra de status completed is. Het bestand wordt niet bewaard, dus download het zonder te wachten.

Ruwe tijdsindicaties: 10 tot 40 seconden voor een afbeelding, 1 tot 5 minuten voor een video, langer wanneer de engine koud start.

Je eerste aanroep

bash
KEY=tk_pro_...
B=https://api.tendre.ai/pro/v1
curl -s $B/credits -H "Authorization: Bearer $KEY"
json
{ "balance": 1830, "licenseId": "lic_...", "key": "k_1a2b3c4d",
  "limits": { "concurrent": 2, "perMinute": 60, "perDay": 0 }, "running": 0 }

Als dit antwoord geeft, werkt al het andere ook.

Een volledige render, op drie manieren

bash

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.png

PowerShell

powershell
$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.mp4

Python

python
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"))

Wat nu?

  • Afbeeldingen: generatie, de drie retoucheringsmodi, personages.
  • Video's: formaten, het prijsoverzicht, begin- en eindframes, Multi-Ref Video, Face swap.
  • Personages: één foto, zeven weergaven, te casten in Multi-Ref Video.
  • Account: saldo, limieten, getrainde personages, activiteit.
  • Limieten en fouten: limieten, alle foutcodes, goede praktijken.
  • MCP (agents): sluit Claude, ChatGPT of Cursor direct aan, zonder code.

Wat er nog niet in zit

In de geplande volgorde: personagetraining vanuit je eigen foto's, stemmen, upscaling naar 2K, een vaste seed om een render te reproduceren, en webhooks zodat je kunt stoppen met pollen.

Training is het enige dat een toelichting verdient: je kunt niet trainen via de API, maar je kunt een .safetensors die je al hebt uploaden en er meteen mee renderen. Zie Account, credits en personages.

De API is voorzien van versiebeheer. Alles wat hier beschreven staat blijft geldig onder /pro/v1: toevoegingen breken nooit wat al bestaat, en een breaking change zou verschijnen als /pro/v2.

Windows · Mac · Cloud of lokaal

Genereer privé. Vanavond.

Download tendre.AI gratis en genereer zonder limieten, privé, op je eigen GPU.

OS Windows 10/11GPU NVIDIA 8GB+VRAM 12GB aanbevolenSchijf 20GB

Mac: Apple silicon (M1 of later), macOS 13 of later. Intel Macs worden niet ondersteund.

Voor lokale beeldgeneratie op Mac heb je een M4 met 24 GB geheugen nodig, of een M2 of M3 Pro, Max of Ultra met 24 GB. Daaronder draait alles online met credits. Retoucheren en video draaien voorlopig online op Mac.

Alles over tendre.AI voor Mac

Geen NVIDIA GPU? Begin 100% in de cloud: elke dag 5 gratis afbeeldingen en 1 gratis video. Een NVIDIA-kaart (8GB+) ontgrendelt onbeperkt lokaal genereren.