Organization
Your tenant for projects, credits, preferences, branding and API access.
Använd sidan för att förstå AIXpose REST API. När du kontaktar oss kan vi diskutera API-avtal, integrationsomfång, autentisering, gränser och produktionskrav.
Architecture preview
Create projects, upload source photos, request enhancements or videos, then receive status updates and CDN-ready outputs when processing completes.
Create a project for the property or listing.
Upload source photos and request one or more generated variants.
Poll status or subscribe to signed webhook events.
Approve the best picture version and optionally generate a short video.
Publish the project or sync CDN-ready media into your product.
These are the main concepts to plan against when designing a CRM, portal, automation workflow or media pipeline integration.
Your tenant for projects, credits, preferences, branding and API access.
A listing, property or campaign that groups photos, generated assets and shared output defaults.
An original upload or generated derivative with status, public URL, version information and feedback.
A short property reel generated from approved pictures, scene context and optional audio direction.
The public generation recipe behind an enhancement: preset actions, custom prompts, quick actions or consistency goals.
An optional learning mode that can apply approved visual preferences automatically on future uploads.
Kartlägg byggblocken i integrationen: projekt samlar objektskontext, bilder och videor är genererade medier, kataloger driver UI-val, webhooks levererar jobbuppdateringar och krediter hjälper till med avstämning.
Create and manage listing-level workspaces for pictures, videos, defaults and review flows.
POST /v1/projects GET /v1/projects/{project_id} POST /v1/projects/{project_id}/publish Create pictures inside a project and request enhanced versions for staging, renovation, decluttering or exterior improvement.
POST /v1/projects/{project_id}/pictures POST /v1/pictures/{picture_id}/enhancements GET /v1/projects/{project_id}/pictures Generate short listing reels from approved media, scene context and optional voice or background direction.
POST /v1/videos GET /v1/videos/{video_id} GET /v1/videos?project_id=... Populate your UI controls with supported models, output formats, scene types and action groups.
GET /v1/catalog/models GET /v1/catalog/actions GET /v1/catalog/aspect-ratios Use reusable prompts and learned preferences without exposing internal generation pipelines.
GET /v1/agent PATCH /v1/agent GET /v1/quick-actions Track consumption, reconcile generated assets and receive asynchronous status changes.
GET /v1/credits/balance GET /v1/credits/ledger Signed webhook events These snippets show common integration patterns. Contact us to discuss your API agreement, integration details and production requirements.
Example 1
Create a project for one listing, property or campaign.
const project = await fetch('https://api.aixpose.art/v1/projects', {
method: 'POST',
headers: {
Authorization: 'Bearer aix_live_partner_key',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({
name: 'Gdynia apartment campaign',
output: 'picture',
picture_aspect_ratio: '16:9',
picture_resolution: '2K'
})
}).then((res) => res.json());
console.log(project.id); Example 2
Use this when your image already exists in a CRM, DAM or storage bucket.
const projectId = 'prj_123';
const picture = await fetch(
`https://api.aixpose.art/v1/projects/${projectId}/pictures`,
{
method: 'POST',
headers: {
Authorization: 'Bearer aix_live_partner_key',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({
source: {
type: 'url',
url: 'https://cdn.example.com/listings/4812/living-room.jpg'
},
scene_type: 'interior',
scene_location: 'living_room',
webhook_url: 'https://partner.example/aixpose/webhook'
})
}
).then((res) => res.json());
console.log(picture.id); Example 3
Use multipart when you send a raw file directly from a browser or backend.
const projectId = 'prj_123';
const form = new FormData();
form.append('file', sourcePhoto);
form.append('scene_type', 'interior');
form.append('scene_location', 'living_room');
form.append('webhook_url', 'https://partner.example/aixpose/webhook');
const picture = await fetch(
`https://api.aixpose.art/v1/projects/${projectId}/pictures`,
{
method: 'POST',
headers: {
Authorization: 'Bearer aix_live_partner_key',
'Idempotency-Key': crypto.randomUUID()
},
body: form
}
).then((res) => res.json());
console.log(picture.id); Example 4
Use base64 when your integration already holds the image bytes in memory.
import { readFile } from 'node:fs/promises';
const projectId = 'prj_123';
const image = await readFile('living-room.jpg');
const picture = await fetch(
`https://api.aixpose.art/v1/projects/${projectId}/pictures`,
{
method: 'POST',
headers: {
Authorization: 'Bearer aix_live_partner_key',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({
source: {
type: 'base64',
media_type: 'image/jpeg',
data: image.toString('base64')
},
scene_type: 'interior',
scene_location: 'living_room'
})
}
).then((res) => res.json());
console.log(picture.id); Example 5
Send generation instructions to create one or more new variants.
const pictureId = 'pic_source';
const enhancedPictures = await fetch(
`https://api.aixpose.art/v1/pictures/${pictureId}/enhancements`,
{
method: 'POST',
headers: {
Authorization: 'Bearer aix_live_partner_key',
'Content-Type': 'application/json',
'Idempotency-Key': 'listing-4812-kitchen-v1'
},
body: JSON.stringify({
instruction: {
source: 'preset',
actions: [
'interior-style-japandi',
'interior-decoration-medium'
]
},
variants: 2,
aspect_ratio: '16:9',
resolution: '2K',
webhook_url: 'https://partner.example/aixpose/webhook'
})
}
).then((res) => res.json());
console.log(enhancedPictures); Example 6
Use webhook events to update your CRM, listing page or media queue when generation completes.
{
"id": "evt_01HZY4Q6AV7M7K4QF9Q7S2A8E1",
"type": "picture.completed",
"created_at": "2026-05-06T05:56:00Z",
"data": {
"id": "pic_generated",
"project_id": "prj_123",
"status": "completed",
"public_url": "https://cdn.aixpose.art/projects/prj_123/pic_generated.jpg",
"version": 1,
"subversion": 0,
"scene_type": "interior",
"scene_location": "living_room",
"source_instruction": {
"source": "preset",
"actions": [
"interior-style-japandi",
"interior-decoration-medium"
]
}
}
} Operational model
Picture and video generation runs asynchronously. Your integration should expect immediate acknowledgement, status transitions, signed webhook callbacks and idempotent writes for safe retries.
Åtkomstdetaljer
Berätta vad du vill bygga, förväntad medievolym och systemen som ska kopplas ihop. Vi går igenom avtal, integrationsomfång och tekniska detaljer tillsammans.
Diskutera din API-integrationNext step
Share your use case, expected media volume and integration goals. We will review the API agreement, integration details and technical requirements with you.