apyhub
DEVELOPER TOOLS · FILE CONVERSION

Convert JSON to Markdown API

What it does

JSON to Markdown converts JSON into Markdown from a raw request body, an uploaded JSON file, or a publicly accessible JSON URL. You can receive the result as plain Markdown, a downloadable .md file, or a pre-signed S3 URL depending on the endpoint you use.

Send a non-empty JSON object in the request body for the raw-body endpoints, or pass a binary JSON file with MIME type application/json for file upload flows. For URL-based conversion, provide a url pointing to JSON served as application/json or text/plain. Some endpoints also accept an output query parameter to set the generated filename.

Use JSON to Markdown when you need to turn API responses, configuration objects, product data, or structured content into documentation-friendly Markdown. It’s a straightforward fit for pipelines that publish content, store generated files, or hand Markdown off to downstream systems that expect text or file output.

▣ ENDPOINT 01 / 09
POST
Convert JSON from URL to Markdown (return S3 signed URL)
https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-url-md-url

QUICKSTART

GUIDE

Quickstart

Generate a Markdown file from a publicly accessible JSON URL.

curl -X POST "https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-url-md-url?output=my-document" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://assets.apyhub.com/samples/sample.json"}'

What you'll get back

Returns a JSON object with a data string field containing a pre-signed S3 URL to download the generated Markdown file.

{
  "data": "https://s3.amazonaws.com/bucket/uuid_sample-output.md?X-Amz-Signature=..."
}
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 a JSON resource. The response must have a Content-Type of `application/json` or `text/plain`.

About this endpoint

What it does

Converts JSON fetched from a public URL into a Markdown file, then returns a pre-signed S3 URL where the generated .md file can be downloaded. The request sends the source JSON URL in the body and can optionally include an output name in the query string.

Query Parameter(s)

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

Request Body

ParameterTypeMandatoryDescription
urlStringYesPublicly accessible URL to a JSON resource. Must return Content-Type of application/json or text/plain.

Response

Returns a JSON object with a single data string field containing a pre-signed S3 URL to download the generated Markdown file. The response object has exactly one key: data.

ParameterTypeMandatoryDescription
dataStringYesPre-signed S3 URL for downloading the generated Markdown file.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 09
POST
Convert uploaded JSON file to Markdown (raw text)
https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-file-md-raw

QUICKSTART

GUIDE

Quickstart

Upload a JSON file to convert it into raw Markdown.

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

What you'll get back

Returns a plain Markdown string. The response is not wrapped in JSON and has no value field.

# Example
This is the converted Markdown output.
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*
A JSON file to upload. The file must have MIME type `application/json`.

About this endpoint

What it does

Converts an uploaded JSON file into raw Markdown text. The request uploads a single JSON file, and the response is a plain Markdown string rather than a JSON object.

Request Body

ParameterTypeMandatoryDescription
fileStringYesA JSON file to upload. The file must have MIME type application/json.

Response

Returns a plain Markdown string, not a JSON object. The output is unwrapped raw Markdown text with no value field or other JSON structure.

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 03 / 09
POST
Convert uploaded JSON file to Markdown (return S3 signed URL)
https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-file-md-url

QUICKSTART

GUIDE

Quickstart

Upload a JSON file to convert it into Markdown, and optionally name the output file.

curl -X POST "https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-file-md-url?output=my-document" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/file.json"

What you'll get back

Returns a JSON object with a data string field. data is a pre-signed S3 URL where you can download the generated Markdown file.

{
  "data": "https://s3.amazonaws.com/bucket/uuid_sample-output.md?X-Amz-Signature=..."
}
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*
A JSON file to upload. The file must have MIME type `application/json`.

About this endpoint

What it does

Converts an uploaded JSON file into Markdown and returns a pre-signed S3 URL where the generated .md file can be downloaded. The request uploads the JSON file itself and can optionally include an output query parameter to influence the output file name.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput file name stem. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
fileStringYesA JSON file to upload. The file must have MIME type application/json.

