{
  "id": "deepswapai-face-swap-api-contract-landscape-v1",
  "identifier": "deepswapai-face-swap-api-contract-landscape-2026-v1",
  "version": "1.0.0",
  "title": "Face Swap API Contract Landscape 2026",
  "alternateName": "Source-Checked Face Swap API Comparison Dataset",
  "description": "A source-cited comparison of public media inputs, transport, multiple-face or batch support, completion methods, client assets, machine-readable specifications, pricing units, and retention statements for six face swap APIs.",
  "canonicalUrl": "https://deepswapai.com/face-swap-api#api-landscape",
  "jsonUrl": "https://deepswapai.com/assets/api-comparison/face-swap-api-contract-landscape-v1.json",
  "csvUrl": "https://deepswapai.com/assets/api-comparison/face-swap-api-contract-landscape-v1.csv",
  "citationUrl": "https://deepswapai.com/assets/api-comparison/face-swap-api-contract-landscape-v1.bib",
  "methodologyUrl": "https://deepswapai.com/methodology",
  "datePublished": "2026-07-28",
  "dateModified": "2026-07-28",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "isAccessibleForFree": true,
  "scope": "Current public API references, product pages, pricing pages, integration guides, and retention statements available on July 28, 2026.",
  "evidenceBoundary": "Manual review of current official sources. No generation request was run, no output was scored, and no provider was ranked for quality, latency, reliability, safety, or overall value. Not confirmed means the reviewed sources did not establish the field, not that the capability is absent.",
  "comparabilityNotes": [
    "Published prices use different units, minimums, face counts, durations, frames, resolutions, enhancements, subscriptions, and credit packs, so the numeric amounts are not directly comparable.",
    "A code example is not classified as an official SDK unless the reviewed provider documentation explicitly presents a maintained language client.",
    "A reference page is not classified as a downloadable machine-readable specification unless the reviewed sources expose that contract.",
    "Conflicting official statements remain visible instead of being silently reconciled."
  ],
  "fields": [
    {
      "id": "provider",
      "description": "Provider name used by the reviewed official sources."
    },
    {
      "id": "canonicalUrl",
      "description": "First-party API or model page used as the provider-level canonical reference."
    },
    {
      "id": "documentedMedia",
      "description": "Media workflows explicitly documented in the reviewed API sources."
    },
    {
      "id": "inputTransport",
      "description": "Published request transport for source and target media."
    },
    {
      "id": "multipleOrBatch",
      "description": "Published multiple-face, face-index, batch, or mapping behavior, including explicit gaps."
    },
    {
      "id": "completion",
      "description": "Published polling, callback, or webhook completion contract."
    },
    {
      "id": "officialClients",
      "description": "Published official SDKs, tutorials, collections, or plain HTTP examples, with those categories kept separate."
    },
    {
      "id": "machineReadableSpec",
      "description": "Published OpenAPI or equivalent machine-readable contract found in the reviewed sources."
    },
    {
      "id": "publishedPricing",
      "description": "Provider-published price or credit unit with incompatible units and conflicts preserved."
    },
    {
      "id": "retentionOrOutputWindow",
      "description": "Published upload, output, or signed-URL availability window found in the reviewed sources."
    },
    {
      "id": "reviewedDate",
      "description": "Date the row and its linked official sources were last reviewed."
    }
  ],
  "providers": [
    {
      "id": "deepswapai",
      "provider": "DeepSwapAI",
      "canonicalUrl": "https://deepswapai.com/face-swap-api",
      "documentedMedia": "Photo, batch photo, mapped group photo, video, and GIF or short clip.",
      "inputTransport": "Multipart file uploads over HTTPS.",
      "multipleOrBatch": "Up to 20 photos per batch and up to 10 explicitly mapped faces in one group photo. Video applies one reference to the primary on-camera person.",
      "completion": "Create returns a taskId; poll GET on the matching workflow endpoint. No webhook callback is published.",
      "officialClients": "Runnable Node.js 20 and Python HTTP examples plus a Postman collection. No official language SDK is published.",
      "machineReadableSpec": "Public OpenAPI 3.1 document and Postman collection.",
      "publishedPricing": "2 credits per photo output or mapped face; 720p video 2 credits per rounded-up second with a 6-credit minimum; 1080p 5 credits per second with a 15-credit minimum; GIF 3 credits per second with a 10-credit minimum. Credits are sold in one-time packs.",
      "retentionOrOutputWindow": "Uploads and generated media are removed from DeepSwapAI servers within 24 hours.",
      "reviewedDate": "2026-07-28",
      "evidenceNote": "First-party API reference, machine-readable contract, client collection, pricing, and privacy policy. No generation request was made for this review.",
      "sources": [
        {
          "name": "DeepSwapAI face swap API",
          "url": "https://deepswapai.com/face-swap-api"
        },
        {
          "name": "DeepSwapAI OpenAPI 3.1",
          "url": "https://deepswapai.com/openapi.json"
        },
        {
          "name": "DeepSwapAI Postman collection",
          "url": "https://deepswapai.com/deepswapai-face-swap-api.postman_collection.json"
        },
        {
          "name": "DeepSwapAI pricing",
          "url": "https://deepswapai.com/pricing"
        },
        {
          "name": "DeepSwapAI privacy policy",
          "url": "https://deepswapai.com/privacy"
        }
      ]
    },
    {
      "id": "magic-hour",
      "provider": "Magic Hour",
      "canonicalUrl": "https://magichour.ai/api/face-swap",
      "documentedMedia": "Photo and video; GIF is accepted on the video path; multiple-face mappings are documented.",
      "inputTransport": "Magic Hour upload paths or supported public media URLs.",
      "multipleOrBatch": "Multiple source-to-target face mappings are documented. A single multi-file photo-batch request contract was not confirmed in the reviewed sources.",
      "completion": "Polling and signed webhook events are documented.",
      "officialClients": "Official Python, Node.js or TypeScript, Go, and Rust SDKs are documented.",
      "machineReadableSpec": "Public API reference is available; a downloadable consolidated OpenAPI file was not confirmed in the reviewed sources.",
      "publishedPricing": "Face Swap Photo is published at 5 credits. Video usage is estimated and finalized from rendered frames. Subscription and usage-based billing options are documented.",
      "retentionOrOutputWindow": "Files uploaded to Magic Hour storage are documented as automatically deleted after 7 days.",
      "reviewedDate": "2026-07-28",
      "evidenceNote": "The photo and video paths use different units. Product, SDK, event, and storage statements are preserved without inferring an output-quality or speed result.",
      "sources": [
        {
          "name": "Magic Hour face swap API",
          "url": "https://magichour.ai/api/face-swap"
        },
        {
          "name": "Magic Hour video face swap API",
          "url": "https://docs.magichour.ai/api-reference/video-projects/face-swap-video"
        },
        {
          "name": "Magic Hour photo face swap tool contract",
          "url": "https://docs.magichour.ai/tools/image/face-swap-photo"
        },
        {
          "name": "Magic Hour API integration and SDKs",
          "url": "https://docs.magichour.ai/integration/adding-api-to-your-app"
        },
        {
          "name": "Magic Hour inputs and outputs",
          "url": "https://docs.magichour.ai/integration/inputs-and-outputs"
        }
      ]
    },
    {
      "id": "piapi",
      "provider": "PiAPI",
      "canonicalUrl": "https://piapi.ai/faceswap-api",
      "documentedMedia": "Image and MP4 video face swap.",
      "inputTransport": "Image URLs or base64 strings for image tasks; media URLs for video tasks.",
      "multipleOrBatch": "Image tasks replace the largest detected face. Video tasks document indexed single- or multiple-face mappings. A multi-file image batch contract was not confirmed.",
      "completion": "Asynchronous task ID with task retrieval; optional webhook configuration is present in the image task contract.",
      "officialClients": "A first-party Postman tutorial and generated request examples are available. An official maintained language SDK was not confirmed.",
      "machineReadableSpec": "The image reference exposes an OpenAPI 3.0.1 operation definition. A standalone consolidated specification was not confirmed.",
      "publishedPricing": "The image endpoint reference publishes $0.01 per generation and the video reference publishes $0.004 per frame. The provider face swap product page separately publishes $0.02 per call; this official-source conflict is unresolved.",
      "retentionOrOutputWindow": "The output-storage documentation publishes a 3-day storage period for API output images. A separate video-output period was not confirmed.",
      "reviewedDate": "2026-07-28",
      "evidenceNote": "Both official image-price statements are retained. Video cost is frame-based and cannot be compared directly with a per-call image amount.",
      "sources": [
        {
          "name": "PiAPI image face swap task",
          "url": "https://piapi.ai/docs/faceswap-api/create-task"
        },
        {
          "name": "PiAPI video face swap task",
          "url": "https://piapi.ai/docs/faceswap-api/video-faceswap"
        },
        {
          "name": "PiAPI face swap task retrieval",
          "url": "https://app.piapi.ai/docs/faceswap-api/get-task"
        },
        {
          "name": "PiAPI face swap product page",
          "url": "https://piapi.ai/faceswap-api"
        },
        {
          "name": "PiAPI output storage",
          "url": "https://piapi.ai/docs/output-storage"
        }
      ]
    },
    {
      "id": "facemint",
      "provider": "Facemint",
      "canonicalUrl": "https://facemint.io/face-swap-api/",
      "documentedMedia": "Image, GIF, and video face swap.",
      "inputTransport": "Media URLs in JSON task requests.",
      "multipleOrBatch": "Video pricing documents face-count, resolution, and enhancement multipliers. A dedicated multi-file batch request was not confirmed.",
      "completion": "Task creation, task information, cancellation, and callbacks are documented.",
      "officialClients": "HTTP and cURL examples are published. An official maintained language SDK was not confirmed.",
      "machineReadableSpec": "A downloadable OpenAPI or equivalent machine-readable specification was not confirmed in the reviewed sources.",
      "publishedPricing": "$0.002 per image, $0.002 per 100 KB of GIF input, and a $0.0045 per second base video rate before documented face-count, resolution, and enhancement multipliers. The pricing page says callbacks are free.",
      "retentionOrOutputWindow": "A fixed upload or output retention window was not confirmed in the reviewed API and pricing pages.",
      "reviewedDate": "2026-07-28",
      "evidenceNote": "The video base rate changes with published multipliers, so it is not a final representative task price by itself.",
      "sources": [
        {
          "name": "Facemint face swap API",
          "url": "https://facemint.io/face-swap-api/"
        },
        {
          "name": "Facemint face swap API pricing",
          "url": "https://facemint.io/face-swap-api/pricing"
        }
      ]
    },
    {
      "id": "supawork",
      "provider": "Supawork",
      "canonicalUrl": "https://supawork.ai/api-doc/face-swap-api",
      "documentedMedia": "Single- and multiple-face image and video tasks.",
      "inputTransport": "Public media URLs in JSON requests.",
      "multipleOrBatch": "Single- and multiple-face modes are documented, and task_list supports several tasks in one request.",
      "completion": "A callback URL is required. The documentation describes callback retries and status payloads.",
      "officialClients": "HTTP and cURL examples are published. An official maintained language SDK was not confirmed.",
      "machineReadableSpec": "A downloadable OpenAPI or equivalent machine-readable specification was not confirmed in the reviewed sources.",
      "publishedPricing": "Image tasks publish 5 credits for single-face and 10 credits for multiple-face. Video tasks publish 5 to 20 credits per second depending on single or multiple face and enhancement.",
      "retentionOrOutputWindow": "The documented result URL is valid for 2 hours.",
      "reviewedDate": "2026-07-28",
      "evidenceNote": "Image and video credit units are provider-specific; video enhancement and multiple-face choices change the rate.",
      "sources": [
        {
          "name": "Supawork face swap API",
          "url": "https://supawork.ai/api-doc/face-swap-api"
        },
        {
          "name": "Supawork API documentation index",
          "url": "https://supawork.ai/api-doc"
        }
      ]
    },
    {
      "id": "wavespeed",
      "provider": "WaveSpeedAI",
      "canonicalUrl": "https://wavespeed.ai/models/wavespeed-ai/video-face-swap",
      "documentedMedia": "Video face swap for the reviewed model.",
      "inputTransport": "Public face-image and video URLs in a JSON prediction request.",
      "multipleOrBatch": "A target face index selects one detected face for a run. A multi-file batch or several mapped replacements in one request was not confirmed.",
      "completion": "Create returns a prediction ID; poll the prediction endpoint for status and output.",
      "officialClients": "cURL, Node.js, and Python request examples are published. Those examples were not classified as official maintained SDKs.",
      "machineReadableSpec": "A downloadable OpenAPI or equivalent machine-readable specification was not confirmed in the reviewed sources.",
      "publishedPricing": "$0.01 per second with a 5-second minimum for the reviewed video face swap model.",
      "retentionOrOutputWindow": "A fixed output retention period was not confirmed in the reviewed model and API pages.",
      "reviewedDate": "2026-07-28",
      "evidenceNote": "The reviewed model publishes a 10-minute maximum. No generation, latency, reliability, or output-quality test was run.",
      "sources": [
        {
          "name": "WaveSpeedAI video face swap API",
          "url": "https://wavespeed.ai/docs/docs-api/wavespeed-ai/video-face-swap"
        },
        {
          "name": "WaveSpeedAI video face swap model",
          "url": "https://wavespeed.ai/models/wavespeed-ai/video-face-swap"
        }
      ]
    }
  ],
  "recordCount": 6,
  "officialSourceCount": 21
}
