# Document Processing

> Process documents beyond mail merge: convert, append, replace text, render thumbnails, manage and share templates, check spelling and review tracked changes.

- **Product:** ReportingCloud
- **Section:** Documentation
- **Kind:** Topic
- **Path:** ReportingCloud > Document Processing
- **1407 words**
- **Web URL:** https://docs.textcontrol.com/reporting-cloud/document-processing/
- **LLMs URL:** https://docs.textcontrol.com/reporting-cloud/document-processing/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/reporting-cloud/document-processing/llms-full.txt

---

Merging templates with JSON data is the main task of ReportingCloud, but the Web API does more with documents. It converts documents between formats, combines several into one, replaces text, renders pages as images, manages the templates in your storage, checks spelling and works with tracked changes. Each of these tasks has its own guide below, with a curl request and the same call in an SDK.

### How a Request Looks

Every endpoint is below `https://api.reporting.cloud/v1/`, and the Web API answers on HTTPS only. A request to convert a document looks like this:

```bash
curl "https://api.reporting.cloud/v1/document/convert?returnFormat=PDF" \
  -H "Authorization: ReportingCloud-APIKey $REPORTINGCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @document.json
```

The parts of every request:

- **The credentials** in the `Authorization` header, an API key of your account or its user name and password. [Authentication](https://docs.textcontrol.com/reporting-cloud/document-processing/authentication/llms-full.txt) shows both forms.
- **Documents as Base64.** Requests and responses are JSON. A document or a template is a Base64 string: the body is that string alone for endpoints that take one document, such as `POST /v1/document/convert` and `POST /v1/document/thumbnails`, and a JSON object with properties such as `documents` or `template` for `POST /v1/document/append` and `POST /v1/document/findandreplace`.
- **Options as query parameters**, such as `returnFormat=PDF` or `templateName=sample_invoice.tx`.
- **Results as Base64.** A created document comes back as a Base64 string in a JSON string, and the documents of a merge and page images as a JSON array of such strings. Endpoints that read information, such as the template list or the spell check, return it as JSON.

The SDKs for .NET, PHP, Java and Ruby wrap the same requests in a `ReportingCloud` class with a method for each endpoint they cover. The .NET, PHP and Java SDKs do the Base64 encoding and decoding for you; the Ruby SDK takes and returns Base64 strings. [SDKs](https://docs.textcontrol.com/reporting-cloud/sdks/llms-full.txt) compares them.

Several endpoints count against a quota of your plan. Each successful request to merge, convert, append, findandreplace, removetrackedchange and the two thumbnails endpoints adds one document to the document quota. Spell checks and suggestions count against the spell checking quota, and each uploaded template against the template storage quota. [Plans and Licensing](https://docs.textcontrol.com/reporting-cloud/overview/licensing/#what-counts-against-which-quota) lists the quotas, and [Errors and Status Codes](https://docs.textcontrol.com/reporting-cloud/document-processing/errors/llms-full.txt) explains what happens when a quota is exceeded or a request takes longer than 60 seconds.

### Find the Right Page

| If you want to | Read |
|---|---|
| Send your API key or user name and password with a request | [Authentication](https://docs.textcontrol.com/reporting-cloud/document-processing/authentication/llms-full.txt) |
| Convert DOCX, HTML, PDF or RTF into another format, or extract plain text | [Converting Documents](https://docs.textcontrol.com/reporting-cloud/document-processing/converting/llms-full.txt) |
| Combine several documents into one, with a divider between them | [Appending Documents](https://docs.textcontrol.com/reporting-cloud/document-processing/appending/llms-full.txt) |
| Replace text placeholders in a template that has no merge fields | [Find and Replace](https://docs.textcontrol.com/reporting-cloud/document-processing/find-replace/llms-full.txt) |
| Render the pages of a document or a stored template as images | [Thumbnails](https://docs.textcontrol.com/reporting-cloud/document-processing/thumbnails/llms-full.txt) |
| Upload, list, download or delete templates, or read their merge fields | [Managing Templates](https://docs.textcontrol.com/reporting-cloud/document-processing/templates/llms-full.txt) |
| Show a document from your storage in the viewer widget of ReportingCloud | [Sharing Documents](https://docs.textcontrol.com/reporting-cloud/document-processing/sharing/llms-full.txt) |
| Check text for spelling errors and get suggestions | [Spell Checking](https://docs.textcontrol.com/reporting-cloud/document-processing/spell-checking/llms-full.txt) |
| Read, accept or reject the tracked changes of a document | [Tracked Changes](https://docs.textcontrol.com/reporting-cloud/document-processing/tracked-changes/llms-full.txt) |
| Find out why a request is refused | [Errors and Status Codes](https://docs.textcontrol.com/reporting-cloud/document-processing/errors/llms-full.txt) |
| Create documents from a template and JSON data | [Mail Merge](https://docs.textcontrol.com/reporting-cloud/mail-merge/llms-full.txt) |

### Where to Start

1. [Authentication](https://docs.textcontrol.com/reporting-cloud/document-processing/authentication/llms-full.txt): send your API key with a first request.
2. [Converting Documents](https://docs.textcontrol.com/reporting-cloud/document-processing/converting/llms-full.txt): send a document and decode the result.
3. The page of the task you need, from the table above.

Every endpoint, with all parameters and responses, is listed in the [Web API](https://docs.textcontrol.com/reporting-cloud/reference/web-api/llms-full.txt) reference. A first merge with curl is the subject of the Getting Started tutorial [Web API](https://docs.textcontrol.com/reporting-cloud/getting-started/web-api/llms-full.txt).

### Pages in This Section

- [Authentication](https://docs.textcontrol.com/reporting-cloud/document-processing/authentication/llms-full.txt): send an API key or Basic credentials with every request, from curl and the SDKs.
- [Converting Documents](https://docs.textcontrol.com/reporting-cloud/document-processing/converting/llms-full.txt): convert a document to PDF, DOCX, TXT and other formats with `POST /v1/document/convert`.
- [Appending Documents](https://docs.textcontrol.com/reporting-cloud/document-processing/appending/llms-full.txt): combine documents with `POST /v1/document/append` and set the properties of the result.
- [Find and Replace](https://docs.textcontrol.com/reporting-cloud/document-processing/find-replace/llms-full.txt): replace text pairs in a template with `POST /v1/document/findandreplace`.
- [Thumbnails](https://docs.textcontrol.com/reporting-cloud/document-processing/thumbnails/llms-full.txt): render page images with `POST /v1/document/thumbnails` and `GET /v1/templates/thumbnails`.
- [Managing Templates](https://docs.textcontrol.com/reporting-cloud/document-processing/templates/llms-full.txt): upload, list, count, download and delete templates and read their structure with the templates endpoints.
- [Sharing Documents](https://docs.textcontrol.com/reporting-cloud/document-processing/sharing/llms-full.txt): show a document from your storage in a web page with `GET /v1/document/share` and the viewer widget.
- [Spell Checking](https://docs.textcontrol.com/reporting-cloud/document-processing/spell-checking/llms-full.txt): check spelling and get suggestions with the proofing endpoints.
- [Tracked Changes](https://docs.textcontrol.com/reporting-cloud/document-processing/tracked-changes/llms-full.txt): list and remove tracked changes with the `processing/review` endpoints.
- [Errors and Status Codes](https://docs.textcontrol.com/reporting-cloud/document-processing/errors/llms-full.txt): the status codes of the Web API, quota errors and the 60-second limit.

---

## In This Section

- [Appending Documents](https://docs.textcontrol.com/reporting-cloud/document-processing/appending/llms-full.txt): Combine merge results, contracts and terms and conditions into one PDF or DOCX with document/append: dividers, title, author and password, curl and PHP.
- [Authentication](https://docs.textcontrol.com/reporting-cloud/document-processing/authentication/llms-full.txt): Send a ReportingCloud-APIKey or Basic Authorization header with every Web API request from curl, .NET, PHP, Java or Ruby, and read 403 and 500 answers.
- [Converting Documents](https://docs.textcontrol.com/reporting-cloud/document-processing/converting/llms-full.txt): Turn DOCX into PDF or PDF/A, HTML into Word and PDF into plain text with document/convert: returnFormat values, test runs, the quota, curl and .NET.
- [Errors and Status Codes](https://docs.textcontrol.com/reporting-cloud/document-processing/errors/llms-full.txt): Trace a refused request to its cause: 400 for missing templates, 403 for invalid keys, quotas or too many requests, 405, 411, 415, 500 and SDK exceptions.
- [Find and Replace](https://docs.textcontrol.com/reporting-cloud/document-processing/find-replace/llms-full.txt): Fill templates that have text markers instead of merge fields with document/findandreplace: search and replacement pairs, stored templates, curl and .NET.
- [Sharing Documents](https://docs.textcontrol.com/reporting-cloud/document-processing/sharing/llms-full.txt): Show a stored document on your website: request its encrypted name with document/share and embed the viewer widget of ReportingCloud, from curl or ASP.NET Core.
- [Spell Checking](https://docs.textcontrol.com/reporting-cloud/document-processing/spell-checking/llms-full.txt): Find misspelled words and get suggestions with proofing/check and proofing/suggestions: dictionary names, the spell checking quota, curl and the PHP SDK.
- [Managing Templates](https://docs.textcontrol.com/reporting-cloud/document-processing/templates/llms-full.txt): Keep the template storage current from code: upload, check, download and delete templates, read merge fields and nested blocks, with curl, .NET and PHP.
- [Thumbnails](https://docs.textcontrol.com/reporting-cloud/document-processing/thumbnails/llms-full.txt): Render the pages of documents and stored templates as PNG, JPG, GIF or BMP images with the two thumbnails endpoints: zoom factor, page range, curl and .NET.
- [Tracked Changes](https://docs.textcontrol.com/reporting-cloud/document-processing/tracked-changes/llms-full.txt): Apply reviewers' tracked edits to a contract: read each insertion or deletion with its author, accept or reject it and convert the TX result, in curl or .NET.

---

## Nearby

- **Previous:** [Template Design](https://docs.textcontrol.com/reporting-cloud/mail-merge/template-design/llms-full.txt)
- **Next:** [Authentication](https://docs.textcontrol.com/reporting-cloud/document-processing/authentication/llms-full.txt)
