> ## Documentation Index
> Fetch the complete documentation index at: https://developer.pdf.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Excel to JSON

> Converts a `xls`/`xlsx`/`csv` file to `json`.

<Note>
  **Try it live:** [Excel to JSON → API Tester](/api-tester/convert-from-excel/json) — send a real request from your browser.
</Note>

## `POST /v1/xls/convert/to/json`

<Warning>During conversion you should not expect any Word macros to operate as we do not support Office macros.</Warning>

## Attributes

<Note>Attributes are case-sensitive and should be inside JSON for POST request. for example: `{ "url": "https://example.com/file1.pdf" }`</Note>

| Attribute | Type | Required | Default | Description |
| - | - | - | - | - |
| `url` | string | *Yes* | - | URL to the source file [`url` attribute](/api/url-input-and-request-limits#supported-file-sources) |
| `callback` | string | *No* | - | The callback URL (or Webhook) used to receive the POST data. see [Webhooks & Callbacks](/api/webhooks). This is only applicable when `async` is set to `true`. |
| `httpusername` | string | *No* | - | HTTP auth user name if required to access source URL. |
| `httppassword` | string | *No* | - | HTTP auth password if required to access source URL. |
| `inline` | boolean | *No* | `false` | Set to true to return results inside the response. Otherwise, the endpoint will return a URL to the output file generated. |
| `async` | boolean | *No* | `false` | 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) |
| `name` | string | *No* | - | File name for the generated output, the input must be in string format. |
| `expiration` | integer | *No* | `60` | Set the expiration time for the output link in minutes. After this specified duration, any generated output file(s) will be automatically deleted from [PDF.co Temporary Files Storage](/api/file-upload/overview). The maximum duration for link expiration varies based on your current subscription plan. To store permanent input files (e.g. re-usable images, pdf templates, documents) consider using [PDF.co Built-In Files Storage](https://app.pdf.co/tools/files). |
| `worksheetIndex` | string | *No* | - | Set the index of the worksheet to be used. The first worksheet has index 1. |
| `profiles` | object | *No* | - | See [Profiles](/api/profiles) for more information. |
|     `DataEncryptionAlgorithm` | string | *No* | - | Controls the encryption algorithm used for data encryption. See [User-Controlled Encryption](/knowledgebase/user-controlled-encryption) for more information. The available algorithms are: `AES128`, `AES192`, `AES256`. |
|     `DataEncryptionKey` | string | *No* | - | Controls the encryption key used for data encryption. See [User-Controlled Encryption](/knowledgebase/user-controlled-encryption) for more information. |
|     `DataEncryptionIV` | string | *No* | - | Controls the encryption IV used for data encryption. See [User-Controlled Encryption](/knowledgebase/user-controlled-encryption) for more information. |
|     `DataDecryptionAlgorithm` | string | *No* | - | Controls the decryption algorithm used for data decryption. See [User-Controlled Encryption](/knowledgebase/user-controlled-encryption) for more information. The available algorithms are: `AES128`, `AES192`, `AES256`. |
|     `DataDecryptionKey` | string | *No* | - | Controls the decryption key used for data decryption. See [User-Controlled Encryption](/knowledgebase/user-controlled-encryption) for more information. |
|     `DataDecryptionIV` | string | *No* | - | Controls the decryption IV used for data decryption. See [User-Controlled Encryption](/knowledgebase/user-controlled-encryption) for more information. |

## Query parameters

*No query parameters accepted.*

## Responses

| Parameter | Type | Description |
| - | - | - |
| `url` | string | Direct URL to the final PDF file stored in S3. |
| `outputLinkValidTill` | string | Timestamp indicating when the output link will expire |
| `error` | boolean | Indicates whether an error occurred (`false` means success) |
| `status` | string | Status code of the request (200, 404, 500, etc.). For more information, see [Response Codes](/api/response-codes). |
| `name` | string | Name of the output file |
| `credits` | integer | Number of credits consumed by the request |
| `remainingCredits` | integer | Number of credits remaining in the account |
| `duration` | integer | Time taken for the operation in milliseconds |

## `Example` Payload

<Note>To see the request size limits, please refer to the [Request Size Limits](/api/url-input-and-request-limits#pdf-co-request-size).</Note>

```json theme={null}
{
  "url": "https://pdfco-test-files.s3.us-west-2.amazonaws.com/other/Input.xls",
  "async": false,
  "name": "Output"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.