Skip to content

Using SiteSeam default content because published updates are temporarily unavailable.

SiteSeam enterprise API

Build a tenant-safe listing media workflow.

Create listing projects, upload source media, submit versioned render manifests, monitor asynchronous jobs, and discover current intro and outro templates.

Quickstart

From access approval to the first project.

The HTTP examples map to the currently registered API routes. Confirm the generated contract supplied for your environment before shipping an integration.

  1. 1Request access

    Agree on environment, plan, scopes, and operational contact.

  2. 2Store credentials

    Keep the API base URL and token in server-side secrets.

  3. 3Create a project

    Use a stable project to group facts, sources, and versions.

  4. 4Queue and monitor

    Submit an idempotent render request and poll its job.

cURL + SDK-style HTTP

Choose an HTTP client

No official SiteSeam SDK package is implied by these standard-library examples.
export SITESEAM_API_BASE_URL="https://api.example.com"
export SITESEAM_ACCESS_TOKEN="replace-with-provisioned-token"

curl --request POST "$SITESEAM_API_BASE_URL/real-estate/projects" \
  --header "Authorization: Bearer $SITESEAM_ACCESS_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "123 Main Street",
    "address": "123 Main Street",
    "city": "Austin",
    "region": "TX",
    "country": "US",
    "status": "active"
  }'

201 response

A tenant-scoped project resource

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "project_example",
  "name": "123 Main Street",
  "status": "active",
  "address": "123 Main Street",
  "city": "Austin",
  "region": "TX",
  "country": "US",
  "created_at": "2026-09-04T15:00:00Z",
  "updated_at": "2026-09-04T15:00:00Z"
}

Authentication

Use the provisioned bearer credential on every request.

The service derives client_id and user_id from the validated credential. Do not send either field as authorization context in request bodies, query strings, or custom headers.

Authorization: Bearer <provisioned-token>
Base URL
https://api.siteseam.com
Transport
HTTPS in provisioned environments
Content type
application/json unless an upload request says otherwise

Rotate or revoke a credential through your SiteSeam enterprise contact if it may be exposed.

API reference

Core listing-media routes.

This curated table covers the integration path. The generated contract remains authoritative for full payload schemas and all available operations.

Generated OpenAPI

Swagger UI is exposed by the local API server. Production documentation is supplied with access.

Request the current OpenAPI contract
MethodPathPurposeSuccess
POST/real-estate/projectsCreate a tenant-scoped listing project.201 project
GET/real-estate/projectsList projects visible to the authenticated user.200 collection
POST/real-estate/projects/{project_id}/assets/upload-requestRequest a private, short-lived upload destination.201 upload request
POST/real-estate/projects/{project_id}/video-manifestsSave an ordered, validated video manifest.201 manifest
POST/real-estate/video-manifests/{manifest_id}/renderReserve applicable credits and enqueue a base or branded render.202 render + job
GET/real-estate/render-jobs/{job_id}Read asynchronous render progress and terminal state.200 job
PATCH/real-estate/video-manifests/{manifest_id}/quick-editReorder, clear, redo, or swap compatible scenes in a new version.202 render + job
GET/real-estate/catalog/templatesDiscover current intro and outro IDs and supported fields.200 template catalog

Asynchronous video jobs

Accept the job, then observe its state.

Media generation does not complete inside the creation request. Save the returned job ID, poll at a reasonable interval, and stop on complete, error, or canceled.

1. Queue a render

POST /real-estate/video-manifests/manifest_example/render
Authorization: Bearer <provisioned-token>
Content-Type: application/json

{
  "kind": "base",
  "idempotency_key": "listing-123-base-v1"
}

2. Save the 202 response

HTTP/1.1 202 Accepted
Content-Type: application/json

{
  "render": {
    "id": "render_example",
    "manifest_id": "manifest_example",
    "kind": "base",
    "status": "queued"
  },
  "job": {
    "job_id": "job_example",
    "status": "queued"
  }
}

3. Poll the render job

GET /real-estate/render-jobs/job_example

{
  "id": "job_example",
  "video_id": "manifest_example",
  "status": "in_progress",
  "base_status": "in_progress",
  "progress": 0,
  "reservation": {
    "video_credits": 1,
    "ai_credits": 0,
    "watermarked": false
  }
}

A stable idempotency_key protects a retried request for the same render intent. Use a new key when the requested output actually changes.

Template discovery

Read valid IDs instead of embedding a stale catalog.

Query the authenticated template catalog before building intro or outro controls. Each item includes its kind and accepted field keys.

curl "$SITESEAM_API_BASE_URL/real-estate/catalog/templates" \
  --header "Authorization: Bearer $SITESEAM_ACCESS_TOKEN"

Abbreviated 200 response

{
  "intros": [
    {
      "id": "address_reveal",
      "name": "Address reveal",
      "kind": "intro",
      "field_keys": ["eyebrow", "title", "address", "price"]
    }
  ],
  "outros": [
    {
      "id": "agent_contact",
      "name": "Agent Contact",
      "kind": "outro",
      "field_keys": ["headline", "agent_name", "phone", "email"]
    }
  ]
}

Errors and retries

Branch on status; show the server message safely.

Error bodies use an error string. Do not expose credentials, prompts, or private media in logs.

400

The JSON or a requested setting is invalid.

Correct the payload; do not retry it unchanged.

401

The bearer credential is missing, invalid, or expired.

Obtain a valid credential through the approved authentication flow.

402

The current plan, limit, or credit balance does not authorize the request.

Read the current plan and usage resources before asking the user to confirm an upgrade.

403

The authenticated user cannot change this project.

Check project membership and role; never substitute a caller-supplied tenant ID.

404

No resource is visible in the authenticated tenant context.

Treat the identifier as unavailable; do not use the response to infer another tenant’s data.

409

A conflicting or duplicate operation already exists.

Retrieve the existing resource or use a stable idempotency key for a new intent.

500

The service could not complete the operation.

Retry with bounded exponential backoff only when the operation is idempotent.

Changelog

Documentation revisions.

Entries describe this public guide. They do not promise an API release cadence or compatibility window.

  1. Documentation baseline

    Documented the current project, private upload, manifest, render-job, Quick Edit, and template-discovery routes. This is a documentation revision, not a product release or stability guarantee.

Plan an integration

Start with the workflow and volume you need.

SiteSeam will confirm access, environment, current contract, and support path before credentials are issued.

Contact enterprise sales