# 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- [GET faceswap/account](https://useapi.net/docs/api-faceswap-v1/get-faceswap-account.html)\n\ \ \n- [GET faceswap/account/channel](https://useapi.net/docs/api-faceswap-v1/get-faceswap-account-channel.html)\n\ \ \n- [POST faceswap/account/channel](https://useapi.net/docs/api-faceswap-v1/post-faceswap-account-channel.html)\n\ \ \n- [DEL faceswap/account/channel](https://useapi.net/docs/api-faceswap-v1/del-faceswap-account-channel.html)\n\ \ \n- [POST faceswap/listid](https://useapi.net/docs/api-faceswap-v1/post-faceswap-listid.html)\n\ \ \n- [POST faceswap/saveid](https://useapi.net/docs/api-faceswap-v1/post-faceswap-saveid.html)\n\ \ \n- [POST faceswap/swapid](https://useapi.net/docs/api-faceswap-v1/post-faceswap-swapid.html)\n\ \ \n- [POST faceswap/swap](https://useapi.net/docs/api-faceswap-v1/post-faceswap-swap.html)\n \ \ \n- [POST faceswap/inswapper](https://useapi.net/docs/api-faceswap-v1/post-faceswap-inswapper.html)\n\ \ \n- [POST faceswap/setid](https://useapi.net/docs/api-faceswap-v1/post-faceswap-setid.html)\n \ \ \n- [DEL faceswap/delid](https://useapi.net/docs/api-faceswap-v1/del-faceswap-delid.html)\n \n\ - [DEL 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/ 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/ 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/ 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= tags: - faceswap parameters: - name: jobid in: query required: true schema: type: string example: 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= tags: - faceswap parameters: - name: jobid in: query required: true schema: type: string example: 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:-`. Use the complete token including the `user:` prefix.'