---
title: "Create an editing job"
method: POST
path: "/editing-jobs"
tags: ["Editing Jobs"]
---

# Create an editing job

`POST /editing-jobs`

## Request

- Base URL: `https://api.snappr.com`
- URL: `https://api.snappr.com/editing-jobs`
- Auth: HTTP bearer

Creates an editing job. There are two ways to create one:

1. Provide the source `images`.
2. Set `images` to `null` and provide `uploader_firstname` and `uploader_email`. Snappr contacts
   the third-party uploader to collect the images.

## Headers

- `accept-version` string

## Request body

- EditingJobCreate
  - `title` string: Custom editing job title.
  - `type` string, required: Editing job type `name` (see `listEditingJobTypes`), e.g. `food`.
  - `preset_id` string, uuid, required: Preset `uid` (see `listPresets`).
  - `internal_id` string: Your own identifier, for matching the job with your data.
  - `images` object[], nullable: Source images. Set to `null` to have a third-party uploader provide them, in which case `uploader_firstname` and `uploader_email` are required.
    - `file_name` string
    - `url_source` string, uri, required
  - `uploader_firstname` string
  - `uploader_surname` string
  - `uploader_email` string, email
  - `uploader_mobilephone` string
  - `uploader_company` string
  - `min_photo_number` integer: Minimum number of photos the third-party uploader must upload.
  - `max_photo_number` integer: Maximum number of photos the third-party uploader may upload. Must be greater than `min_photo_number`.

## Response `201`

Editing job created. Credits are charged after the response. If `images` were sent in the body and the account doesn't have enough credits, the job's `status` becomes `failed`. If `images` was `null`, the job stays `pending_upload` until it can be paid.

- EditingJob
  - `uid` string, uuid, required
  - `title` string, nullable
  - `status` string, required: Editing job status, e.g. `creating`, `pending_upload`, `editing`, `completed`, `failed`.
  - `type` string, required
  - `credits` number, nullable: Credits charged, once paid.
  - `preset_id` string, uuid, nullable
  - `uploader_firstname` string, nullable
  - `uploader_surname` string, nullable
  - `uploader_email` string, nullable
  - `uploader_mobilephone` string, nullable
  - `uploader_company` string, nullable
  - `min_photo_number` integer, nullable
  - `max_photo_number` integer, nullable
  - `internal_id` string, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400`: The request was invalid, or could not be fulfilled (validation failure, no coverage, no availability, location outside your region).
- `401`: The API key is missing or invalid, or its user is not an admin of the account.
- `429`: Rate limit exceeded (1,000 requests per minute per API key).
- `500`: Unexpected server error. Try again later.

---

[API](https://skmtc.dev/snappr/apis/snappr-api.md) - [All operations](https://skmtc.dev/snappr/apis/snappr-api/llms.txt) - [OpenAPI document](https://skmtc.dev/snappr/apis/snappr-api/revisions/dd0648363a82?raw)