Response

Returns a JSON object with a data string field formatted as a URI. The data field contains a pre-signed S3 URL to download the generated Markdown file.

ParameterTypeMandatoryDescription
dataStringYesPre-signed S3 URL to download the generated Markdown 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.

▣ ENDPOINT 04 / 09
POST
Convert raw JSON body to Markdown (downloadable file)
https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-raw-md-file

QUICKSTART

GUIDE

Quickstart

Convert a JSON object into a downloadable Markdown file by sending the object to this endpoint and optionally naming the output file.

curl -X POST "https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-raw-md-file?output=my-document" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key1":"value1","key2":123}'

What you'll get back

Returns a raw binary .md file, not a JSON object. The response body is the Markdown file content itself.

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*
Any non-empty JSON object. The entire request body is used as-is as the conversion input — there are no fixed or required properties. Do not treat any example property names (`name`, `age`, etc.) as required fields; they are illustrative only. Any valid JSON object with at least one key is accepted.

About this endpoint

What it does

Converts the incoming raw JSON request body into a downloadable Markdown file. The response is the generated .md file content returned as binary, not a JSON object.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput name. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
key1ObjectNoAny non-empty JSON object. The request body is used as-is as conversion input.
...ObjectNoAny additional JSON object properties are accepted. The schema allows additional properties.

Response

Returns a binary .md file. The response body is the raw Markdown file content, not a JSON object, and no value field exists.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object
Any non-empty JSON object. The entire request body is used as-is as the conversion input — there are no fixed or required properties. Do not treat any example property names (`name`, `age`, etc.) as required fields; they are illustrative only. Any valid JSON object with at least one key is accepted.
▣ ENDPOINT 05 / 09
POST
Convert JSON from URL to Markdown (raw text)
https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-url-md-raw

QUICKSTART

GUIDE

Quickstart

Convert a JSON file from a public URL into Markdown by sending the file URL in the request body.

curl -X POST "https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-url-md-raw" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://assets.apyhub.com/samples/sample.json"}'

What you'll get back

Returns a plain Markdown string, not a JSON object.

# Example
...
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 a JSON resource. The response must have a Content-Type of `application/json` or `text/plain`.

About this endpoint

What it does

Converts a JSON document fetched from a publicly accessible URL into plain Markdown text. The endpoint accepts a URL to a JSON resource and returns the generated Markdown as a raw string, not a JSON object.

Request Body

ParameterTypeMandatoryDescription
urlStringYesPublicly accessible URL pointing to a JSON resource. Must be a valid URI. The response must have a Content-Type of application/json or text/plain.

Response

Returns a plain Markdown string in the response body. The output is not wrapped in JSON and does not include a value field.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 06 / 09
POST
Convert JSON from URL to Markdown (downloadable file)
https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-url-md-file

QUICKSTART

GUIDE

Quickstart

Convert a publicly accessible JSON URL into a downloadable Markdown file.

curl -X POST "https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-url-md-file?output=my-document" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://assets.apyhub.com/samples/sample.json"}'

What you'll get back

Returns a binary .md file as the raw response body, not a JSON object. There is no value field.

# ...Markdown file content...
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 a JSON resource. The response must have a Content-Type of `application/json` or `text/plain`.

About this endpoint

What it does

Converts JSON fetched from a publicly accessible URL into a Markdown file and returns the file contents as binary response data. The input is a URL to the JSON resource, and the output is the raw .md file content.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput file name prefix. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
urlStringYesPublicly accessible URL pointing to a JSON resource. Must be a URI. The response must have a Content-Type of application/json or text/plain.

Response

Returns a binary .md file as the raw response body, not a JSON object. The output schema is a single binary, so there is no value field or wrapper object in the response.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 07 / 09
POST
Convert uploaded JSON file to Markdown (downloadable file)
https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-file-md-file

QUICKSTART

GUIDE

Quickstart

Upload a JSON file and receive the generated Markdown file as the raw response body.

curl -X POST "https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-file-md-file" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/input.json" \
  -F "output=my-document"

