Perfect Corp V1.0 API

Transform your upper-body photo with AI-generated six-pack abs using the AI Abs Filter API.

Operations 121

POST /s2s/v2.0/task/abs-shape Run an AI Abs Filter task #
GET /s2s/v2.0/task/abs-shape/{task_id} Check the status of a AI Abs Filter task #
POST /s2s/v2.0/task/aging Run a AI Aging Generator task #
GET /s2s/v2.0/task/aging/{task_id} Check the status of a AI Aging Generator task #
POST /s2s/v2.0/task/sod Run an AI Photo Background Removal task #
GET /s2s/v2.0/task/sod/{task_id} Check an AI Photo Background Removal task status #
GET /s2s/v2.0/task/template/hair-bang List predefined templates #
POST /s2s/v2.0/task/hair-bang Run an AI Hair Bang Generator task #
GET /s2s/v2.0/task/hair-bang/{task_id} Check the status of a AI Hair Bang Generator task #
GET /s2s/v2.0/task/template/beard-style List predefined templates #
POST /s2s/v2.0/task/beard-style Run an AI Beard Style Generator task #
GET /s2s/v2.0/task/beard-style/{task_id} Check the status of a AI Beard Style Generator task #
POST /s2s/v2.0/task/body-reshape/pre-process Run an AI Body Reshape detection task #
GET /s2s/v2.0/task/body-reshape/pre-process/{task_id} Check the status of a AI Body Reshape detection task #
POST /s2s/v2.0/task/body-reshape Run an AI Body Reshape task #
GET /s2s/v2.0/task/body-reshape/{task_id} Check the status of a AI Body Reshape task #
POST /s2s/v2.0/task/2d-vto/bracelet Run an AI 2D Virtual Try On Bracelet task #
GET /s2s/v2.0/task/2d-vto/bracelet/{task_id} Check the status of a AI 2D Virtual Try On Bracelet task #
POST /s2s/v2.0/task/breast-shape Run an AI Breast Augmentation Simulator task #
GET /s2s/v2.0/task/breast-shape/{task_id} Check the status of a AI Breast Augmentation Simulator task #
POST /s2s/v2.0/task/colorize/color-correct Run an AI Photo Color Correction task #
GET /s2s/v2.0/task/colorize/color-correct/{task_id} Check an AI Photo Color Correction task status #
POST /s2s/v2.0/task/2d-vto/earring Run an AI 2D Virtual Try On Earring task #
GET /s2s/v2.0/task/2d-vto/earring/{task_id} Check the status of a AI 2D Virtual Try On Earring task #
POST /s2s/v2.0/task/eye-color-vto Run an AI Eye Color Lens task #
GET /s2s/v2.0/task/eye-color-vto/{task_id} Check the status of a AI Eye Color Lens task #
GET /s2s/v2.0/task/template/fabric List predefined templates #
POST /s2s/v2.0/task/fabric Run an Fabric task #
GET /s2s/v2.0/task/fabric/{task_id} Check the status of the Fabric task #
POST /s2s/v2.0/task/face-attr-analysis Run an Face Attribute Analysis task #
GET /s2s/v2.0/task/face-attr-analysis/{task_id} Check an Face Attribute Analysis task status #
POST /s2s/v2.0/task/face-lift/pre-process Run an AI Face Lift detection task #
GET /s2s/v2.0/task/face-lift/pre-process/{task_id} Check the status of an AI Face Lift detection task #
POST /s2s/v2.0/task/face-lift Run an AI Face Lift task #
GET /s2s/v2.0/task/face-lift/{task_id} Check the status of a AI Face Lift task #
POST /s2s/v2.0/task/face-reshape/pre-process Run an AI Face Reshape detection task #
GET /s2s/v2.0/task/face-reshape/pre-process/{task_id} Check the status of an AI Face Reshape detection task #
POST /s2s/v2.0/task/face-reshape Run an AI Face Reshape task #
GET /s2s/v2.0/task/face-reshape/{task_id} Check the status of a AI Face Reshape task #
POST /s2s/v2.0/task/face-swap/pre-process Run an AI Face Swap face detection task #
GET /s2s/v2.0/task/face-swap/pre-process/{task_id} Check a AI Face Swap face detection task status #
POST /s2s/v2.0/task/face-swap Run an AI Face Swap task #
GET /s2s/v2.0/task/face-swap/{task_id} Check a AI Face Swap task status #
POST /s2s/v2.0/task/fitzpatrick-scale-analyzer/pre-process Run an AI Fitzpatrick Scale Analyzer detection task #
GET /s2s/v2.0/task/fitzpatrick-scale-analyzer/pre-process/{task_id} Check the status of a AI Fitzpatrick Scale Analyzer detection task #
POST /s2s/v2.0/task/fitzpatrick-scale-analyzer Run an AI Fitzpatrick Scale Analyzer task #
GET /s2s/v2.0/task/fitzpatrick-scale-analyzer/{task_id} Check the status of a AI Fitzpatrick Scale Analyzer task #
POST /s2s/v2.0/task/hair-color Run a Hair Color task #
GET /s2s/v2.0/task/hair-color/{task_id} Check a Hair Color task status #
POST /s2s/v2.0/task/hair-density-detection Run an AI Hair Density Detection task #
GET /s2s/v2.0/task/hair-density-detection/{task_id} Check the status of a AI Hair Density Detection task #
GET /s2s/v2.0/task/template/hair-ext List predefined templates #
POST /s2s/v2.0/task/hair-ext Run an AI Hair Extension task #
GET /s2s/v2.0/task/hair-ext/{task_id} Check the status of a AI Hair Extension task #
POST /s2s/v2.0/task/hair-frizziness-detection Run an Hair Frizziness Detection task #
GET /s2s/v2.0/task/hair-frizziness-detection/{task_id} Check an Hair Frizziness Detection task status #
POST /s2s/v2.0/task/hair-length-detection Run an Hair Length Detection task #
GET /s2s/v2.0/task/hair-length-detection/{task_id} Check an Hair Length Detection task status #
POST /s2s/v2.0/task/hair-type-detection Run an Hair Type Detection task #
GET /s2s/v2.0/task/hair-type-detection/{task_id} Check an Hair Type Detection task status #
GET /s2s/v2.0/task/template/hair-vol List predefined templates #
POST /s2s/v2.0/task/hair-vol Run an AI Hair Volume Generator task #
GET /s2s/v2.0/task/hair-vol/{task_id} Check the status of a AI Hair Volume Generator task #
GET /s2s/v2.0/task/template/hair-style List predefined templates #
POST /s2s/v2.0/task/hair-style Run an AI Hairstyle Generator task #
GET /s2s/v2.0/task/hair-style/{task_id} Check the status of a AI Hairstyle Generator task #
GET /s2s/v2.0/task/template/headshot List predefined templates #
POST /s2s/v2.0/task/headshot Run an AI Headshot Generator task #
GET /s2s/v2.0/task/headshot/{task_id} Check the status of the AI Headshot Generator task #
GET /s2s/v2.0/task/template/text-to-image List predefined templates #
POST /s2s/v2.0/task/text-to-image Run an AI Image Generator task #
GET /s2s/v2.0/task/text-to-image/{task_id} Check a AI Image Generator task status #
GET /s2s/v2.0/task/template/look-vto List predefined templates #
POST /s2s/v2.0/task/look-vto Run an AI Look Virtual Try On task #
GET /s2s/v2.0/task/look-vto/{task_id} Check the status of a AI Look Virtual Try On task #
POST /s2s/v2.0/task/mu-transfer Run an AI Makeup Transfer task #
GET /s2s/v2.0/task/mu-transfer/{task_id} Check a AI Makeup Transfer task status #
POST /s2s/v2.0/task/ai-nail Run an AI Nail Transfer task #
GET /s2s/v2.0/task/ai-nail/{task_id} Check the status of a AI Nail Transfer task #
POST /s2s/v2.0/task/nail-vto Run an AI Nail Vto task #
GET /s2s/v2.0/task/nail-vto/{task_id} Check the status of a AI Nail Vto task #
POST /s2s/v2.0/task/2d-vto/necklace Run an AI 2D Virtual Try On Necklace task #
GET /s2s/v2.0/task/2d-vto/necklace/{task_id} Check the status of a AI 2D Virtual Try On Necklace task #
POST /s2s/v2.0/task/colorize Run an AI Photo Colorize task #
GET /s2s/v2.0/task/colorize/{task_id} Check a AI Photo Colorize task status #
POST /s2s/v2.0/task/enhance Run an AI Photo Enhance task #
GET /s2s/v2.0/task/enhance/{task_id} Check an AI Photo Enhance task status #
POST /s2s/v2.0/task/obj-replace Run an AI Replace task #
GET /s2s/v2.0/task/obj-replace/{task_id} Check an AI Replace task status #
POST /s2s/v2.0/task/skin-simulation Run an AI Skin Simulation task #
GET /s2s/v2.0/task/skin-simulation/{task_id} Check the status of a AI Skin Simulation task #
POST /s2s/v2.0/task/skin-tone-analysis Run an Skin Tone Analysis task #
GET /s2s/v2.0/task/skin-tone-analysis/{task_id} Check an Skin Tone Analysis task status #
POST /s2s/v2.0/task/ai-smile Run an AI Smile task #
GET /s2s/v2.0/task/ai-smile/{task_id} Check the status of a AI Smile task #
POST /s2s/v2.0/task/teeth-whiten/pre-process Run an AI Teeth Whiten detection task #
GET /s2s/v2.0/task/teeth-whiten/pre-process/{task_id} Check the status of a AI Teeth Whiten detection task #
POST /s2s/v2.0/task/teeth-whiten Run an AI Teeth Whiten task #
GET /s2s/v2.0/task/teeth-whiten/{task_id} Check the status of a AI Teeth Whiten task #
POST /s2s/v2.0/task/bg-replace-vid Run an AI Video Background Replace task #
GET /s2s/v2.0/task/bg-replace-vid/{task_id} Check the status of an AI Video Background Replace task #
POST /s2s/v2.0/task/video-sr Run an AI Video Enhance task #
GET /s2s/v2.0/task/video-sr/{task_id} Check a AI Video Enhance task status #
POST /s2s/v2.0/task/face-swap-vid Run an AI Face Swap (video) task #
GET /s2s/v2.0/task/face-swap-vid/{task_id} Check the status of the AI Face Swap (video) task #
GET /s2s/v2.0/task/template/image-to-video List predefined templates #
POST /s2s/v2.0/task/image-to-video Run an Image to Video task #
GET /s2s/v2.0/task/image-to-video/{task_id} Check the status of the Image to Video task #
GET /s2s/v2.0/task/template/video-trans List predefined templates #
POST /s2s/v2.0/task/video-trans Run an AI Style Transfer (video) task #
GET /s2s/v2.0/task/video-trans/{task_id} Check the status of the AI Style Transfer (video) task #
POST /s2s/v2.0/task/2d-vto/watch Run an AI 2D Virtual Try On Watch task #
GET /s2s/v2.0/task/2d-vto/watch/{task_id} Check the status of a AI 2D Virtual Try On Watch task #
GET /s2s/v2.0/task/template/hair-curl List predefined templates #
POST /s2s/v2.0/task/hair-curl Run an AI Wavy Hair task #
GET /s2s/v2.0/task/hair-curl/{task_id} Check the status of a AI Wavy Hair task #
POST /s2s/v2.0/task/makeup-vto Run an AI Makeup Virtual Try On task #
GET /s2s/v2.0/task/makeup-vto/{task_id} Check the status of a AI Makeup Virtual Try On task #
POST /s2s/v2.0/file/2d-vto/ring Create a new file #
POST /s2s/v2.0/task/2d-vto/ring Run an AI 2D Virtual Try On Ring task #
GET /s2s/v2.0/task/2d-vto/ring/{task_id} Check the status of a AI 2D Virtual Try On Ring task #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/perfect-corp-v1-0-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

