Organization
Your tenant for projects, credits, preferences, branding and API access.
Nutzen Sie diese Seite, um die Struktur der AIXpose REST API zu verstehen. Bei Kontakt besprechen wir API-Vereinbarung, Integrationsumfang, Authentifizierung, Limits und Produktionsanforderungen im Detail.
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.
Diese Karte erklärt die Bausteine Ihrer Integration: Projekte bündeln Listing-Kontext, Bilder und Videos sind generierte Medien, Kataloge steuern UI-Optionen, Webhooks liefern Job-Updates und Credits helfen beim Nutzungsabgleich.
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.
Zugangsdetails
Erzählen Sie uns, was Sie bauen möchten, welches Medienvolumen Sie erwarten und welche Systeme verbunden werden müssen. Gemeinsam prüfen wir kommerzielle Vereinbarung, Umfang und technische Details.
API-Integration besprechenNext step
Share your use case, expected media volume and integration goals. We will review the API agreement, integration details and technical requirements with you.