Developer Update: more consistency, fewer edge cases

A set of platform updates for engineers integrating Picsart Creative APIs. This covers the new Prefer header for sync and async execution, upcoming deprecations with a June 1, 2026 deadline, cleaner GenAI status handling, and simpler JSON request support for URL-based inputs.

Aram Mkhitaryan
4 minutes read
Published 09.04.26
Updated 130 days ago
Developer Updates
Aram Mkhitaryan
4 minutes read
Published 09.04.26
Updated 130 days ago
Table of Contents
array(3) { ["Any questions?"]=> array(1) { [0]=> array(8) { ["link_category"]=> string(14) "Any questions?" ["title"]=> string(17) "Contact an expert" ["link"]=> string(45) "https://help.picsart.io/hc/en-us/requests/new" ["open_in_new_window"]=> string(0) "" ["_generated_id"]=> string(7) "88ea327" ["item_repeater_class"]=> string(31) "elementor-repeater-item-88ea327" ["item_index"]=> int(1) ["item_id"]=> string(55) "uc_pa_blog_single_any_questions_elementor_64487c2_item1" } } ["Related"]=> array(2) { [0]=> array(8) { ["link_category"]=> string(7) "Related" ["title"]=> string(21) "Creative API Releases" ["link"]=> string(51) "https://docs.picsart.io/docs/creative-apis-releases" ["open_in_new_window"]=> string(3) "yes" ["_generated_id"]=> string(7) "df8dc09" ["item_repeater_class"]=> string(31) "elementor-repeater-item-df8dc09" ["item_index"]=> int(2) ["item_id"]=> string(55) "uc_pa_blog_single_any_questions_elementor_64487c2_item2" } [1]=> array(8) { ["link_category"]=> string(7) "Related" ["title"]=> string(31) "Photo and Video Editor Releases" ["link"]=> string(56) "https://docs.picsart.io/docs/photo-video-editor-releases" ["open_in_new_window"]=> string(3) "yes" ["_generated_id"]=> string(7) "5cbde13" ["item_repeater_class"]=> string(31) "elementor-repeater-item-5cbde13" ["item_index"]=> int(3) ["item_id"]=> string(55) "uc_pa_blog_single_any_questions_elementor_64487c2_item3" } } ["Read the documentation"]=> array(2) { [0]=> array(8) { ["link_category"]=> string(22) "Read the documentation" ["title"]=> string(10) "User guide" ["link"]=> string(29) "https://docs.picsart.io/docs/" ["open_in_new_window"]=> string(5) "false" ["_generated_id"]=> string(7) "e6febd5" ["item_repeater_class"]=> string(31) "elementor-repeater-item-e6febd5" ["item_index"]=> int(4) ["item_id"]=> string(55) "uc_pa_blog_single_any_questions_elementor_64487c2_item4" } [1]=> array(8) { ["link_category"]=> string(22) "Read the documentation" ["title"]=> string(13) "API reference" ["link"]=> string(34) "https://docs.picsart.io/reference/" ["open_in_new_window"]=> string(5) "false" ["_generated_id"]=> string(7) "37f3d3d" ["item_repeater_class"]=> string(31) "elementor-repeater-item-37f3d3d" ["item_index"]=> int(5) ["item_id"]=> string(55) "uc_pa_blog_single_any_questions_elementor_64487c2_item5" } } }

If you integrate Picsart Creative APIs, this update is for you.

Over the last few months we have been collecting feedback from engineering teams and looking closely at where integrations get harder than they should be. The themes were consistent: standard patterns, predictable behavior, and fewer “special cases” per endpoint.

So we are making a set of platform changes that move us toward one clear goal.

One standard solution across all Creative APIs.

Below are the four updates that matter most for developers, plus what to do next.

If you are not the person coding the integration, please forward this to your engineering team.

1) Sync and async execution is moving to a standard HTTP approach

We are introducing a consistent way to control synchronous vs asynchronous execution using the standard HTTP Prefer header (RFC 7240).

This replaces the older pattern where some endpoints exposed a mode parameter.

What changes:

  • You can explicitly request async behavior with Prefer: respond-async.
  • You can request bounded waiting with Prefer: wait=<seconds> and get a clean async fallback if the result is not ready.

We recommend that teams start planning the transition now. Not every service supports this yet, but the direction is firm. We are rolling this out across services over time.

Docs: https://docs.picsart.io/docs/sync-async-execution

Quick mapping:

  • Old: mode=async → New: Prefer: respond-async
  • Old: mode=sync → New: Prefer: wait=60 (60 seconds is a practical default for sync-style behavior)

2) Deprecation deadline: _id input parameters will be removed on June 1, 2026

Historically, some endpoints accepted input resources using:

  • image (binary upload)
  • image_url
  • image_id

We are deprecating support for input parameters that end in _id. This applies broadly across Programmable Image APIs and GenAI APIs. Examples include:

  • image_id
  • reference_image_id
  • mask_id
  • and other similar *_id parameters

