Convenience media upload (prefer /wp/v2/media)
const url = 'https://example.com/wp-json/wp2/media-converter/v1/media';const form = new FormData();form.append('file', 'file');
const options = {method: 'POST', headers: {'X-WP-Nonce': '<X-WP-Nonce>'}};
options.body = form;
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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=@fileConvenience 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.
Authorizations
Section titled “Authorizations”Request Body
Section titled “Request Body”object
Uploaded file (multipart).
Responses
Section titled “Responses”object
Media library attachment ID.
Field “source_url” as returned or accepted by PHP.
Field “mime_type” as returned or accepted by PHP.
Title.
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.
object
Machine-readable error or event code.
Message text (log, PIN, or password reset).
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.
object
Machine-readable error or event code.
Message text (log, PIN, or password reset).
Extra WP_Error or license payload.
object
Examplegenerated
{ "code": "example", "message": "example", "data": {}}