apyhub
DEVELOPER TOOLS · FILE CONVERSION

Convert XML to JSON API

What it does

XML to JSON Converter turns XML into JSON from a raw XML body, an uploaded XML file, or a publicly accessible XML URL. You can get the converted result inline, as a downloadable JSON file, or as a pre-signed S3 URL depending on how your workflow needs to consume the output.

Send raw XML in the request body with xml-raw-json-raw, or upload a file with xml-file-json-raw. If your source lives elsewhere, use the URL-based endpoints and pass the XML file location in url. For file and URL workflows, you can also set an output query value to name the generated JSON file.

The inline response variants return a JSON object with the converted data. The file variants return downloadable JSON output. The S3 URL variants return a data field containing a pre-signed URL valid for 5 minutes.

Use XML to JSON Converter when you need to normalize XML feeds, move XML content into a JavaScript backend, or hand off XML exports to systems that expect JSON instead of nested markup.

▣ ENDPOINT 01 / 09
POST
Convert XML at URL → S3 signed URL
https://api.eu.apyverse.com/apyhub/xml-to-json/xml-url-json-url

QUICKSTART

GUIDE

Quickstart

Convert an XML file from a public URL into JSON and save the result under a custom output name.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-json/xml-url-json-url?output=my-converted-data" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://assets.apyhub.com/samples/sample.xml"}'

What you'll get back

Returns a JSON object with a data string field containing a pre-signed S3 URL for the converted JSON file, valid for 5 minutes.

{
  "data": "https://s3.amazonaws.com/bucket/uuid_sample-output.json?..."
}
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
Publicly accessible URL pointing to an XML file.

About this endpoint

What it does

Converts the XML document available at a public URL into JSON and returns a pre-signed S3 URL for the converted file. The request supplies the source XML URL, and the response contains a JSON data field with the download URL.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput file name prefix. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
urlStringYesPublicly accessible URL pointing to an XML file. Format: URI.

Response

Returns a JSON object with a data string field containing a pre-signed S3 URL to the converted JSON file. The URL is valid for 5 minutes.

ParameterTypeMandatoryDescription
dataStringYesPre-signed S3 URL pointing to the converted JSON file. Format: URI.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 09
POST
Convert uploaded XML file → inline JSON
https://api.eu.apyverse.com/apyhub/xml-to-json/xml-file-json-raw

QUICKSTART

GUIDE

Quickstart

Upload an XML file to convert it into raw JSON.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-json/xml-file-json-raw" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/file.xml"

What you'll get back

Returns a JSON object. The response schema does not declare any specific top-level fields, so the exact shape may vary.

{}
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*
XML file to convert. Accepted MIME types: `text/xml`, `application/xml`, `text/plain`, `application/octet-stream`, `binary/octet-stream`.

About this endpoint

What it does

Converts an uploaded XML file into JSON and returns the result inline. The request sends a single file upload, and the response schema is a JSON object with unspecified properties.

Request Body

ParameterTypeMandatoryDescription
fileStringYesXML file to convert. Accepted MIME types: text/xml, application/xml, text/plain, application/octet-stream, binary/octet-stream.

Response

Returns a JSON object with additional properties allowed; the schema does not declare a fixed set of top-level fields. The success response shape is not further specified in the schema.

ParameterTypeMandatoryDescription

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ ENDPOINT 03 / 09
POST
Convert uploaded XML file → S3 signed URL
https://api.eu.apyverse.com/apyhub/xml-to-json/xml-file-json-url

QUICKSTART

GUIDE

Quickstart

Upload an XML file to convert it into JSON and receive a pre-signed download URL.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-json/xml-file-json-url?output=my-converted-data" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/file.xml"

What you'll get back

Returns a JSON object with a data string field containing a pre-signed S3 URL for the converted JSON file.

{
  "data": "https://s3.amazonaws.com/bucket/uuid_sample-output.json?..."
}
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*
XML file to convert. Accepted MIME types: `text/xml`, `application/xml`, `text/plain`, `application/octet-stream`, `binary/octet-stream`.

About this endpoint

What it does

Converts an uploaded XML file into JSON and returns a pre-signed S3 URL for the generated JSON file. The request uploads the XML file in the body and can optionally include an output query parameter to influence the output name.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput name used in the generated file name. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
fileStringYesXML file to convert. Accepted MIME types: text/xml, application/xml, text/plain, application/octet-stream, binary/octet-stream.

Response

Returns a JSON object with a data string field formatted as a URI. The data value is a pre-signed S3 URL pointing to the converted JSON file and is valid for 5 minutes.

ParameterTypeMandatoryDescription
dataStringYesPre-signed S3 URL pointing to the converted JSON file (valid for 5 minutes).

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ ENDPOINT 04 / 09
POST
Convert raw XML body → inline JSON
https://api.eu.apyverse.com/apyhub/xml-to-json/xml-raw-json-raw

QUICKSTART

GUIDE

Quickstart

Send your XML as the raw request body to convert it to JSON.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-json/xml-raw-json-raw" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/xml" \
  --data '<root><name>Alice</name></root>'

What you'll get back

Returns a JSON object with additional properties; the exact fields depend on the XML content and conversion result.

{
  "name": "Alice"
}
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Converts a raw XML request body into JSON. The endpoint accepts the XML as a string in the request body and returns a JSON object, but the response schema does not yet define any concrete fields.

Request Body

ParameterTypeMandatoryDescription
bodyStringYesRaw XML content to convert to JSON.

Response