What you'll get back

Returns the raw Markdown file content as a binary .md response body, not a JSON object.

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*
A JSON file to upload. The file must have MIME type `application/json`.

About this endpoint

What it does

Converts an uploaded JSON file into a Markdown file and returns the generated .md content as a binary response. The request uploads a JSON file, and the response is the raw Markdown file content rather than a JSON object.

Query Parameter(s)

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

Request Body

ParameterTypeMandatoryDescription
fileStringYesA JSON file to upload. The file must have MIME type application/json.

Response

Returns a binary .md file as the response body. The output schema is a raw Markdown file stream, not a JSON wrapper and not a value field.

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 08 / 09
POST
Convert raw JSON body to Markdown (raw text)
https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-raw-md-raw

QUICKSTART

GUIDE

Quickstart

Convert any JSON object into Markdown with a single request.

curl -X POST "https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-raw-md-raw" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key1":"value1","key2":123}'

What you'll get back

Returns a plain Markdown string in the response body, not a JSON object.

# Example

- key1: value1
- key2: 123
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*
Any non-empty JSON object. The entire request body is used as-is as the conversion input — there are no fixed or required properties. Do not treat any example property names (`name`, `age`, etc.) as required fields; they are illustrative only. Any valid JSON object with at least one key is accepted.

About this endpoint

What it does

Converts the raw JSON object sent in the request body into a Markdown string. The response is plain Markdown text, not a JSON wrapper.

Request Body

ParameterTypeMandatoryDescription
key1ObjectYesThe request body is used as-is as the conversion input. Any non-empty JSON object is accepted; there are no fixed or required properties.

Response

Returns a plain Markdown string in the response body. The output is not wrapped in JSON and does not include a value or _binary_ field.

ParameterTypeMandatoryDescription
string response bodyStringYesPlain Markdown text produced from the input JSON.

Body

Name
Type
Description
bodyREQUIRED
object
Any non-empty JSON object. The entire request body is used as-is as the conversion input — there are no fixed or required properties. Do not treat any example property names (`name`, `age`, etc.) as required fields; they are illustrative only. Any valid JSON object with at least one key is accepted.
▣ ENDPOINT 09 / 09
POST
Convert raw JSON body to Markdown (return S3 signed URL)
https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-raw-md-url

QUICKSTART

GUIDE

Quickstart

Convert a JSON object into a Markdown file and return a pre-signed download URL.

curl -X POST "https://api.eu.apyverse.com/apyhub/convert-json-to-markdown/json-raw-md-url?output=my-document" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key1":"value1","key2":123}'

What you'll get back

Returns a JSON object with a data string field containing a pre-signed S3 URL to download the generated Markdown file.

{
  "data": "https://s3.amazonaws.com/bucket/uuid_sample-output.md?X-Amz-Signature=..."
}
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*
Any non-empty JSON object. The entire request body is used as-is as the conversion input — there are no fixed or required properties. Do not treat any example property names (`name`, `age`, etc.) as required fields; they are illustrative only. Any valid JSON object with at least one key is accepted.

About this endpoint

What it does

Converts the raw JSON request body into Markdown and returns a pre-signed S3 URL where the generated .md file can be downloaded. The request accepts any non-empty JSON object as the conversion input.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput filename stem used to build the generated Markdown file name. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
key-value pairsObjectYesAny non-empty JSON object. The entire request body is used as-is as the conversion input; there are no fixed or required properties. Additional properties are allowed.

Response

Returns a JSON object with a single data string field formatted as a URI. The data field contains a pre-signed S3 URL to download the generated Markdown file.

ParameterTypeMandatoryDescription
dataStringYesPre-signed S3 URL to download the generated Markdown file.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object
Any non-empty JSON object. The entire request body is used as-is as the conversion input — there are no fixed or required properties. Do not treat any example property names (`name`, `age`, etc.) as required fields; they are illustrative only. Any valid JSON object with at least one key is accepted.
▣ 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.