perfect-corp-v1-0-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Perfect Corp V1.0 API
  version: ''
  contact:
    email: YouCamOnlineEditor_API@perfectcorp.com
  license:
    name: Privacy policy
    url: https://www.makeupar.com/perfectbeauty/youcam/privacy-policy-api
  termsOfService: https://www.makeupar.com/perfectbeauty/youcam/terms-of-service-api
  description: 'Operations tagged V1.0 across 48 of this provider''s published API definitions: perfect-corp-ai_abs_filter-openapi.yml, perfect-corp-ai_aging_simulation-openapi.yml, perfect-corp-ai_background_removal-openapi.yml, perfect-corp-ai_bangs-openapi.yml, perfect-corp-ai_beard_style-openapi.yml, perfect-corp-ai_body_reshape-openapi.yml, perfect-corp-ai_bracelet-openapi.yml, perfect-corp-ai_breast_augmentation-openapi.yml, perfect-corp-ai_color_correction-openapi.yml…'
servers:
- url: https://yce-api-01.makeupar.com
tags:
- name: V1.0
  description: Transform your upper-body photo with AI-generated six-pack abs using the AI Abs Filter API.
paths:
  /s2s/v2.0/task/abs-shape:
    post:
      summary: Run an AI Abs Filter task
      description: 'AI tasks are asynchronous. Prefer webhook-based completion handling when the feature supports webhooks. Configure your webhook endpoint, verify webhook signatures, and use the received `task_id` to query the task result after a `success` or `error` notification. See the webhook integration guide for setup and verification details.


        If webhooks are not supported for the feature, or if your integration cannot use webhooks, implement polling. After starting an AI task, keep polling the task status endpoint at the given `polling_interval` until the task status is either `success` or `error`.


        Do not stop polling a running task for longer than the allowed polling window. If the task is not polled in time, the task may expire; a later status check can return `InvalidTaskId` even if processing finished, and the consumed units may still be charged.'
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/BasicRunTaskV2'
              - type: object
                properties:
                  mode:
                    type: string
                    description: 'The abs effect user to choose.

                      '
                    default: Six-pack
                    example: Six-pack
                    enum:
                    - Six-pack
                    - Vest-line
                  intensity:
                    type: integer
                    description: 'The intensity the users wish to adjust their abs, 2 is the stronger intensity.

                      '
                    default: 1
                    example: 1
                    enum:
                    - 1
                    - 2
      responses:
        '200':
          description: Successful execution of the task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicRunTaskResponseV2'
        '400':
          description: Failed execution of task
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/RunError'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      operationId: postS2sV20TaskAbsShape
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/abs-shape/{task_id}:
    get:
      summary: Check the status of a AI Abs Filter task
      x-display-name: AI Abs Filter
      x-engine-version: V1.0
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
          example: grH0CvsgXuAIHLUzD0V1Ol34hoet3R1tvdbtiVHrDb6_UqCLKIejAIajwxrhOAfe
        description: ID of task to check
      responses:
        '200':
          description: Successful check of the task status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatusResponseV2'
        '400':
          $ref: '#/components/responses/InvalidTaskId'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '500':
          $ref: '#/components/responses/TaskTimeout'
      operationId: getS2sV20TaskAbsShapeByTaskId
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/aging:
    post:
      summary: Run a AI Aging Generator task
      description: This endpoint initiates the aging generation process. You must provide a source file (via URL or File ID). The task will be processed asynchronously, and you can check its status using the task_id returned in this response.
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/BasicRunTaskV2'
      responses:
        '200':
          description: Successful execution of the AI Aging Simulation task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicRunTaskResponseV2'
        '400':
          description: Failed execution of task
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/RunError'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      operationId: postS2sV20TaskAging
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/aging/{task_id}:
    get:
      summary: Check the status of a AI Aging Generator task
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
          example: grH0CvsgXuAIHLUzD0V1Ol34hoet3R1tvdbtiVHrDb6_UqCLKIejAIajwxrhOAfe
        description: ID of task to check
      responses:
        '200':
          description: Successful check of the task status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgingResponseV2'
        '400':
          $ref: '#/components/responses/InvalidTaskId'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '500':
          $ref: '#/components/responses/TaskTimeout'
      operationId: getS2sV20TaskAgingByTaskId
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/sod:
    post:
      summary: Run an AI Photo Background Removal task
      description: This endpoint initiates the background removal process. You must provide a file ID obtained from the file upload API. The task will be processed asynchronously, and you can check its status using the task_id returned in this response.
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BasicRunTaskV2_2'
      responses:
        '200':
          description: Successful execution of the task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicRunTaskResponseV2'
        '400':
          description: Failed execution of task
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/responses/RunError'
        '401':
          $ref: '#/components/responses/InvalidApiKey_2'
        '429':
          $ref: '#/components/responses/TooManyRequests_2'
      operationId: postS2sV20TaskSod
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/sod/{task_id}:
    get:
      summary: Check an AI Photo Background Removal task status
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
          example: grH0CvsgXuAIHLUzD0V1Ol34hoet3R1tvdbtiVHrDb6_UqCLKIejAIajwxrhOAfe
        description: ID of task to check
      responses:
        '200':
          description: Successful check of the task status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatusResponseV2_2'
        '400':
          $ref: '#/components/responses/InvalidTaskId_2'
        '401':
          $ref: '#/components/responses/InvalidApiKey_2'
        '500':
          $ref: '#/components/responses/TaskTimeout_2'
      operationId: getS2sV20TaskSodByTaskId
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/template/hair-bang:
    get:
      summary: List predefined templates
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      parameters:
      - name: page_size
        in: query
        schema:
          type: integer
          example: 20
        description: Number of results to return in this page. Valid value should be between 1 and 20. Default 20.
      - name: starting_token
        in: query
        schema:
          type: string
          example: 73a3c9e69b89
        description: Token for current page. Start with `null` for the first page, and use `next_token` from the previous response to start next page
      responses:
        '200':
          $ref: '#/components/responses/TemplateResponse'
        '400':
          $ref: '#/components/responses/InvalidParameters'
        '401':
          $ref: '#/components/responses/InvalidApiKey_3'
      operationId: getS2sV20TaskTemplateHairBang
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/hair-bang:
    post:
      summary: Run an AI Hair Bang Generator task
      description: This endpoint initiates the hair bang generation process using a template and source image. The task will be processed asynchronously, and you can check its status using the task_id returned in this response.
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunWithSingleTemplateAndSrcUrl'
      responses:
        '200':
          description: Successful execution of the task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicRunTaskResponseV2'
        '400':
          description: Failed execution of task
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/responses/RunError'
        '401':
          $ref: '#/components/responses/InvalidApiKey_3'
        '429':
          $ref: '#/components/responses/TooManyRequests_3'
      operationId: postS2sV20TaskHairBang
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/hair-bang/{task_id}:
    get:
      summary: Check the status of a AI Hair Bang Generator task
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
          example: grH0CvsgXuAIHLUzD0V1Ol34hoet3R1tvdbtiVHrDb6_UqCLKIejAIajwxrhOAfe
        description: ID of task to check
      responses:
        '200':
          description: Successful check of the task status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatusResponseV2_3'
        '400':
          $ref: '#/components/responses/InvalidTaskId_3'
        '401':
          $ref: '#/components/responses/InvalidApiKey_3'
        '500':
          $ref: '#/components/responses/TaskTimeout_3'
      operationId: getS2sV20TaskHairBangByTaskId
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/template/beard-style:
    get:
      summary: List predefined templates
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      parameters:
      - name: page_size
        in: query
        schema:
          type: integer
          example: 20
        description: Number of results to return in this page. Valid value should be between 1 and 20. Default 20.
      - name: starting_token
        in: query
        schema:
          type: string
          example: 73a3c9e69b89
        description: Token for current page. Start with `null` for the first page, and use `next_token` from the previous response to start next page
      responses:
        '200':
          $ref: '#/components/schemas/TemplateResponse'
        '400':
          $ref: '#/components/responses/InvalidParameters_2'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
      operationId: getS2sV20TaskTemplateBeardStyle
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/beard-style:
    post:
      summary: Run an AI Beard Style Generator task
      description: 'AI tasks are asynchronous. Prefer webhook-based completion handling when the feature supports webhooks. Configure your webhook endpoint, verify webhook signatures, and use the received `task_id` to query the task result after a `success` or `error` notification. See the webhook integration guide for setup and verification details.


        If webhooks are not supported for the feature, or if your integration cannot use webhooks, implement polling. After starting an AI task, keep polling the task status endpoint at the given `polling_interval` until the task status is either `success` or `error`.


        Do not stop polling a running task for longer than the allowed polling window. If the task is not polled in time, the task may expire; a later status check can return `InvalidTaskId` even if processing finished, and the consumed units may still be charged.'
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RunWithSingleTemplateAndSrcUrl_2'
      responses:
        '200':
          description: Successful execution of the task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicRunTaskResponseV2'
        '400':
          description: Failed execution of task
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/RunError'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      operationId: postS2sV20TaskBeardStyle
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/beard-style/{task_id}:
    get:
      summary: Check the status of a AI Beard Style Generator task
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
          example: grH0CvsgXuAIHLUzD0V1Ol34hoet3R1tvdbtiVHrDb6_UqCLKIejAIajwxrhOAfe
        description: ID of task to check
      responses:
        '200':
          description: Successful check of the task status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatusResponseV2'
        '400':
          $ref: '#/components/responses/InvalidTaskId'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '500':
          $ref: '#/components/responses/TaskTimeout'
      operationId: getS2sV20TaskBeardStyleByTaskId
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/body-reshape/pre-process:
    post:
      summary: Run an AI Body Reshape detection task
      description: 'Use the pre-process task when the source image may contain more than one valid target, or when your integration needs to explicitly choose which detected target receives the effect. For single-target images, pre-process can be skipped when the feature supports a default `index` value and your application does not need manual target selection.


        The pre-process task detects candidate targets in the source image and returns their coordinates in `data.results.result`. Each item in the result array represents one detected target. Review the returned coordinates, map them to the intended face or region in the source image, and use that item''s zero-based array index as the `index` value when creating the effect task.


        For images with multiple detected faces or regions, do not rely on the default `index` value without checking the pre-process result. The effect is applied only to the target selected by `index`, so the integration must confirm the result item that corresponds to the intended target before running the effect task.


        This task is asynchronous. After creating the task, handle completion with webhook if the feature supports it, or poll the corresponding pre-process status endpoint until `data.task_status` is `success` or `error`.'
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/BasicRunTaskV2'
      responses:
        '200':
          description: Successful execution of the task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicRunTaskResponseV2'
        '400':
          description: Failed execution of task
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/RunError'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      operationId: postS2sV20TaskBodyReshapePreProcess
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/body-reshape/pre-process/{task_id}:
    get:
      summary: Check the status of a AI Body Reshape detection task
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
          example: grH0CvsgXuAIHLUzD0V1Ol34hoet3R1tvdbtiVHrDb6_UqCLKIejAIajwxrhOAfe
        description: ID of task to check
      responses:
        '200':
          description: Successful check of the task status
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/TaskStatusResponsePreProcessNoUrlBase'
                - type: object
                  properties:
                    data:
                      type: object
                      properties:
                        results:
                          type: object
                          properties:
                            timed:
                              type: number
                            result:
                              type: array
                              items:
                                type: object
                                properties:
                                  left:
                                    type: number
                                  top:
                                    type: number
                                  width:
                                    type: number
                                  height:
                                    type: number
        '400':
          $ref: '#/components/responses/InvalidTaskId'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '500':
          $ref: '#/components/responses/TaskTimeout'
      operationId: getS2sV20TaskBodyReshapePreProcessByTaskId
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/body-reshape:
    post:
      summary: Run an AI Body Reshape task
      description: 'AI tasks are asynchronous. Prefer webhook-based completion handling when the feature supports webhooks. Configure your webhook endpoint, verify webhook signatures, and use the received `task_id` to query the task result after a `success` or `error` notification. See the webhook integration guide for setup and verification details.


        If webhooks are not supported for the feature, or if your integration cannot use webhooks, implement polling. After starting an AI task, keep polling the task status endpoint at the given `polling_interval` until the task status is either `success` or `error`.


        Do not stop polling a running task for longer than the allowed polling window. If the task is not polled in time, the task may expire; a later status check can return `InvalidTaskId` even if processing finished, and the consumed units may still be charged.'
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/BasicRunTaskV2'
              - type: object
                required:
                - version
                - features
                properties:
                  version:
                    type: string
                    description: 'Version of the features specification. Defaults to `"1.0"` unless otherwise specified.

                      '
                    default: '1.0'
                    example: '1.0'
                  index:
                    type: integer
                    example: 0
                    description: The index of the person from detection task result.
                  features:
                    type: object
                    description: Cannot be all zero
                    minProperties: 1
                    properties:
                      arm:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      breast:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                        description: Applies to both sides. A per-side key (`breast_left` / `breast_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.
                      breast_left:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      breast_right:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      hip:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      hip_lift:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      leg:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      neck:
                        type: number
                        minimum: 0
                        maximum: 100
                        example: 0
                        description: Applies to both sides. A per-side key (`neck_left` / `neck_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.
                      neck_left:
                        type: number
                        minimum: 0
                        maximum: 100
                        example: 0
                      neck_right:
                        type: number
                        minimum: 0
                        maximum: 100
                        example: 0
                      shoulder:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                        description: Applies to both sides. A per-side key (`shoulder_left` / `shoulder_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.
                      shoulder_left:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      shoulder_right:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      squared_shoulder:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                        description: Applies to both sides. A per-side key (`squared_shoulder_left` / `squared_shoulder_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.
                      squared_shoulder_left:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      squared_shoulder_right:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      slim:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      taller:
                        type: number
                        minimum: 0
                        maximum: 100
                        example: 0
                      waist:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
                      belly:
                        type: number
                        minimum: -100
                        maximum: 100
                        example: 0
      responses:
        '200':
          description: Successful execution of the task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicRunTaskResponseV2'
        '400':
          description: Failed execution of task
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/RunError'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      operationId: postS2sV20TaskBodyReshape
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/body-reshape/{task_id}:
    get:
      summary: Check the status of a AI Body Reshape task
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
          example: grH0CvsgXuAIHLUzD0V1Ol34hoet3R1tvdbtiVHrDb6_UqCLKIejAIajwxrhOAfe
        description: ID of task to check
      responses:
        '200':
          description: Successful check of the task status
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/TaskStatusResponseV2'
                - type: object
                  properties:
                    data:
                      type: object
                      properties:
                        results:
                          type: object
                          properties:
                            timed:
                              type: number
                            timed_apply:
                              type: number
                            arm:
                              type: boolean
                            breast_left:
                              type: boolean
                            breast_right:
                              type: boolean
                            hip:
                              type: boolean
                            hip_lift:
                              type: boolean
                            leg:
                              type: boolean
                            neck_left:
                              type: boolean
                            neck_right:
                              type: boolean
                            shoulder_left:
                              type: boolean
                            shoulder_right:
                              type: boolean
                            squared_shoulder_left:
                              type: boolean
                            squared_shoulder_right:
                              type: boolean
                            slim:
                              type: boolean
                            taller:
                              type: boolean
                            waist:
                              type: boolean
                            belly:
                              type: boolean
        '400':
          $ref: '#/components/responses/InvalidTaskId'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '500':
          $ref: '#/components/responses/TaskTimeout'
      operationId: getS2sV20TaskBodyReshapeByTaskId
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/2d-vto/bracelet:
    post:
      summary: Run an AI 2D Virtual Try On Bracelet task
      description: This endpoint initiates the bracelet virtual try-on process. You must provide source file(s) and reference image(s) (via URL or File ID), along with specific parameters for alignment and shadowing. The task will be processed asynchronously, and you can check its status using the task_id returned in this response.
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BraceletRunTaskV2'
      responses:
        '200':
          description: Successful execution of the task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicRunTaskResponseV2'
        '400':
          description: Failed execution of task
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/RunError'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      operationId: postS2sV20Task2dVtoBracelet
      x-operation-id-source: derived
    servers:
    - url: https://yce-api-01.makeupar.com
  /s2s/v2.0/task/2d-vto/bracelet/{task_id}:
    get:
      summary: Check the status of a AI 2D Virtual Try On Bracelet task
      tags:
      - V1.0
      security:
      - BearerAuthenticationV2: []
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
   

# --- truncated at 32 KB (409 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/perfect-corp/refs/heads/main/openapi/perfect-corp-v1-0-api-openapi.yml