apyhub
DEVELOPER TOOLS · FILE CONVERSION

Convert XML to CSV API

What it does

XML to CSV Converter turns XML content into CSV output you can download, stream inline as text, or fetch from a signed URL. Send either an uploaded XML file or a raw XML body, and choose the response format that fits your workflow.

Use the file-based endpoints when you already have XML on disk: upload a file with MIME type text/xml or application/xml, then receive a downloadable CSV file or a pre-signed S3 URL. If you're working with XML text directly, post the raw body and get CSV text back, a downloadable CSV file, or a signed URL for temporary access.

This is useful when you need to flatten XML feeds into tabular data for spreadsheets, ETL jobs, analytics pipelines, or import scripts. The signed URL responses are valid for 5 minutes, which makes them practical for handing converted files off to another service without managing storage yourself.

Reference the output query field when you want to name the generated file.

▣ ENDPOINT 01 / 09
POST
Convert uploaded XML file → downloadable CSV file
https://api.eu.apyverse.com/apyhub/xml-to-csv/xml-file-csv-file

QUICKSTART

GUIDE

Quickstart

Convert one XML file into a CSV download.

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

What you'll get back

Returns a downloadable CSV file as a binary response body.

id,name
1,Sample
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. Must have MIME type `text/xml` or `application/xml`.

About this endpoint

What it does

Converts an uploaded XML file into a downloadable CSV file. You send the XML file in the request body and receive the converted CSV as a binary file in the response.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput name. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
fileStringYesXML file to convert. Must be sent as binary data and use MIME type text/xml or application/xml.

Response

Returns a downloadable CSV file as a binary response. The response schema is a single binary string representing the converted data.

ParameterTypeMandatoryDescription
dataStringYesBinary CSV 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 02 / 09
POST
Convert raw XML body → inline CSV text
https://api.eu.apyverse.com/apyhub/xml-to-csv/xml-raw-csv-raw

QUICKSTART

GUIDE

Quickstart

Convert raw XML into CSV with a simple POST request containing your XML in the body.

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

What you'll get back

Returns a plain string containing the CSV output.

name,price
Apple,1.25
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 the raw XML request body into CSV text and returns the CSV as a plain string response.

Request Body

ParameterTypeMandatoryDescription
bodyStringYesRaw XML text to convert into CSV.

Response

Returns a plain string containing the CSV output.

ParameterTypeMandatoryDescription
valueStringYesThe generated CSV text.

Body

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

QUICKSTART

GUIDE

Quickstart

Convert raw XML into a downloadable CSV file, with the output format selected in the query string.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-csv/xml-raw-csv-file?output=my-converted-data" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/xml" \
  --data '<root><item><name>Apple</name><price>1.99</price></item></root>'

What you'll get back

Returns a binary CSV file (string with format: binary) containing the converted data.

name,price
Apple,1.99
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 CSV 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 downloadable CSV file as a binary response. The success response is a binary payload containing the converted data.

ParameterTypeMandatoryDescription
responseStringYesBinary CSV file containing converted data.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
string
▣ ENDPOINT 04 / 09
POST
Convert raw XML body → S3 signed URL
https://api.eu.apyverse.com/apyhub/xml-to-csv/xml-raw-csv-url

QUICKSTART

GUIDE

Quickstart

Send your XML in the request body to convert it to a CSV file URL.

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

What you'll get back

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

{
  "data": "https://s3.amazonaws.com/bucket/uuid_sample-output.csv?..."
}
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 payload into a CSV file and returns a pre-signed S3 URL where the converted file can be downloaded.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput file name hint. 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 generated CSV file. The data URL is a pre-signed S3 link and is valid for 5 minutes.

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

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

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

QUICKSTART

GUIDE

Quickstart

Convert an XML file from a public URL into raw CSV output with one request.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-csv/xml-url-csv-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 string containing the CSV result.

name,age
John,30
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 an XML file available at a public URL into CSV text and returns the CSV inline in the response body. You provide the XML file URL, and the endpoint returns a string containing the converted CSV.

Request Body

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

Response

Returns a plain string containing the CSV output generated from the XML source.

ParameterTypeMandatoryDescription
string responseStringYesThe converted CSV text returned inline in the response body.

Body

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

QUICKSTART

GUIDE

Quickstart

Convert an XML file from a public URL into a CSV download by passing the XML file URL.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-csv/xml-url-csv-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 CSV file as a binary response.

...binary CSV data...
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 an XML file fetched from a public URL into a downloadable CSV file. You send the XML file URL in the request body, and the response is a binary CSV file.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoBase name for the generated CSV file. Default: sample-output.

Request Body

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

Response

Returns a binary downloadable CSV file. The response body is the converted CSV content, not a JSON object.

ParameterTypeMandatoryDescription
binaryStringYesDownloadable CSV file containing the converted data.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

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

QUICKSTART

GUIDE

Quickstart

Convert an XML file from a public URL into a CSV file and return a downloadable link.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-csv/xml-url-csv-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 — a pre-signed S3 URL pointing to the converted CSV file, valid for 5 minutes.

{
  "data": "https://s3.amazonaws.com/bucket/uuid_sample-output.csv?..."
}
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 at a publicly accessible URL into a CSV file and returns a pre-signed S3 URL for the generated CSV. The request accepts the source XML URL in the body and an optional output name in the query string.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoName used for the generated output file. Default: sample-output.

Request Body

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

Response

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

ParameterTypeMandatoryDescription
dataStringYesPre-signed S3 URL pointing to the converted CSV file. Must be a URI.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

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

QUICKSTART

GUIDE

Quickstart

Upload an XML file to convert it to CSV.

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

What you'll get back

Returns a plain string containing the CSV output.

<csv data>
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. Must have MIME type `text/xml` or `application/xml`.

About this endpoint

What it does

Converts an uploaded XML file into CSV text and returns the CSV as the response body.

Request Body

ParameterTypeMandatoryDescription
fileStringYesXML file to convert. Must have MIME type text/xml or application/xml. Format: binary upload.

Response

Returns a plain string containing the generated CSV text. The success response body is the CSV content itself; the schema does not define a JSON wrapper or additional fields.

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 uploaded XML file → S3 signed URL
https://api.eu.apyverse.com/apyhub/xml-to-csv/xml-file-csv-url

QUICKSTART

GUIDE

Quickstart

Upload an XML file to convert it to CSV and get back a pre-signed download URL.

curl -X POST "https://api.eu.apyverse.com/apyhub/xml-to-csv/xml-file-csv-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 CSV file, valid for 5 minutes.

{
  "data": "https://s3.amazonaws.com/bucket/uuid_sample-output.csv?..."
}
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. Must have MIME type `text/xml` or `application/xml`.

About this endpoint

What it does

Converts an uploaded XML file into CSV and returns a pre-signed S3 URL for downloading the converted file. The optional output query parameter lets you influence the generated CSV filename.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput filename stem used in the generated CSV URL.<br>Default: sample-output.<br>Example: my-converted-data

Request Body

ParameterTypeMandatoryDescription
fileStringYesXML file to convert. Must be uploaded as binary and have MIME type text/xml or application/xml.

Response

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

ParameterTypeMandatoryDescription
dataStringYesPre-signed S3 URL pointing to the converted CSV file.

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.

▣ 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.