apyhub
DEVELOPER TOOLS · FILE CONVERSION

Convert JSON to Markdown API

Hosted on ApyHub

What it does

Convert JSON to Markdown with the Convert JSON to Markdown service. Send a JSON object directly, or point the service at a JSON URL or uploaded JSON file, and get Markdown back as raw text, a downloadable .md file, or a pre-signed S3 link.

Use it when you need to turn structured data into readable documentation, notes, reports, or content pages. The raw-input endpoints accept any non-empty JSON object in the request body. The URL-based endpoints accept a publicly accessible JSON resource with application/json or text/plain content. The file-based endpoints accept an uploaded JSON file with application/json MIME type.

Choose the response format that fits your workflow. The raw endpoints return a plain Markdown string. The file endpoints return the Markdown file content as binary .md. The URL endpoints can also return a JSON object with a single data field containing a pre-signed S3 download URL.

This is a good fit for developer tools that need to render API payloads, convert exported data into docs, or generate human-readable summaries from machine-readable JSON without adding a custom formatter in your app.

▣ ENDPOINT 01 / 09
POST
Convert raw JSON body to Markdown
http://localhost:8080/apyhub/convert-json-to-markdown/json-raw-md-raw
QUICKSTARTGUIDE

Quickstart

Send any non-empty JSON object to convert it into Markdown.

curl -X POST "http://localhost:8080/apyhub/convert-json-to-markdown/json-raw-md-raw" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Weekly update","status":"done"}'

What you'll get back

Returns a plain Markdown string, not a JSON object. The response body is the generated Markdown text.

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 a Markdown string. The endpoint accepts a non-empty JSON object and returns plain Markdown text.

Request Body

ParameterTypeMandatoryDescription
key1ObjectNoAny JSON value is accepted as part of the raw request body. The entire object is used as-is as the conversion input; there are no fixed or required properties.
key2ObjectNoAny JSON value is accepted as part of the raw request body. The entire object is used as-is as the conversion input; there are no fixed or required properties.

Response

Returns a plain Markdown string, not a JSON object. The response body itself is the Markdown output 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 02 / 09
POST
Convert raw JSON body to Markdown
http://localhost:8080/apyhub/convert-json-to-markdown/json-raw-md-url
QUICKSTARTGUIDE

Quickstart

Send a JSON object to convert it into Markdown and get back a pre-signed download URL.

curl -X POST "http://localhost:8080/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 single data string field. That data value 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.
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 a raw JSON object in the request body into Markdown and returns a pre-signed S3 URL where the generated .md file can be downloaded.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput document name. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
key/value pairsObjectYesAny non-empty JSON object. The 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 containing a pre-signed S3 URI for 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.
▣ ENDPOINT 03 / 09
POST
Convert JSON from URL to Markdown
http://localhost:8080/apyhub/convert-json-to-markdown/json-url-md-raw
QUICKSTARTGUIDE

Quickstart

Convert a JSON file from a public URL into Markdown with one POST request.

curl -X POST "http://localhost:8080/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.

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

Fetches a JSON resource from a public URL and converts that JSON into raw Markdown text. The response is a plain string containing Markdown, not a JSON object.

Request Body

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

Response

Returns a plain Markdown string, not wrapped in JSON. The output schema is a raw string with no value field or other JSON structure.

ParameterTypeMandatoryDescription
responseStringYesPlain Markdown string. Not wrapped in JSON. No value field exists.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 04 / 09
POST
Convert uploaded JSON file to Markdown
http://localhost:8080/apyhub/convert-json-to-markdown/json-file-md-url
QUICKSTARTGUIDE

Quickstart

Upload a JSON file and get back a pre-signed URL for the generated Markdown file.

curl -X POST "http://localhost:8080/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 single 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.
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.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput file name base. 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 single data string field containing a pre-signed S3 URL to download the generated Markdown file.

ParameterTypeMandatoryDescription
dataStringYesPre-signed S3 URL to download the generated Markdown file. The response object has exactly one key: data.

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 05 / 09
POST
Convert JSON from URL to Markdown
http://localhost:8080/apyhub/convert-json-to-markdown/json-url-md-file
QUICKSTARTGUIDE

Quickstart

Convert a JSON file at a public URL into a Markdown .md file. This minimal call sends the source URL and lets the API use the default output name.

curl -X POST "http://localhost:8080/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. The schema does not define any response fields.

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 the JSON available at a public URL into a downloadable Markdown file. You send the source url and optionally an output name, and the response is the raw .md file content as binary data.

Query Parameter(s)

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

Request Body

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

Response

Returns a binary .md file as the raw response body. The output schema is a string with binary format, so there is no JSON wrapper or value field to read.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 06 / 09
POST
Convert JSON from URL to Markdown
http://localhost:8080/apyhub/convert-json-to-markdown/json-url-md-url
QUICKSTARTGUIDE

Quickstart

Convert a JSON resource at a public URL into Markdown and return a pre-signed download link.

curl -X POST "http://localhost:8080/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 single data string field containing a pre-signed S3 URL for 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 the JSON resource at a publicly accessible URL into a Markdown file and returns a pre-signed S3 download URL for the generated .md file.

Query Parameter(s)

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

Request Body

ParameterTypeMandatoryDescription
urlStringYesPublicly accessible URL pointing to a JSON resource. The response must have a 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.

ParameterTypeMandatoryDescription
dataStringYesPre-signed S3 URL to download the generated Markdown file. The response object has exactly one key: data.

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
http://localhost:8080/apyhub/convert-json-to-markdown/json-file-md-file
QUICKSTARTGUIDE

Quickstart

Upload a JSON file and have the API return a Markdown .md file.

curl -X POST "http://localhost:8080/apyhub/convert-json-to-markdown/json-file-md-file" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/input.json;type=application/json"

What you'll get back

Returns a raw binary Markdown file (.md) in the response body. The schema does not define a JSON object or any top-level fields.

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 sends a JSON file for conversion, and the response is the raw Markdown file body rather than a JSON object.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput file name/base name for the generated Markdown file. Default: sample-output. Example: my-document.

Request Body

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

Response

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

ParameterTypeMandatoryDescription
response bodyStringYesBinary Markdown file content (.md).

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 uploaded JSON file to Markdown
http://localhost:8080/apyhub/convert-json-to-markdown/json-file-md-raw
QUICKSTARTGUIDE

Quickstart

Upload a JSON file to convert it into raw Markdown.

curl -X POST "http://localhost:8080/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 in the response body. The output schema is a raw string, 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

Uploads a JSON file and converts its contents into Markdown, returning the result as raw plain text rather than a JSON object.

Request Body

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

Response

Returns plain Markdown as a raw string, not wrapped in JSON. The output schema is a string, so there is no response object or named field to extract.

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 09 / 09
POST
Convert raw JSON body to Markdown
http://localhost:8080/apyhub/convert-json-to-markdown/json-raw-md-file
QUICKSTARTGUIDE

Quickstart

Send any non-empty JSON object and download the converted Markdown file.

curl -X POST "http://localhost:8080/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 as the response body, containing the generated Markdown content. The schema does not define a JSON wrapper or top-level fields.

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 a Markdown .md file and returns the file content as a binary response. The input is used as-is, with no fixed body fields or nested request structure.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput file name or label used by the endpoint. Default: sample-output.

Request Body

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

Response

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

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.