---
title: "Excel to XML"
method: POST
path: "/v1/xls/convert/to/xml"
tags: ["Excel Conversion"]
---

# Excel to XML

`POST /v1/xls/convert/to/xml`

Converts a xls/xlsx/csv file to xml.

## Request body

- object
  - `url` string, uri, required — URL to the source file [`url` attribute](/api/url-input-and-request-limits).
  - `worksheetindex` string, number — Set the index of the worksheet to be used. The first worksheet has index 1.
  - `name` string — File name for generated output.
  - `async` boolean — Set `async` to `true` for long processes to run in the background, API will then return a `jobId` which you can use with the [Background Job Check endpoint](/api/job-check). Also see [Webhooks & Callbacks](/api/webhooks)
  - `file` string, path to a local file — The path to the local file to be uploaded.
  - `timeout` number — Timeout for output links in seconds
  - `expiration` number — Sets the expiration time for the output link, in minutes. After this period, generated output file(s) are automatically deleted from [PDF.co Temporary Files Storage](/api/file-upload/overview). The maximum allowed duration depends on your subscription plan. For permanent storage of input files (e.g., reusable images, PDF templates, documents), use `PDF.co Built‑In Files Storage`.
  - `profiles` string — Profiles are used configure extra options for specific API endpoints and may be unique to an API. For more information, see [Profiles](/api/profiles) and the documentation of each endpoint for profiles specific to it.
  - `httpusername` string — HTTP auth user name if required to access source URL.
  - `httppassword` string — HTTP auth password if required to access source URL.

## Response `200`

Success.

- object
  - `status` string — Status of the API response.
  - `message` string — Descriptive message for the response status.
  - `url` string, uri — URL to the output file.
  - `jobId` string — Unique identifier for the job.
  - `credits` integer — Credits used for this operation.
  - `remainingCredits` integer — Credits remaining after this operation.
  - `duration` integer — Time taken to complete the request, in milliseconds.

## Other responses

- `400` — Bad request. Typically due to bad input parameters or unreachable input URLs (e.g., access restrictions like login or password).
- `401` — Unauthorized. Authentication is required and has failed or has not yet been provided.
- `402` — Not enough credits.
- `403` — Access forbidden for input URL.
- `404` — The requested resource could not be found.
- `408` — The server timed out waiting for the request.
- `429` — Too many requests in a given time period.
- `441` — Invalid Password. Password protected document.
- `442` — Input document is damaged or of incorrect type.
- `443` — Permissions. The operation is prohibited by document security settings. You can turn off this check by setting the `profiles` param to `{CheckPermissions: false}`. Important: only use this if you are the owner or have legal permission.
- `444` — Profiles parsing error. Please ensure that the configuration is supported. See `/profiles` samples.
- `445` — Timeout error. For large documents, use asynchronous mode (`async=true`) and check status via `/job/check`. For many-page files, use the `pages` parameter.
- `446` — Some files required for conversion are missing.
- `447` — Invalid template.
- `448` — Invalid URL or HTML. Ensure the provided URL is valid and accessible.
- `449` — Invalid index range. Page index is out of range. Use `/pdf/info` to get page count. First page is `0`.
- `450` — Invalid page range specified.
- `452` — Invalid URL.
- `454` — Invalid parameters.
- `500` — Something went wrong. Please try again or contact support.

---

[API](https://skmtc.dev/pdf/apis/pdf-co-api.md) · [All operations](https://skmtc.dev/pdf/apis/pdf-co-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/pdf/pdf-co-api/revisions/725c46c75153/schema)
