API dokumentacija
PhotoFig API
Naudodami API raktus siųskite prekių nuotraukas redaguoti, įkelkite pradinius failus, tikrinkite užduočių būseną ir gaukite „webhook“ pranešimus.
Reikia programiškai nuskaitomos schemos? Atsisiųsti OpenAPI JSON failą.
Šiame puslapyje
export PHOTOFIG_API_KEY="pf_live_..."
JOB_ID=$(curl -s -X POST https://api.photofig.com/v1/tools/ai-shadows/edit \
-H "Authorization: Bearer $PHOTOFIG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://cdn.example.com/product.png",
"parameters": { "seed": 128742 }
}' | jq -r '.id')
curl -L "$(curl -s -H "Authorization: Bearer $PHOTOFIG_API_KEY" \
"https://api.photofig.com/v1/jobs/$JOB_ID" \
| tee /dev/stderr \
| jq -r '.resultUrl')" \
-o ./photofig-result.pngAutentifikavimas
API raktus galite sukurti skiltyje Nustatymai. Visas slaptasis raktas parodomas tik vieną kartą – iškart jį sukūrus.
Authorization: Bearer pf_live_...Paskyra
/v1/accountŠiuo maršrutu galite patikrinti API raktą ir sužinoti plano limitus, likusius kreditus bei prieinamus įrankius.
{
"accountId": "uuid",
"workspaceId": "uuid",
"plan": "pro",
"apiEnabled": true,
"credits": {
"remaining": 1200,
"periodEndsAt": "2026-08-01T00:00:00Z"
},
"limits": {
"maxFileSizeBytes": 25000000,
"rateLimitPerHour": 500,
"concurrentJobs": 5,
"maxApiKeys": 3
},
"tools": ["mask", "ai-bg", "ai-shadows"]
}Įrankiai
/v1/tools/v1/tools/{tool_id}Kiekvienam įrankiui galite pateikti įprastą prekės nuotrauką per „imageUrl“, „uploadSessionId“ arba multipart įkėlimą. Atskirai kviesti „mask“ reikia tik tada, kai norite gauti iškirptą produktą skaidriame fone.
mask
Pašalina foną ir grąžina PNG failą su iškirptu produktu skaidriame fone. Naudokite, kai produktą norite komponuoti patys arba naudoti savo prekybos platformoje.
ai-shadows
Prideda tikrovišką produkto šešėlį ir grąžina vaizdą, paruoštą dėti ant švaraus fono. Geriausiai veikia, kai produktas aiškiai matomas ir jo neužgožia margas fonas.
ai-bg
Sukuria naują produkto foną pagal trumpą scenos aprašymą, pvz., šiltas ąžuolinis stalviršis arba minimalistinė balta studija. Pateikite prekės nuotrauką tiesiogiai; atskiro fono pašalinimo veiksmo atlikti nereikia.
Įkelkite ir redaguokite vienu veiksmu
/v1/tools/{tool_id}/editTai paprasčiausias būdas. Jei pradinė nuotrauka jau pasiekiama internete, pateikite „imageUrl“. Vietinį failą galite išsiųsti multipart lauke „image“. Šis būdas tinkamiausias, kai vienai nuotraukai norite pritaikyti vieną įrankį.
Rinkitės šį būdą vienai nuotraukai ir vienam redagavimui, kai pradinio failo vėliau naudoti nebereikės.
curl -X POST https://api.photofig.com/v1/tools/ai-shadows/edit \
-H "Authorization: Bearer pf_live_..." \
-F "[email protected]" \
-F "seed=128742"Pirmiausia įkelkite, vėliau redaguokite
/v1/uploadsĮkėlimo sesiją kurkite didesniam vietiniam failui arba kai tai pačiai nuotraukai norite pritaikyti kelis įrankius. Nuotraukos duomenys į saugyklą siunčiami tik kartą, o vėlesnėse redagavimo užklausose pakanka perduoti gautą „uploadSessionId“.
Rinkitės šį būdą didesniems failams arba kai tą pačią nuotrauką naudos keli įrankiai ar pakartotinės užklausos.
UPLOAD_JSON=$(curl -s -X POST https://api.photofig.com/v1/uploads \
-H "Authorization: Bearer pf_live_..." \
-H "Content-Type: application/json" \
-d '{
"contentType": "image/jpeg",
"filename": "product.jpg",
"sizeBytes": 1842031
}')
curl -X PUT "$(echo "$UPLOAD_JSON" | jq -r '.uploadUrl')" \
-H "Content-Type: image/jpeg" \
--data-binary @product.jpg
curl -X POST https://api.photofig.com/v1/tools/ai-shadows/edit \
-H "Authorization: Bearer pf_live_..." \
-H "Content-Type: application/json" \
-d "{
\"uploadSessionId\": \"$(echo "$UPLOAD_JSON" | jq -r '.uploadSessionId')\",
\"parameters\": { \"seed\": 128742 }
}"Kurti redagavimus
/v1/tools/{tool_id}/editNuotrauką pateikite per „imageUrl“, „uploadSessionId“ arba multipart lauką „image“. Atsakyme gausite užduoties ID, pagal kurį galėsite tikrinti būseną, atšaukti ar ištrinti užduotį ir susieti „webhook“ pranešimus.
DI fonas
DI fono API metodas geriausiai veikia gavęs trumpą scenos aprašymą: keliais žodžiais nurodykite aplinką, paviršių, apšvietimą ar nuotaiką. Pavyzdžiui: šiltas ąžuolinis stalviršis,minimalistinė balta studija, and švelni ryto šviesa virtuvėje.
curl -X POST https://api.photofig.com/v1/tools/ai-bg/edit \
-H "Authorization: Bearer pf_live_..." \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://cdn.example.com/product.png",
"parameters": {
"theme": "warm oak tabletop",
"seed": 128742
}
}'Product Shadow
curl -X POST https://api.photofig.com/v1/tools/ai-shadows/edit \
-H "Authorization: Bearer pf_live_..." \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://cdn.example.com/product.png",
"parameters": { "seed": 128742 }
}'Kaukė
curl -X POST https://api.photofig.com/v1/tools/mask/edit \
-H "Authorization: Bearer pf_live_..." \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://cdn.example.com/product.png",
"parameters": { "mode": "standard" }
}'Užduotys
/v1/jobs/v1/jobs/{id}/v1/jobs/{id}/cancel/v1/jobs/{id}Peržiūrėkite, tikrinkite, atšaukite arba ištrinkite API užduotis. Jos nerodomos programos skiltyse „Įkėlimai“ ar „Dizainai“, tačiau ištrynus užduotį pašalinami ir jai priklausantys API failai.
GET /v1/jobs/{id} grąžina užduoties būseną JSON formatu. Kai apdorojimas bus baigtas, rezultatą atsisiųskite iš „resultUrl“. Periodiškai tikrinti būseną paprasčiausia, tačiau „webhook“ pranešimai tinkamesni, kai jūsų serveris apie rezultatą turi sužinoti automatiškai.
{
"id": "api_edit_uuid",
"tool": "ai-shadows",
"status": "completed",
"createdAt": "2026-07-15T10:15:00Z",
"startedAt": "2026-07-15T10:15:04Z",
"finishedAt": "2026-07-15T10:15:23Z",
"statusUrl": "https://api.photofig.com/v1/jobs/api_edit_uuid",
"resultUrl": "https://storage.example.com/signed-result-url",
"thumbnailUrl": "https://storage.example.com/signed-thumbnail-url",
"expiresAt": "2026-07-15T11:15:23Z",
"error": null
}„Webhook“ pranešimai
„Webhook“ pranešimais PhotoFig informuoja jūsų serverį apie užduoties būseną. Užregistruokite HTTPS adresą, ir PhotoFig išsiųs užklausą, kai API užduotis bus baigta, nepavyks arba bus atšaukta. Taip nereikės nuolat tikrinti GET /v1/jobs/{id}.
/v1/webhooks/v1/webhooks/v1/webhooks/{webhook_id}/v1/webhooks/{webhook_id}/v1/webhooks/{webhook_id}/testPalaikomi įvykiai: webhook.test,job.completed,job.failed, ir job.cancelled. Pranešime pateikiamas tas pats užduoties ID, kurį gavote kurdami redagavimą.
{
"event": "job.completed",
"eventId": "uuid",
"createdAt": "2026-07-15T10:15:23Z",
"data": {
"id": "api_edit_uuid",
"tool": "ai-shadows",
"status": "completed",
"resultUrl": "https://storage.example.com/signed-result-url",
"thumbnailUrl": "https://storage.example.com/signed-thumbnail-url"
}
}Klaidos
Klaidos atsakyme pateikiamas nekintantis programinis kodas ir žmogui suprantamas pranešimas. Programos logikoje sprendimus priimkite pagal kodą.
{
"code": "invalid_request",
"message": "imageUrl or uploadSessionId is required"
}Rezultatų saugojimo trukmė
Baigtas API užduotis rasite per GET /v1/jobs ir GET /v1/jobs/{id}. Kai rezultatas paruoštas, būsenos atsakyme pateikiamos pasirašytos „resultUrl“ ir „thumbnailUrl“ nuorodos.
API failai saugomi atskirai nuo programoje įkeltų nuotraukų ir dizainų, todėl bibliotekoje jų nematysite.
API užduočių įrašai ir joms priklausantys įvesties, rezultatų bei miniatiūrų failai saugomi 1 valandą po to, kai užduotis baigta, nepavyko arba buvo atšaukta. Lauke „expiresAt“ nurodytas numatytas užbaigtų užduočių išvalymo laikas.
Siųskite DELETE /v1/jobs/{id} užklausą, kai atsisiųsite rezultatus, kurių jau nebereikia. Jei įmanoma, taip bus atšauktos nebaigtos užduotys ir prieš automatinį išvalymą ištrintas užduoties įrašas bei su juo susiję API failai.