> ## Documentation Index
> Fetch the complete documentation index at: https://ailabtools.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Smart Beauty Async API

> Smart Beauty API retouches portraits with skin whitening, smoothing, face slimming, facial feature adjustment, and makeup effects.

## Request

* **URL**: `https://www.ailabapi.com/api/portrait/effects/smart-beauty`
* **Method**: `POST`
* **Content-Type**: `multipart/form-data`

### Image requirements

* **Image format**: `JPEG` `JPG` `BMP` `PNG`
* **Image size**: No more than 5 MB.
* **Image resolution**: Less than 4096x4096px.

### Headers

| Field              | Required | Type     | Description                                           |
| :----------------- | :------- | :------- | :---------------------------------------------------- |
| `ailabapi-api-key` | YES      | `string` | Application API KEY. [Get API KEY](/docs/get-api-key) |

### Body

| Field          | Required | Type     | Scope    | Default | Description                                                                                                                                                                                                                                                                                        |
| :------------- | :------- | :------- | :------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `task_type`    | YES      | `string` | `async`  |         | \`\`async`: Asynchronous tasks.`                                                                                                                                                                                                                                                                   |
| `image_target` | YES      | `file`   |          |         |                                                                                                                                                                                                                                                                                                    |
| `multi_face`   | NO       | `string` | ` `, `1` |         | Multiple-face beauty strategy. When set to `1`, beauty enhancement is applied to all faces (it is recommended that the number of faces in the image be less than 18, as too many faces may lead to instability). When set to any other value or not specified, only the largest face is processed. |
| `beauty_level` | NO       | `float`  | \[0, 1]  | `1`     | Beauty level.                                                                                                                                                                                                                                                                                      |

## Response

<Warning>
  **Response Field Handling Flow**

  1. **Handle `Public Response Fields`**

     Parse and validate the `Public Response Fields`, checking the status code or response message to ensure the request is successful and error-free.

  2. **Handle `Business Response Fields`**

     If the `Public Response Fields` are valid and error-free, proceed with processing the business logic in the `Business Response Fields`.
</Warning>

### Public Response Fields

<a href="/docs/response-description" target="_blank">Viewing Public Response Fields and Error Codes</a>

### Business Response Fields

| Field       | Type     | Scope   | Description                                 |
| :---------- | :------- | :------ | :------------------------------------------ |
| `task_type` | `string` | `async` | Task Type. \`\`async`: Asynchronous tasks.` |
| `task_id`   | `string` |         | Asynchronous task ID.                       |

### Response Example

```json theme={null}
{
  "request_id":     "",
  "log_id":         "",
  "error_code":     0,
  "error_msg":      "",
  "error_detail":   {
    "status_code":  200,
    "code":         "",
    "code_message": "",
    "message":      ""
  },
  "task_type":      "",
  "task_id":        ""
}
```

<Tip>
  This API is asynchronous, please keep `task_id` and call [`Querying Async Task Results`](/docs/ai-common/async-task-results/api) to get the final results.

  Asynchronous task results are valid for 24 hours. It is recommended that asynchronous task results be queried every 5 seconds.
</Tip>

## `Querying Async Task Results` Response

<Warning>
  **Response Field Handling Flow**

  1. **Handle `Public Response Fields`**

     Parse and validate the `Public Response Fields`, checking the status code or response message to ensure the request is successful and error-free.

  2. **Handle `Business Response Fields`**

     If the `Public Response Fields` are valid and error-free, proceed with processing the business logic in the `Business Response Fields`.
</Warning>

### Public Response Fields

<a href="/docs/response-description" target="_blank">Viewing Public Response Fields and Error Codes</a>

### Business Response Fields

| Field         | Type      | Scope         | Description                                                                                                              |
| :------------ | :-------- | :------------ | :----------------------------------------------------------------------------------------------------------------------- |
| `task_status` | `integer` | `0`, `1`, `2` | Asynchronous task status. ``0`: The task is queued.` ``1`: Asynchronous processing.` \`\`2`: Processing was successful.` |
| `data`        | `object`  |               | The content of the result data returned.                                                                                 |
| `image_url`   | `string`  |               | Result URL address.                                                                                                      |

<Tip>
  The URL address is a temporary address, valid for 24 hours, and will not be accessible after it expires. If you need to save the file for a long time or permanently, please visit the URL address within 24 hours and download the file to your own storage space.
</Tip>

### Response Example

```json theme={null}
{
  "error_code":     0,
  "error_msg":      "",
  "error_detail":   {
    "status_code":  200,
    "code":         "",
    "code_message": "",
    "message":      ""
  },
  "task_status":    0,
  "data":           {
    "image_url": ""
  }
}
```


## OpenAPI

````yaml POST /api/portrait/effects/smart-beauty
openapi: 3.0.0
info:
  title: AILabAPI
  description: >-
    [<b>AILabTools</b>](https://www.ailabtools.com) is an advanced tool that
    offers a vast array of simple and flexible API endpoints to suit your
    specific needs. With just one [<b>API
    KEY</b>](https://www.ailabtools.com/doc/get-api-key), you can easily call
    any of the endpoints and integrate them quickly into your application or
    workflow, allowing for smooth and efficient operations.


    [<b>AILabTools</b>](https://www.ailabtools.com) is continuously evolving,
    and you can anticipate even more API endpoints being added in the future,
    further enhancing its capabilities and usefulness for your artificial
    intelligence and machine learning requirements.
  version: 1.0.0
servers:
  - url: https://www.ailabapi.com
    description: Production server
security:
  - apiKeyAuth: []
tags:
  - name: AI IMAGE
  - name: AI IMAGE > Image Enhancement
  - name: AI IMAGE > Image Effects
  - name: AI IMAGE > Image Editing
  - name: AI IMAGE > Image Scoring
  - name: AI BACKGROUND REMOVAL
  - name: AI BACKGROUND REMOVAL > Portrait
  - name: AI BACKGROUND REMOVAL > General
  - name: AI PORTRAIT
  - name: AI PORTRAIT > Portrait Effects
  - name: AI PORTRAIT > Portrait Enhance
  - name: AI PORTRAIT > Portrait Editing
  - name: AI PORTRAIT > Portrait Analysis
  - name: AI COMMON
paths:
  /api/portrait/effects/smart-beauty:
    post:
      tags:
        - AI PORTRAIT > Portrait Effects
      summary: Smart Beauty
      description: >-
        Smart Beauty API retouches portraits with skin whitening, smoothing,
        face slimming, facial feature adjustment, and makeup effects.
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                task_type:
                  type: string
                  description: >-
                    Task Type. <li>`sync`: Synchronous tasks.</li> <li>`async`:
                    Asynchronous tasks.</li>
                  example: sync
                image_target:
                  type: string
                  format: binary
                multi_face:
                  type: string
                  description: >-
                    Multiple-face beauty strategy. When set to `1`, beauty
                    enhancement is applied to all faces (it is recommended that
                    the number of faces in the image be less than 18, as too
                    many faces may lead to instability). When set to any other
                    value or not specified, only the largest face is processed.
                beauty_level:
                  type: string
                  description: Beauty level.
      responses:
        '200':
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
              examples:
                example-0:
                  summary: Sync
                  value:
                    request_id: ''
                    log_id: ''
                    error_code: 0
                    error_code_str: ''
                    error_msg: ''
                    error_detail:
                      status_code: 200
                      code: ''
                      code_message: ''
                      message: ''
                    task_type: sync
                    result: ''
                example-1:
                  summary: Async
                  value:
                    request_id: ''
                    log_id: ''
                    error_code: 0
                    error_code_str: ''
                    error_msg: ''
                    error_detail:
                      status_code: 200
                      code: ''
                      code_message: ''
                      message: ''
                    task_type: async
                    task_id: ''
          description: Success
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: ailabapi-api-key
      description: API Key for authentication

````