Live
Botverse Convert
Convert documents between formats. Submit a job, poll for completion, get a download URL. Flat fee — no per-minute billing.
MCP endpoint
https://botverse.cloud/mcp
Max file size
100 MB (upload) / 5 MB (inline)
Typical completion
2–8 seconds
| Format | output_format | Input | Output |
|---|
| Word | docx | ✓ | ✓ |
| PDF | pdf | — | ✓ |
| HTML | html | ✓ | ✓ |
| Markdown | md | ✓ | ✓ |
| reStructuredText | rst | ✓ | ✓ |
| Plain text | txt | ✓ | ✓ |
| Excel (tables) | xlsx | — | ✓ |
ℹPDF is output-only — Botverse converts to PDF but does not accept PDF as input. Excel (xlsx) extracts and preserves tables found in the source document.
| Situation | Recommended tool |
|---|
| Content is already a string in memory (e.g. Markdown you just generated) | convert_content — fastest, no upload step |
| File is at a public URL (CDN, S3, Google Drive share) | convert_from_url — one call, no upload step |
| File is on the user's machine (up to 100 MB) | get_upload_url → PUT → convert_file |
convert_content
Convert document content passed inline as a string — no upload step. Best when you already have the content in memory (e.g. Markdown you just generated or read from a file). Completes in ~2–5 seconds.
Parameters
| Name | Type | Req | Description |
|---|
| content | string | yes | File content as a plain text string (md, html, rst, txt) or base64-encoded bytes (docx). |
| input_format | string | yes | Source format: md | html | rst | txt | docx |
| output_format | string | yes | Target format: docx | pdf | html | txt | md | rst | xlsx |
| encoding | string | no | Content encoding. Default: "text". Use "base64" for binary inputs like .docx. |
Response fields
| Field | Type | Description |
|---|
| job_id | string | Poll get_job_status with this. |
| status | string | "pending" on success. |
convert_from_url
Fetch a document from a public HTTPS URL and convert it. Use when the source file is already hosted online.
Parameters
| Name | Type | Req | Description |
|---|
| source_url | string | yes | Public HTTPS URL of the source document. Must be a direct download link. |
| output_format | string | yes | Target format: docx | pdf | html | txt | md | rst | xlsx |
Response fields
| Field | Type | Description |
|---|
| job_id | string | Poll get_job_status with this. |
| status | string | "pending" on success. |
convert_file
Convert an already-uploaded file. Use get_upload_url first, PUT the raw bytes, then call convert_file with the object_key.
Parameters
| Name | Type | Req | Description |
|---|
| object_key | string | yes | The object_key returned by get_upload_url. |
| output_format | string | yes | Target format: docx | pdf | html | txt | md | rst | xlsx |
Response fields
| Field | Type | Description |
|---|
| job_id | string | Poll get_job_status with this. |
| status | string | "pending" on success. |
get_job_status
Poll the status of a convert job. Call every 5 seconds until status is 'complete' or 'failed'.
Parameters
| Name | Type | Req | Description |
|---|
| job_id | string | yes | Job ID from any convert tool. |
Response fields
| Field | Type | Description |
|---|
| job_id | string | The job ID. |
| status | string | "pending" | "processing" | "complete" | "failed". |
| job_cost | number | Cost in USD. Always $0.10 for convert jobs. |
| error | string | Error message. Present only when failed. |
get_download_url
Get a presigned URL to download the converted file. Call after get_job_status returns 'complete'. URL expires in 24 hours.
Parameters
| Name | Type | Req | Description |
|---|
| job_id | string | yes | Job ID of a completed job. |
Response fields
| Field | Type | Description |
|---|
| download_url | string | Presigned GET URL. Expires in 24 hours. |
| expires_in | number | Seconds until the URL expires. |
Example — convert inline Markdown to DOCX
The most common pattern: the agent has Markdown content already in memory and needs to produce a Word document.
Step 1 — submit the job
Agent calls convert_content
{
"name": "convert_content",
"arguments": {
"content": "# Meeting Notes\n\nAttendees: Alice, Bob\n\n## Actions\n- Alice: send proposal",
"input_format": "md",
"output_format": "docx"
}
}
// Botverse returns:
{
"job_id": "job_a1b2c3d4",
"status": "pending",
"message": "Convert job queued. Poll get_job_status with job_id until status is \"complete\", then call get_download_url."
}Step 2 — poll for completion
Agent polls get_job_status
// ~3 seconds later:
{
"job_id": "job_a1b2c3d4",
"status": "complete",
"job_cost": 0.10,
"completed_at": "2026-05-22T15:18:04Z"
}Step 3 — get download URL
Agent calls get_download_url
{ "name": "get_download_url", "arguments": { "job_id": "job_a1b2c3d4" } }
// Returns:
{
"download_url": "https://botverse-files.s3.us-east-2.amazonaws.com/outputs/...?X-Amz-...",
"expires_in": 86400
}✓The agent can pass the download URL directly to the user. See the
Workflows guide for chaining Convert with Transcode in a single pipeline.