Skip to content

Convenience media upload (prefer /wp/v2/media)

POST
/wp-json/wp2/media-converter/v1/media
curl --request POST \
--url https://example.com/wp-json/wp2/media-converter/v1/media \
--header 'Content-Type: multipart/form-data' \
--header 'X-WP-Nonce: <X-WP-Nonce>' \
--form file=@file

Convenience upload into the WordPress media library. Prefer core POST /wp/v2/media for ordinary attachments; this route is a converter shortcut. Returns 201 with attachment_id.

Media typemultipart/form-data
object
file

Uploaded file (multipart).

string format: binary
Media typeapplication/json
object
attachment_id

Media library attachment ID.

integer
source_url

Field “source_url” as returned or accepted by PHP.

string format: uri
mime_type

Field “mime_type” as returned or accepted by PHP.

string
title

Title.

string
Examplegenerated
{
"attachment_id": 1,
"source_url": "https://example.com",
"mime_type": "example",
"title": "example"
}

Not authenticated. WordPress REST: rest_not_logged_in / rest_forbidden. Use cookie + X-WP-Nonce or Application Password.

Media typeapplication/json
object
code

Machine-readable error or event code.

string
message

Message text (log, PIN, or password reset).

string
data

Extra WP_Error or license payload.

object
Examplegenerated
{
"code": "example",
"message": "example",
"data": {}
}

Insufficient capability or invalid REST nonce. WordPress REST: rest_forbidden / rest_cookie_invalid_nonce.

Media typeapplication/json
object
code

Machine-readable error or event code.

string
message

Message text (log, PIN, or password reset).

string
data

Extra WP_Error or license payload.

object
Examplegenerated
{
"code": "example",
"message": "example",
"data": {}
}