InsightFaceSwap API v1

REST API for the InsightFaceSwap Discord bot by Picsi.Ai — swap faces from source images onto target images with HiFidelity mode, ARTIFY effects, age transformation, multi-face morphing, background change and headshot generation.

OpenAPI Specification

useapi-faceswap-v1-openapi.yml Raw ↑
# Derived from the first-party useapi.net Postman collection: https://useapi.net/assets/postman/faceswap-v1.json
# method: derived  |  no operation, path, parameter or example was invented.
openapi: 3.1.0
info:
  title: InsightFaceSwap API v1 by useapi.net
  version: 1.0.0
  description: "Experimental [REST API](https://useapi.net/docs/api-faceswap-v1) for [InsightFaceSwap Discord Bot](https://discord.gg/Ym3X8U59ZN)\
    \ by [Picsi.Ai](https://www.picsi.ai/). InsightFaceSwap allows users to swap faces from source image(s) onto different\
    \ target images. It offers free and paid [subscription](https://www.patreon.com/picsi) models. Paid subscribers have access\
    \ to a wide selection of extra features such as [HiFidelity Mode](https://www.patreon.com/posts/89036144), [ARTIFY](https://www.patreon.com/posts/picsi-ai-v2-0-97389077),\
    \ oldify/youngify, morphing multiple faces in one image, and [many more](https://discord.com/channels/1095014106576212101/1128550062683865178).\n\
    \nThe experimental InsightFaceSwap API does not require any additional subscription, and we believe it will complement\
    \ our other experimental API offerings well.\n\nFollowing InsightFaceSwap Discord Bot commands supported:\n\n- [<code>GET</code>&nbsp;faceswap/account](https://useapi.net/docs/api-faceswap-v1/get-faceswap-account.html)\n\
    \    \n- [<code>GET</code>&nbsp;faceswap/account/<code>channel</code>](https://useapi.net/docs/api-faceswap-v1/get-faceswap-account-channel.html)\n\
    \    \n- [<code>POST</code>&nbsp;faceswap/account/<code>channel</code>](https://useapi.net/docs/api-faceswap-v1/post-faceswap-account-channel.html)\n\
    \    \n- [<code>DEL</code>&nbsp;faceswap/account/<code>channel</code>](https://useapi.net/docs/api-faceswap-v1/del-faceswap-account-channel.html)\n\
    \    \n- [<code>POST</code>&nbsp;faceswap/listid](https://useapi.net/docs/api-faceswap-v1/post-faceswap-listid.html)\n\
    \    \n- [<code>POST</code>&nbsp;faceswap/saveid](https://useapi.net/docs/api-faceswap-v1/post-faceswap-saveid.html)\n\
    \    \n- [<code>POST</code>&nbsp;faceswap/swapid](https://useapi.net/docs/api-faceswap-v1/post-faceswap-swapid.html)\n\
    \    \n- [<code>POST</code>&nbsp;faceswap/swap](https://useapi.net/docs/api-faceswap-v1/post-faceswap-swap.html)\n   \
    \ \n- [<code>POST</code>&nbsp;faceswap/inswapper](https://useapi.net/docs/api-faceswap-v1/post-faceswap-inswapper.html)\n\
    \    \n- [<code>POST</code>&nbsp;faceswap/setid](https://useapi.net/docs/api-faceswap-v1/post-faceswap-setid.html)\n \
    \   \n- [<code>DEL</code>&nbsp;faceswap/delid](https://useapi.net/docs/api-faceswap-v1/del-faceswap-delid.html)\n    \n\
    - [<code>DEL</code>&nbsp;faceswap/delall](https://useapi.net/docs/api-faceswap-v1/post-faceswap-delall.html)\n    \n\n\
    We fully support the ability to use [multiple InsightFaceSwap accounts](https://useapi.net/docs/api-faceswap-v1/setup-multiple-faceswap-accounts),\
    \ complete with automated load balancing.\n\nVisit [https://useapi.net](https://useapi.net) for more details.\n\n---\n\
    **Updated:** January 20, 2026"
  contact:
    name: useapi.net support
    email: support@useapi.net
    url: https://useapi.net/docs/support
  x-derived-from: https://useapi.net/assets/postman/faceswap-v1.json
externalDocs:
  description: faceswap documentation
  url: https://useapi.net/docs/api-faceswap-v1
servers:
- url: https://api.useapi.net/v1/faceswap
security:
- bearerAuth: []
tags:
- name: faceswap
  description: InsightFaceSwap API v1 by useapi.net
paths:
  /account:
    get:
      operationId: getAccount
      summary: faceswap/account
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /account/{channel_id}:
    get:
      operationId: getAccountByChannelid
      summary: faceswap/account/<channel>
      tags:
      - faceswap
      parameters:
      - name: channel_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
    post:
      operationId: postAccountByChannelid
      summary: faceswap/account/<channel>
      tags:
      - faceswap
      parameters:
      - name: channel_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                discord:
                  type: string
                server:
                  type: string
                channel:
                  type: string
            example:
              discord: '{{discord-token}}'
              server: '{{server-id}}'
              channel: '{{channel-id}}'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
    delete:
      operationId: deleteAccountByChannelid
      summary: faceswap/account/<channel>
      tags:
      - faceswap
      parameters:
      - name: channel_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /listid:
    post:
      operationId: postListid
      summary: faceswap/listid
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /saveid:
    post:
      operationId: postSaveid
      summary: faceswap/saveid
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
                idname:
                  type: string
                image:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /swapid:
    post:
      operationId: postSwapid
      summary: faceswap/swapid
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
                idname:
                  type: string
                image:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /setid:
    post:
      operationId: postSetid
      summary: faceswap/setid
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
                idname:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /swap:
    post:
      operationId: postSwap
      summary: faceswap/swap
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
                saveid_idname:
                  type: string
                saveid_image:
                  type: string
                swapid_idname:
                  type: string
                swapid_image:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /inswapper:
    post:
      operationId: postInswapper
      summary: faceswap/inswapper
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
                targetMessageId:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /picsi:
    post:
      operationId: postPicsi
      summary: faceswap/picsi
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
                options:
                  type: string
                source_image:
                  type: string
                target_image_gif_or_video:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /changebg:
    post:
      operationId: postChangebg
      summary: faceswap/changebg
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
                options:
                  type: string
                a_background_photo_of:
                  type: string
                image:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /headshot:
    post:
      operationId: postHeadshot
      summary: faceswap/headshot
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
                options:
                  type: string
                prompt:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /jobs/:
    get:
      operationId: getJobs
      summary: faceswap/jobs/?jobid=<jobid>
      tags:
      - faceswap
      parameters:
      - name: jobid
        in: query
        required: true
        schema:
          type: string
        example: <jobid>
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /jobs/cancel/:
    get:
      operationId: getJobsCancel
      summary: faceswap/jobs/cancel/?jobid=<jobid>
      tags:
      - faceswap
      parameters:
      - name: jobid
        in: query
        required: true
        schema:
          type: string
        example: <jobid>
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /jobs:
    get:
      operationId: getJobs2
      summary: faceswap/jobs
      tags:
      - faceswap
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /delid:
    delete:
      operationId: deleteDelid
      summary: faceswap/delid
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
                idname:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /delall:
    delete:
      operationId: deleteDelall
      summary: faceswap/delall
      tags:
      - faceswap
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                channel:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'useapi.net API token. Header: `Authorization: Bearer user:<number>-<unique-string>`. Use the complete
        token including the `user:` prefix.'