# 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.'