Deadline:

  • Support for _id input parameters will be removed on June 1, 2026.

What you should do now:

  • Audit your usage for any *_id input params.
  • Migrate to *_url inputs or binary upload inputs.

3) GenAI status values are being standardized

GenAI jobs have historically exposed a few different “in progress” states. That made status handling inconsistent across services.

We are standardizing GenAI job status values moving forward to:

  • success
  • error
  • processing

Important note:

  • processing simply means the job is accepted and still running.
  • It does not indicate whether it has started, or whether it is 10% or 60% complete.
  • This is intentional. It keeps integrations stable even when queue behavior changes.

Best practice for your code:

  • Write your switch logic around success and error.
  • Treat everything else as “keep waiting.” In the new model, that state is processing.

This avoids fragile logic that tries to infer internal progress.

4) JSON request bodies are now supported across services (plus base64 data URIs)

Historically, Programmable Image APIs used multipart/form-data so you could upload binary images directly.

That remains the right choice when you want true binary uploads.

But many integrations do not upload files at all. They pass image_url. In those cases, multipart/form-data adds complexity without value.

Update:

  • We now support application/json request bodies across services.
  • JSON requests do not support binary uploads.

Workaround option:

  • You can now embed an image directly in image_url using a base64 data URI:
    image_url: "data:image/jpeg;base64,/9j/4QAiRXhpZgAASUkqAAgAAAABABIBA..."

This is production-ready, but not yet published as a global default across every public doc page. If you use it and hit any edge cases, reach out and we will help quickly.

What you should do next

Here is the practical checklist most teams will follow:

1) Start migrating sync/async control from mode to Prefer.
2) Remove _id input parameters before June 1, 2026.
3) Update GenAI polling logic to handle only success, error, processing.
4) If your integration is URL-driven, consider switching from multipart/form-data to JSON for simpler requests.

If you have questions, reply to this email thread in your inbox, or contact support here

If you include the endpoint, headers, and a sample request body, we can confirm the best migration path quickly.


array(3) { ["Any questions?"]=> array(1) { [0]=> array(8) { ["link_category"]=> string(14) "Any questions?" ["title"]=> string(17) "Contact an expert" ["link"]=> string(45) "https://help.picsart.io/hc/en-us/requests/new" ["open_in_new_window"]=> string(5) "false" ["_generated_id"]=> string(7) "02733d7" ["item_repeater_class"]=> string(31) "elementor-repeater-item-02733d7" ["item_index"]=> int(1) ["item_id"]=> string(55) "uc_pa_blog_single_any_questions_elementor_2632bac_item1" } } ["Related"]=> array(2) { [0]=> array(8) { ["link_category"]=> string(7) "Related" ["title"]=> string(21) "Creative API Releases" ["link"]=> string(51) "https://docs.picsart.io/docs/creative-apis-releases" ["open_in_new_window"]=> string(5) "false" ["_generated_id"]=> string(7) "fb26396" ["item_repeater_class"]=> string(31) "elementor-repeater-item-fb26396" ["item_index"]=> int(2) ["item_id"]=> string(55) "uc_pa_blog_single_any_questions_elementor_2632bac_item2" } [1]=> array(8) { ["link_category"]=> string(7) "Related" ["title"]=> string(31) "Photo and Video Editor Releases" ["link"]=> string(56) "https://docs.picsart.io/docs/photo-video-editor-releases" ["open_in_new_window"]=> string(5) "false" ["_generated_id"]=> string(7) "0a5bf4e" ["item_repeater_class"]=> string(31) "elementor-repeater-item-0a5bf4e" ["item_index"]=> int(3) ["item_id"]=> string(55) "uc_pa_blog_single_any_questions_elementor_2632bac_item3" } } ["Read the documentation"]=> array(2) { [0]=> array(8) { ["link_category"]=> string(22) "Read the documentation" ["title"]=> string(10) "User guide" ["link"]=> string(29) "https://docs.picsart.io/docs/" ["open_in_new_window"]=> string(5) "false" ["_generated_id"]=> string(7) "b3fc0e7" ["item_repeater_class"]=> string(31) "elementor-repeater-item-b3fc0e7" ["item_index"]=> int(4) ["item_id"]=> string(55) "uc_pa_blog_single_any_questions_elementor_2632bac_item4" } [1]=> array(8) { ["link_category"]=> string(22) "Read the documentation" ["title"]=> string(13) "API reference" ["link"]=> string(34) "https://docs.picsart.io/reference/" ["open_in_new_window"]=> string(5) "false" ["_generated_id"]=> string(7) "397ba6f" ["item_repeater_class"]=> string(31) "elementor-repeater-item-397ba6f" ["item_index"]=> int(5) ["item_id"]=> string(55) "uc_pa_blog_single_any_questions_elementor_2632bac_item5" } } }