The endpoint returns a JSON object, but the output schema does not define any specific top-level fields yet.

Body

Name
Type
Description
bodyREQUIRED
string
▣ ENDPOINT 05 / 09
POST
Convert raw XML body → downloadable JSON file
https://api.eu.apyverse.com/apyhub/xml-to-json/xml-raw-json-file

QUICKSTART

GUIDE

Quickstart

Send the XML payload in the request body and get back a downloadable JSON file with the converted data.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-json/xml-raw-json-file?output=sample-output" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/xml" \
  --data '<root><item>Hello</item></root>'

What you'll get back

Returns a binary JSON file (format: binary) containing the converted data.

<downloadable JSON file>
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Converts a raw XML request body into a downloadable JSON file. The request sends XML as a string in the body, and the response is a binary JSON file.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoDefault: sample-output. Used as the output name.

Request Body

ParameterTypeMandatoryDescription
bodyStringYesRaw XML content to convert into JSON.

Response

Returns a binary response containing a downloadable JSON file with the converted data.

ParameterTypeMandatoryDescription
binaryStringYesDownloadable JSON file containing the converted data.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
string
▣ ENDPOINT 06 / 09
POST
Convert XML at URL → inline JSON
https://api.eu.apyverse.com/apyhub/xml-to-json/xml-url-json-raw

QUICKSTART

GUIDE

Quickstart

Convert an XML file from a public URL into JSON by sending the file URL in the request body.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-json/xml-url-json-raw" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://assets.apyhub.com/samples/sample.xml"}'

What you'll get back

Returns a JSON object with additional properties in the response body. The schema does not declare any fixed top-level fields, so the exact JSON shape may vary.

{
  "any": "value"
}
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
Publicly accessible URL pointing to an XML file.

About this endpoint

What it does

Converts the XML file available at the provided URL into JSON and returns the result. The request body must include a url pointing to a publicly accessible XML file.

Request Body

ParameterTypeMandatoryDescription
urlStringYesPublicly accessible URL pointing to an XML file. Must be a valid URI.

Response

The endpoint returns a JSON object, but the output schema does not define any specific top-level fields. The response shape is not yet captured in the schema.

ParameterTypeMandatoryDescription

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 07 / 09
POST
Convert XML at URL → downloadable JSON file
https://api.eu.apyverse.com/apyhub/xml-to-json/xml-url-json-file

QUICKSTART

GUIDE

Quickstart

Convert a public XML file URL into a downloadable JSON file.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-json/xml-url-json-file?output=my-converted-data" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://assets.apyhub.com/samples/sample.xml"}'

What you'll get back

Returns a downloadable JSON file as the response body. The output schema is a binary file (string with format: "binary"), so the API returns the converted JSON file content directly.

(binary file)
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
Publicly accessible URL pointing to an XML file.

About this endpoint

What it does

Converts the XML file available at a public URL into a downloadable JSON file. The request sends the source XML URL in the body and can optionally set the output name in the query string.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput file name. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
urlStringYesPublicly accessible URL pointing to an XML file. Format: URI.

Response

Returns a downloadable JSON file as a binary response. The output is a single binary file containing the converted data.

ParameterTypeMandatoryDescription
binaryStringYesDownloadable JSON file containing the converted data.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 08 / 09
POST
Convert uploaded XML file → downloadable JSON file
https://api.eu.apyverse.com/apyhub/xml-to-json/xml-file-json-file

QUICKSTART

GUIDE

Quickstart

Convert an XML file into a downloadable JSON file.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-json/xml-file-json-file" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/file.xml"

What you'll get back

Returns a binary JSON file (format: binary) containing the converted data.

<downloaded file>
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*
XML file to convert. Accepted MIME types: `text/xml`, `application/xml`, `text/plain`, `application/octet-stream`, `binary/octet-stream`.

About this endpoint

What it does

Converts an uploaded XML file into a downloadable JSON file. The request sends the XML file in the body, and the response returns a binary file containing the converted data.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoDefault: sample-output. Example: my-converted-data.

Request Body

ParameterTypeMandatoryDescription
fileStringYesXML file to convert. Accepted MIME types: text/xml, application/xml, text/plain, application/octet-stream, binary/octet-stream.

Response

Returns a binary file containing the converted JSON data. The success response is a downloadable JSON file, represented as a string with binary format.

ParameterTypeMandatoryDescription
binary stringStringYesDownloadable JSON file containing the converted data.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ ENDPOINT 09 / 09
POST
Convert raw XML body → S3 signed URL
https://api.eu.apyverse.com/apyhub/xml-to-json/xml-raw-json-url

QUICKSTART

GUIDE

Quickstart

Send the XML content in the request body to convert it to JSON and get back a pre-signed download URL.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-json/xml-raw-json-url" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/xml" \
  --data '<root><name>Example</name></root>'

What you'll get back

Returns a JSON object with a data string field containing a pre-signed S3 URL for the converted JSON file, valid for 5 minutes.

{
  "data": "https://s3.amazonaws.com/bucket/uuid_sample-output.json?..."
}
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Converts a raw XML request body into JSON and returns a pre-signed S3 URL for the generated JSON file. The output query parameter controls the output name used for the converted file.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput name for the converted file. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
bodyStringYesRaw XML content to convert.

Response

Returns a JSON object with a data string field containing a URI to the converted JSON file on S3. The URL is pre-signed and valid for 5 minutes.

ParameterTypeMandatoryDescription
dataStringYesPre-signed S3 URL pointing to the converted JSON file. Format: URI.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
string
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.