API Reference

Edit/process image (OpenAI SDK)

Process images using the OpenAI SDK client.images.edit() method. The model parameter determines which AI processing is applied. Use extra_body for model-specific fields that are not part of the standard OpenAI image edit signature.

Setup

from openai import OpenAI
client = OpenAI(api_key='sk-snap-xxx', base_url='https://api.snapedit.app/v1')

Supported Models

Removal

ModelDescriptionpromptmaskExtra paramsCredit
snapedit/remove-bgRemove backgroundnot used-optional output_type1
snapedit/remove-bg-graphicRemove background for graphicsnot used-optional output_type1
snapedit/remove-logoRemove logo (auto-detect)not usedoptionaloptional erase_mode (lite or default)3 (lite), 6 (default)
snapedit/remove-objectRemove object by masknot usedrequiredoptional erase_mode2-17
snapedit/remove-textRemove text by masknot usedrequiredoptional erase_mode2-17
snapedit/remove-wireRemove wires by masknot usedrequired-2
snapedit/remove-reflectionRemove reflectionsnot used--12
snapedit/clean-mirrorClean mirror artifactsnot used--12

Enhance & Restore Images

ModelDescriptionpromptExtra paramsCredit
snapedit/enhance-2xUpscale 2xnot used-4
snapedit/enhance-4xUpscale 4xnot used-7
snapedit/enhance-pro-2xPro upscale 2xnot used-12
snapedit/enhance-pro-4xPro upscale 4xnot used-19
snapedit/enhance-art-2xUpscale art/anime 2xnot used-2
snapedit/enhance-art-4xUpscale art/anime 4xnot used-2
snapedit/restoreRestore old photonot used-1
snapedit/restore-proRestore (Qwen AI)not used-12
snapedit/colorizeColorize B&W photonot used-1
snapedit/colorize-proColorize (Qwen AI)not used-12
snapedit/light-restoreFix lighting issuesnot used-12
snapedit/backlit-fixFix backlit photosnot used-12
snapedit/night-flashAdd flash-style lightingnot used-12

Generation from Image

ModelDescriptionpromptExtra paramsCredit
snapedit/headshotProfessional headshotoutfit/style description-12
snapedit/stickerCartoon/stickerstyle description-12
snapedit/generate-backgroundGenerate a new backgroundbackground prompt-7
snapedit/qwen-editGeneral AI editediting instructionoptional mode (editing default, inpaint with mask)12
snapedit/qwen-edit-multiMulti-image editediting instructioninput_image_1, optional input_image_2, optional mode17-22

Style-based (prompt = style_id)

ModelDescriptionpromptExtra paramsCredit
snapedit/hairstyleTransform hairstylestyle_id from list-3
snapedit/transfer-makeupApply makeup stylestyle_id from list-3
snapedit/artTransform to AI artstyle_id from list-4

Detection (returns JSON, not image)

ModelDescriptionpromptExtra paramsCredit
snapedit/detect-objectsDetect removable objectsnot used-1
snapedit/detect-textDetect text regionsnot used-1
snapedit/detect-wiresDetect wires/cablesnot used-1
snapedit/ai-detectDetect AI-generated imagenot used-2

Utility

ModelDescriptionpromptmaskExtra paramsCredit
snapedit/retouch-skinSkin retouchingnot used--2
snapedit/outpaintExpand imagenot usedrequired-8
snapedit/pose-suggestPose suggestionnot used-num_models, gender9

Examples

Remove background:

result = client.images.edit(
    model='snapedit/remove-bg',
    image=open('photo.png', 'rb'),
    prompt=''
)
print(result.data[0].url)

Enhance 4x:

result = client.images.edit(
    model='snapedit/enhance-4x',
    image=open('photo.png', 'rb'),
    prompt=''
)

Headshot generation:

result = client.images.edit(
    model='snapedit/headshot',
    image=open('face.png', 'rb'),
    prompt='Professional studio headshot with soft lighting'
)

Hairstyle (prompt = style_id):

result = client.images.edit(
    model='snapedit/hairstyle',
    image=open('face.png', 'rb'),
    prompt='bobcut'  # style_id from styles list
)

Pose suggest (extra params via extra_body):

result = client.images.edit(
    model='snapedit/pose-suggest',
    image=open('scene.png', 'rb'),
    prompt='',
    extra_body={'num_models': 3, 'gender': 'female'}
)

Multi-image edit (extra images via extra_body):

result = client.images.edit(
    model='snapedit/qwen-edit-multi',
    image=open('img1.png', 'rb'),
    prompt='Combine the two people in a park',
    extra_body={'input_image_1': 'https://example.com/img2.png'}
)

Detect objects (returns JSON):

result = client.images.edit(
    model='snapedit/detect-objects',
    image=open('photo.png', 'rb'),
    prompt=''
)
print(result.model_dump())  # raw detection JSON
post/v1/images/edits (OpenAI SDK)

AuthorizationThis endpoint requires an API key. Pass it in the api-key header on every request. Learn more

Parameters

NameTypeStatusDescription
model
stringRequiredModel to use. See supported models table above.
image
fileRequiredInput image file.
prompt
stringOptionalDepends on model: editing instruction, style_id, or empty string. See table above.
mask
fileOptionalMask image. Required for: remove-object, remove-text, remove-wire, outpaint.
input_image_1
fileOptionalSecond input image for snapedit/qwen-edit-multi.
input_image_2
fileOptionalOptional third input image for snapedit/qwen-edit-multi.
output_type
stringOptionalRemove Background output type for snapedit/remove-bg and snapedit/remove-bg-graphic.
foregroundmask
(default: foreground)
erase_mode
stringOptionalQuality mode. For snapedit/remove-logo, use lite or default. For snapedit/remove-object and snapedit/remove-text, use normal, super, or ultra.
litedefaultnormalsuperultra
mode
stringOptionalEdit mode for snapedit/qwen-edit and snapedit/qwen-edit-multi.
editinginpaint
(default: editing)

Responses

Image processed successfully (or detection JSON for detect-* models)SingleImageResponse

FieldTypeDescription
createdintegerUnix timestamp of when the response was created
dataobject[]
urlstringURL to download the result image
curl -X POST "https://api.snapedit.app/v1/images/edits (OpenAI SDK)" \
  -H "api-key: YOUR_API_KEY" \
  -F "model=value" \
  -F "image=@./image.jpg" \
  -F "mask=@./image.png" \
  -F "input_image_1=@./image.jpg" \
  -F "input_image_2=@./image.jpg" \
  -F "output_type=foreground" \
  -F "erase_mode=lite" \
  -F "mode=editing"
Response
{
  "created": 1745827200,
  "data": [
    {
      "url": "https://outputs.snapedit.app/outputs/abc123.png"
    }
  ]
}