# Welcome

Welcome to the **Creative API documentation** — built for developers who want to power image and video transformations used on [nudify.me](https://www.nudify.me).

Our vision is to fulfill human desires by using cutting-edge technology to transform photos and videos into realistic nudes. Our journey began with a simple idea - to create a tool that seamlessly combines advanced artificial intelligence with an intuitive, user-friendly design. Today, we are proud to be realizing this vision.

### 🔑 API Key

All endpoints require an API key. You can get one after creating an account [here](https://www.deepixels.co/). Include it in the `x-api-key` header for every request.

### ⌛ File Expiry

⚠️ **Note:** All media files from each job (including input and result URLs) are temporary and will only be available for **1 hour** after creation. Please download and store them if needed.

### 💳 **Need credits?**

You can purchase API credits [here](https://www.deepixels.co/).

### 🛠️ Support

Need help? Contact us at <me@nudify.me>


# Pricing

<table><thead><tr><th width="543">API Name</th><th>Pricing</th></tr></thead><tbody><tr><td>Pro Nudification</td><td>0.08 / image</td></tr><tr><td>Instant Nudification</td><td>0.15 / image</td></tr><tr><td>Image Faceswap</td><td>0.02 / image</td></tr><tr><td>Image Faceswap Advance (for partially hidden faces)</td><td>0.04 / image</td></tr><tr><td>Video Facewap - up to 60s</td><td>0.10 / second</td></tr><tr><td>NSFW Video Generation - Rapid - SD - 5s</td><td>0.20 / video</td></tr><tr><td>NSFW Video Generation - Rapid - SD - 8s</td><td>0.30 / video</td></tr><tr><td>NSFW Video Generation - Rapid - HD - 5s</td><td>0.40 / video</td></tr><tr><td>NSFW Video Generation - Rapid - HD - 8s</td><td>0.60 / video</td></tr><tr><td>NSFW Video Generation - Premium - SD - 5s</td><td>1.00 / video</td></tr><tr><td>NSFW Video Generation - Premium - HD - 5s</td><td>2.00 / video</td></tr></tbody></table>


# Instant Nudification

Instant nudification automatically detecting clothing and body parts for accuracy while maintaining simplicity

Nudify transforms an input image by detecting a female subject and generating a realistic nude version of that person. The system keeps the original pose, lighting, and proportions so the result looks natural and consistent with the source photo.

The process is asynchronous. The client sends a POST request with the imageUrl of the person. The API accepts the request and returns a jobId instead of the final output.

You can retrieve the completed result either through a webhook callback or by checking the job status endpoint. When the job finishes, the response includes the generated nude image based on the submitted photo.

### Model

```
nudifyme/img/instant
```

### Pricing

```
0.15 / image
```

### Create Instant Nudification Job

Use this [endpoint](/api/generate#post-generate) to start a new instant nudification generation job.

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>input.imageUrl</td><td>The target image that's going to nudify.</td></tr></tbody></table>

#### Example Request

```javascript
const response = await fetch(
  'https://api.deepixels.co/v1/generate',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      model: 'nudifyme/img/instant',
      input: {
        imageUrl: 'https://images.pexels.com/photos/16459707/pexels-photo-16459707.jpeg',
      },
      webhook: 'YOUR_WEBHOOK_URL'
    })
  }
);

const data = await response.json();

console.log(data);
```

#### Job Creation Response

```json
{
  "jobId": "cd5167b9-a7cf-47e9-ad88-8fcb4032daf0",
  "status": "created"
}
```

### Getting Final Results

When processing is complete, the final job result can be received in either of the following ways:

* By sending a GET request to the job status [endpoint](/api/generate#get-get)
* Automatically via webhook if a webhook URL was provided during job creation

Both methods return the same response payload.

```json
{
  "jobId": "5a9d0273-5e16-488b-824f-d2bcef8632d9",
  "model": "nudifyme/img/instant",
  "status": "completed",
  "input": {
    "imageUrl": "https://images.pexels.com/photos/16459707/pexels-photo-16459707.jpeg"
  },
  "webhook": "https://webhook.site/4294bc5b-5621-4a84-85fe-1ce875495c2d",
  "output": {
    "imageUrl": [
      "https://s3.media.deepixels.co/gprod/jobs/5a9d0273-5e16-488b-824f-d2bcef8632d9.jpg"
    ]
  },
  "date": 1771002364129
}
```

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>output.imageUrl</td><td>Array of generated image URLs. Even if only one image is generated, it is returned as an array to support multi-output models in the future.</td></tr></tbody></table>


# Pro Nudification

Pro mode outputs the most realistic nudified images on the market, perfect for users seeking detailed and lifelike transformations.

The Pro Nudification API allows for the creation of AI-based jobs focused on undressing and nudification.&#x20;

### Model

```
nudifyme/img/instant
```

### Pricing

```
0.08 / image
```

### Create Instant Nudification Job

Use this [endpoint](/api/generate#post-generate) to start a new instant nudification generation job.

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>input.imageUrl</td><td>The target image that's going to nudify.</td></tr><tr><td>input.maskUrl</td><td>A black and white mask image used to control the processing area. White regions indicate the parts of the target image that should be modified, while black regions are preserved as they are.</td></tr><tr><td>input.mode</td><td>The transformation mode. Only accepts: <br>undress, lingerie, or bikini. <br><br><em>Default: "undress"</em></td></tr><tr><td>input.size</td><td>Sets the breast size for the generated result. Only accepts:  <br>auto, small, medium, or big. <br><br><em>Default: "auto"</em></td></tr><tr><td>input.shape</td><td>Controls the body shape of the generated result. Only accepts: <br>auto, slim, skinny, curvy, athletic, or chubby. <br><br><em>Default: "auto"</em></td></tr><tr><td>input.prompt</td><td>An optional custom prompt. When provided, it overrides input.mode, input.size, and input.shape.</td></tr></tbody></table>

#### Sample ImageUrl and MaskUrl

<table data-card-size="large" data-view="cards" data-full-width="true"><thead><tr><th align="center"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td align="center">Sample Image</td><td><a href="https://1100701886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdDGXabLZmd7ATtbh5Vq4%2Fuploads%2F3mYWzZeiZPYW7s9ZUqKY%2Fimage.png?alt=media&amp;token=45ab1e1e-b4a6-4d46-af69-2c2e9f7ea6e5">image.png</a></td></tr><tr><td align="center">Sample Mask</td><td><a href="https://1100701886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdDGXabLZmd7ATtbh5Vq4%2Fuploads%2FqxdKoXQe2zYUntOnNRKi%2Fmask-inverted.png?alt=media&amp;token=302e75a3-ffd8-49ea-bfcd-1c902726cb0f">mask-inverted.png</a></td></tr></tbody></table>

#### Example Request

Using the default value:

```javascript
const response = await fetch(
  'https://api.deepixels.co/v1/generate',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      model: 'nudifyme/img/pro-nudification',
      input: {
        imageUrl: 'https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/image.png',
        maskUrl: 'https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/masks.png',
      },
      webhook: 'YOUR_WEBHOOK_URL'
    })
  }
);

const data = await response.json();

console.log(data);
```

When using the bikini mode:

```javascript
const response = await fetch(
  'https://api.deepixels.co/v1/generate',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      model: 'nudifyme/img/pro-nudification',
      input: {
        imageUrl: 'https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/image.png',
        maskUrl: 'https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/masks.png',
        mode: `bikini`
      },
      webhook: 'YOUR_WEBHOOK_URL'
    })
  }
);

const data = await response.json();

console.log(data);
```

When using the custom prompt:

```javascript
const response = await fetch(
  'https://api.deepixels.co/v1/generate',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      model: 'nudifyme/img/pro-nudification',
      input: {
        imageUrl: 'https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/image.png',
        maskUrl: 'https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/masks.png',
        prompt: `your custom prompt here`
      },
      webhook: 'YOUR_WEBHOOK_URL'
    })
  }
);

const data = await response.json();

console.log(data);
```

#### Job Creation Response

```json
{
  "jobId": "cd5167b9-a7cf-47e9-ad88-8fcb4032daf0",
  "status": "created"
}
```

### Getting Final Results

When processing is complete, the final job result can be received in either of the following ways:

* By sending a GET request to the job status [endpoint](/api/generate#get-get)
* Automatically via webhook if a webhook URL was provided during job creation

Both methods return the same response payload.

```json
{
  "jobId": "cd5167b9-a7cf-47e9-ad88-8fcb4032daf0",
  "model": "nudifyme/img/pro-nudification",
  "status": "completed",
  "input": {
    "imageUrl": "https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/image.png",
    "maskUrl": "https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/masks.png",
  },
  "webhook": "YOUR_WEBHOOK_URL",
  "output": {
    "imageUrl": [
      "https://s3.media.deepixels.co/cage/files/b/0a8e439a/hR-5vVdbgaApYSuY0Qm9Y_cca64ff5427642eab37b5d3e6d44d961.jpg"
    ]
  },
  "date": 1770926680739
}
```

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>output.imageUrl</td><td>Array of generated image URLs. Even if only one image is generated, it is returned as an array to support multi-output models in the future.</td></tr></tbody></table>


# Image Faceswap

Face Swap (Image) Job Creation

Face Swap allows you to replace a face inside a target image using a source face image. The system automatically handles facial alignment, lighting matching, and blending to produce a natural looking result.

The process is asynchronous. After submitting a request, the API returns a jobId. You can then retrieve the final result using either a webhook callback or a job status request.

### Model

```
nudifyme/img/faceswap
```

### Pricing

```
0.02 / image
```

### Create Face Swap Job

Use this [endpoint](/api/generate#post-generate) to start a new face swap generation job.

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>input.imageUrl</td><td>The target image where the new face will be applied.</td></tr><tr><td>input.faceUrl</td><td>The source face image that will be extracted and blended into the target image.</td></tr><tr><td>input.advanced</td><td>Optional boolean that enables occlusion aware face swap processing. Helps when the face is partially covered by hands, hair, or objects.</td></tr></tbody></table>

#### Example Request

```javascript
const response = await fetch(
  'https://api.deepixels.co/v1/generate',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      model: 'nudifyme/img/faceswap',
      input: {
        imageUrl: 'https://images.pexels.com/photos/3756941/pexels-photo-3756941.jpeg',
        faceUrl: 'https://images.pexels.com/photos/2661256/pexels-photo-2661256.jpeg',
        advanced: true
      },
      webhook: 'YOUR_WEBHOOK_URL'
    })
  }
);

const data = await response.json();

console.log(data);
```

#### Job Creation Response

```json
{
  "jobId": "cd5167b9-a7cf-47e9-ad88-8fcb4032daf0",
  "status": "created"
}
```

### Getting Final Results

When processing is complete, the final job result can be received in either of the following ways:

* By sending a GET request to the job status [endpoint](/api/generate#get-get)
* Automatically via webhook if a webhook URL was provided during job creation

Both methods return the same response payload.

```json
{
  "jobId": "cd5167b9-a7cf-47e9-ad88-8fcb4032daf0",
  "model": "nudifyme/img/faceswap",
  "status": "completed",
  "input": {
    "imageUrl": "https://images.pexels.com/photos/3756941/pexels-photo-3756941.jpeg",
    "faceUrl": "https://images.pexels.com/photos/2661256/pexels-photo-2661256.jpeg",
    "advanced": true
  },
  "webhook": "YOUR_WEBHOOK_URL",
  "output": {
    "imageUrl": [
      "https://s3.media.deepixels.co/cage/files/b/0a8e439a/hR-5vVdbgaApYSuY0Qm9Y_cca64ff5427642eab37b5d3e6d44d961.jpg"
    ]
  },
  "date": 1770926680739
}
```

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>output.imageUrl</td><td>Array of generated image URLs. Even if only one image is generated, it is returned as an array to support multi-output models in the future.</td></tr></tbody></table>


# Video Faceswap

Face Swap (Video) Job Creation

Face Swap allows you to replace a face inside a target video using a source face image. The system automatically handles facial alignment, lighting matching, and blending to produce a natural looking result.

The process is asynchronous. After submitting a request, the API returns a jobId. You can then retrieve the final result using either a webhook callback or a job status request.

### Model

```
nudifyme/video/faceswap
```

### Pricing

```
0.10 / second
```

### Create Video Face Swap Job

Use this [endpoint](/api/generate#post-generate) to start a new face swap generation job.

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>input.videoUrl</td><td>The target video where the new face will be applied.</td></tr><tr><td>input.faceUrl</td><td>The source face image that will be extracted and blended into the target image.</td></tr><tr><td>input.advanced</td><td>Optional boolean that enables occlusion aware face swap processing. Helps when the face is partially covered by hands, hair, or objects.</td></tr></tbody></table>

#### Example Request

```javascript
const response = await fetch(
  'https://api.deepixels.co/v1/generate',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      model: 'nudifyme/video/faceswap',
      input: {
        videoUrl: 'https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/office.mp4',
        faceUrl: 'https://images.pexels.com/photos/2661256/pexels-photo-2661256.jpeg',
        advanced: true
      },
      webhook: 'YOUR_WEBHOOK_URL'
    })
  }
);

const data = await response.json();

console.log(data);
```

#### Job Creation Response

```json
{
  "jobId": "4ab2d17f-0396-4997-9c84-86c8320ccab9",
  "status": "created"
}
```

### Getting Final Results

When processing is complete, the final job result can be received in either of the following ways:

* By sending a GET request to the job status [endpoint](/api/generate#get-get)
* Automatically via webhook if a webhook URL was provided during job creation

Both methods return the same response payload.

```json
{
  "jobId": "4ab2d17f-0396-4997-9c84-86c8320ccab9",
  "model": "nudifyme/video/faceswap",
  "status": "completed",
  "input": {
    "faceUrl": "https://images.pexels.com/photos/2661256/pexels-photo-2661256.jpeg",
    "videoUrl": "https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/office.mp4",
    "advanced": true
  },
  "webhook": "https://webhook.site/79d709be-4dcf-42ff-81e4-6cbe63b16e9b",
  "output": {
    "videoUrl": "https://s3.media.deepixels.co/cage/files/b/0a8e8574/fxpShDkN_NLEpvM5vbKsk_result.mp4"
  },
  "date": 1771124345358
}
```

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>output.videoUrl</td><td>String. URL of the generated video output.</td></tr></tbody></table>


# NSFW Video Generation (Rapid)

Generate NSFW Video in Rapid Mode

NSFW AI Video Generation lets you transform your fantasies into lifelike adult videos with ease. Simply describe any scene or upload an image, and our AI will bring it to life in motion, complete with smooth, realistic animation and high detail. It’s fast, private, and designed for total creative freedom, so you can watch your ideas unfold exactly how you imagine.

### Model

```
nudifyme/video/fast
```

### Pricing

```
480p Resolution:    
    5 seconds: 0.20 / video
    8 seconds: 0.30 / video
720p Resolution:
    5 seconds: 0.40 / video
    8 seconds: 0.60 / video
```

### Create NSFW Video Generation (Premium) Job

Use this [endpoint](/api/generate#post-generate) to start a new instant nudification generation job.

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>input.prompt</td><td>Sets the resolutions for the generated result. Only accepts:  <br>480p or 720p. <br><br><em>Default: "</em>720p<em>"</em></td></tr><tr><td>input.duration</td><td>Sets the duration for the generated result. Only accepts:  <br>5s or 8s. <br><br><em>Default: "</em>8s<em>"</em></td></tr><tr><td>input.resolution</td><td>Sets the resolutions for the generated result. Only accepts:  <br>480p or 720p. <br><br><em>Default: "</em>720p<em>"</em></td></tr><tr><td>input.aspectRatio</td><td>Sets the aspect ratio for the generated result. Only accepts:  <br>16:9 or 9:16. <br><br><em>Default: "</em>16:9<em>"</em></td></tr><tr><td>input.imageUrl</td><td>Optional. If an image URL is provided, the result will be generated as a video using the image as the starting frame or visual reference.</td></tr></tbody></table>

#### Example Request

Generate a video from a text prompt:

```javascript
const response = await fetch(
  'https://api.deepixels.co/v1/generate',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      model: 'nudifyme/video/fast',
      input: {
        prompt: 'woman in naked body and high heels dances erotically. long flowing hair. shakes her hips caresses her body. her breasts shake as she dances.',
        resolution: '720p',        
        duration: '8s',
        aspectRatio: '16:9',
      },
      webhook: 'YOUR_WEBHOOK_URL'
    })
  }
);

const data = await response.json();

console.log(data);
```

Generate a video from an image:

```javascript
const response = await fetch(
  'https://api.deepixels.co/v1/generate',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      model: 'nudifyme/video/fast',
      input: {
        prompt: 'the woman open her top shirt and exposes her naked breasts to the viewer while smiling.',
        imageUrl: `https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/video.jpg`,
        resolution: '720p',
        duration: '8s',
      },
      webhook: 'YOUR_WEBHOOK_URL'
    })
  }
);

const data = await response.json();

console.log(data);
```

#### Job Creation Response

```json
{
  "jobId": "94414b42-0e44-466b-96e5-18fe7f106087",
  "status": "created"
}
```

### Getting Final Results

When processing is complete, the final job result can be received in either of the following ways:

* By sending a GET request to the job status [endpoint](/api/generate#get-get)
* Automatically via webhook if a webhook URL was provided during job creation

Both methods return the same response payload.

```json
{
  "jobId": "94414b42-0e44-466b-96e5-18fe7f106087",
  "model": "nudifyme/video/fast",
  "status": "created",
  "input": {
    "prompt": "the woman open her top shirt and exposes her naked breasts to the viewer while smiling.",
    "imageUrl": "https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/video.jpg",
    "resolution": "720p",
    "duration": "8s"
  },
  "webhook": "https://webhook.site/79d709be-4dcf-42ff-81e4-6cbe63b16e9b",
  "output": {
    "videoUrl": "https://s3.media.deepixels.co/repiza/xezq/Hh6cPzhG3bJmA56fV4zmsZcaSjxLsn4YkJW15DPyfpy8WvHWA/output.mp4"
  },
  "date": 1771127602575
}
```

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>output.videoUrl</td><td>String. URL of the generated video output.</td></tr></tbody></table>


# NSFW Video Generation (Premium)

Generate NSFW Video

NSFW AI Video Generation lets you transform your fantasies into lifelike adult videos with ease. Simply describe any scene or upload an image, and our AI will bring it to life in motion, complete with smooth, realistic animation and high detail. It’s fast, private, and designed for total creative freedom, so you can watch your ideas unfold exactly how you imagine.

### Model

```
nudifyme/video
```

### Pricing

```
480p Resolution:    1.00 / video
720p Resolution:    2.00 / video
```

### Create NSFW Video Generation (Premium) Job

Use this [endpoint](/api/generate#post-generate) to start a new instant nudification generation job.

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>input.prompt</td><td>Sets the resolutions for the generated result. Only accepts:  <br>480p or 720p. <br><br><em>Default: "</em>720p<em>"</em></td></tr><tr><td>input.resolution</td><td>Sets the resolutions for the generated result. Only accepts:  <br>480p or 720p. <br><br><em>Default: "</em>720p<em>"</em></td></tr><tr><td>input.aspectRatio</td><td>Sets the aspect ratio for the generated result. Only accepts:  <br>16:9 or 9:16. <br><br><em>Default: "</em>16:9<em>"</em></td></tr><tr><td>input.imageUrl</td><td>Optional. If an image URL is provided, the result will be generated as a video using the image as the starting frame or visual reference.</td></tr></tbody></table>

#### Example Request

Generate a video from a text prompt:

```javascript
const response = await fetch(
  'https://api.deepixels.co/v1/generate',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      model: 'nudifyme/video',
      input: {
        prompt: 'woman in naked body and high heels dances erotically. long flowing hair. shakes her hips caresses her body. her breasts shake as she dances.',
        resolution: '720p',
        aspectRatio: '16:9',
      },
      webhook: 'YOUR_WEBHOOK_URL'
    })
  }
);

const data = await response.json();

console.log(data);
```

Generate a video from an image:

```javascript
const response = await fetch(
  'https://api.deepixels.co/v1/generate',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      model: 'nudifyme/video',
      input: {
        prompt: 'the woman open her top shirt and exposes her naked breasts to the viewer while smiling.',
        imageUrl: `https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/video.jpg`,
        resolution: '720p',
      },
      webhook: 'YOUR_WEBHOOK_URL'
    })
  }
);

const data = await response.json();

console.log(data);
```

#### Job Creation Response

```json
{
  "jobId": "71027cfe-1ab4-40fb-8a5d-8e6e207dec9d",
  "status": "created"
}
```

### Getting Final Results

When processing is complete, the final job result can be received in either of the following ways:

* By sending a GET request to the job status [endpoint](/api/generate#get-get)
* Automatically via webhook if a webhook URL was provided during job creation

Both methods return the same response payload.

```json
{
  "jobId": "71027cfe-1ab4-40fb-8a5d-8e6e207dec9d",
  "model": "nudifyme/video",
  "status": "created",
  "input": {
    "prompt": "the woman open her top shirt and exposes her naked breasts to the viewer while smiling.",
    "imageUrl": "https://s3.media.deepixels.co/gprod/models/6b8a58c1-54d4-4c2a-8b28-4803898afb33/video.jpg",
    "resolution": "720p"
  },
  "webhook": "https://webhook.site/79d709be-4dcf-42ff-81e4-6cbe63b16e9b",
  "output": {
    "videoUrl": "https://s3.media.deepixels.co/gprod/jobs/71027cfe-1ab4-40fb-8a5d-8e6e207dec9d.mp4"
  },
  "date": 1771091981673
}
```

<table><thead><tr><th width="225">Input</th><th>Description</th></tr></thead><tbody><tr><td>output.videoUrl</td><td>String. URL of the generated video output.</td></tr></tbody></table>


# Generate

## Generate Content

> Create a new AI content generation job.

```json
{"openapi":"3.0.0","info":{"title":"Creative API","version":"1.0.0"},"servers":[{"url":"https://api.deepixels.co/v1","description":"Production Server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key"}}},"paths":{"/generate":{"post":{"summary":"Generate Content","description":"Create a new AI content generation job.","tags":["Generation"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"Model name to use for generation"},"input":{"type":"object","description":"Model-specific input parameters (varies by model)"},"webhook":{"type":"string","format":"uri","description":"URL where the job result will be sent upon completion"}},"required":["model","input"]}}}},"responses":{"200":{"description":"Generation job created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string","description":"Unique job identifier"},"status":{"type":"string"}}}}}},"400":{"description":"Invalid request or generation failed","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}
```

## Get Generation Job

> Retrieve details of a specific generation job by its ID.

```json
{"openapi":"3.0.0","info":{"title":"Creative API","version":"1.0.0"},"servers":[{"url":"https://api.deepixels.co/v1","description":"Production Server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key"}}},"paths":{"/get":{"get":{"summary":"Get Generation Job","description":"Retrieve details of a specific generation job by its ID.","tags":["Generation"],"parameters":[{"name":"jobId","in":"query","required":true,"schema":{"type":"string"},"description":"Unique job identifier"}],"responses":{"200":{"description":"Job details retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string","description":"Unique job identifier"},"model":{"type":"string","description":"Model name used for generation"},"status":{"type":"string","enum":["created","pending","processing","completed","failed"],"description":"Current job status"},"input":{"type":"object","description":"Input parameters used for generation"},"webhook":{"type":"string","format":"uri","description":"Webhook URL configured for this job","nullable":true},"date":{"type":"number","description":"Job creation timestamp in milliseconds since epoch"},"output":{"type":"object","description":"Output data (only available when status is completed)","nullable":true,"properties":{"imageUrl":{"type":"array","description":"List of generated image URLs (for image generation jobs)","nullable":true,"items":{"type":"string","format":"uri"}},"videoUrl":{"type":"string","format":"uri","description":"Generated video URL (for video generation jobs)","nullable":true}}}}}}}},"400":{"description":"Invalid request or missing jobId","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}
```


# Account Balance

Retrieve the authenticated user’s email and credit balance.

This endpoint returns the authenticated user’s email and available credit balance.

Authentication is required via the `x-api-key` header.\
Use this endpoint to check remaining credits before submitting jobs.

## Get Account Balance

> Retrieve the authenticated user's account details including available balance.

```json
{"openapi":"3.0.0","info":{"title":"Creative API","version":"1.0.0"},"servers":[{"url":"https://api.deepixels.co/v1","description":"Production Server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key"}}},"paths":{"/account/balance":{"get":{"summary":"Get Account Balance","description":"Retrieve the authenticated user's account details including available balance.","tags":["Account"],"responses":{"200":{"description":"User account details retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"Email"},"balance":{"type":"number","description":"Available balance"}}}}}},"400":{"description":"Invalid or missing API key","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}
```


