apyhub
DATA EXTRACTION · DEVELOPER TOOLS

Convert Markdown to JSON API

What it does

Markdown to JSON converts Markdown content into structured JSON. Send a Markdown file, a Markdown URL, or raw Markdown text, and get back the parsed document structure as inline JSON, a downloadable JSON file, or a signed S3 URL.

Use Markdown to JSON when you need to index documentation, inspect document structure, or move Markdown content into a downstream parser, search pipeline, or storage workflow. The service accepts remote Markdown URLs that return text/markdown or text/plain, uploaded Markdown files with text/markdown MIME type, and raw Markdown strings.

The responses vary by endpoint: inline conversions return a JSON array, file-download endpoints return a binary JSON file, and URL-based endpoints return a data field containing a signed S3 URL valid for 5 minutes. That gives you a simple way to choose between immediate processing and asynchronous file handling.

If you are building a docs ingestion flow, content migration job, or a Markdown analyzer, Markdown to JSON gives you the parsed output in a format you can store, validate, or transform further.

▣ ENDPOINT 01 / 09
POST
URL → JSON (inline)
https://api.eu.apyverse.com/apyhub/markdown-to-json/md-url-json-raw

QUICKSTART

GUIDE

Quickstart

Fetch and convert a Markdown file from a public URL into raw JSON.

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

What you'll get back

Returns a JSON array. The array items are not described in the schema, so the exact item structure may vary.

[]
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*
URL pointing to a Markdown file. The remote resource must respond with a Content-Type of text/markdown or text/plain.

About this endpoint

What it does

Converts the Markdown file at a given URL into a JSON representation and returns it inline. The request body provides the source url; the response is a JSON array.

Request Body

ParameterTypeMandatoryDescription
urlStringYesURL pointing to a Markdown file. Must be a valid URI. The remote resource must respond with a Content-Type of text/markdown or text/plain.

Response

Returns a JSON array. The output schema does not define the shape of the array items, so only the top-level array wrapper can be documented from the schema.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 09
POST
URL → JSON (file download)
https://api.eu.apyverse.com/apyhub/markdown-to-json/md-url-json-file

QUICKSTART

GUIDE

Quickstart

Convert a Markdown file from a URL into a downloadable JSON file.

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

What you'll get back

Returns a binary downloadable file containing the parsed JSON document structure.

(binary file)
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*
URL pointing to a Markdown file. The remote resource must respond with a Content-Type of text/markdown or text/plain.

About this endpoint

What it does

Converts a Markdown file available at a URL into a downloadable JSON file. The request sends the source file URL, and the response returns the parsed document structure as a binary file.

Query Parameter(s)

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

Request Body

ParameterTypeMandatoryDescription
urlStringYesURL pointing to a Markdown file. Must be a valid URI. The remote resource must respond with Content-Type: text/markdown or text/plain.

Response

Returns a downloadable JSON file as a binary response containing the parsed document structure.

ParameterTypeMandatoryDescription
binary responseStringYesDownloadable JSON file containing the parsed document structure.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 03 / 09
POST
URL → JSON (S3 URL)
https://api.eu.apyverse.com/apyhub/markdown-to-json/md-url-json-url

QUICKSTART

GUIDE

Quickstart

Convert a Markdown file at a public URL into a JSON file and return a signed download link.

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

What you'll get back

Returns a JSON object with a data string field containing a signed S3 URL for the generated JSON file, valid for 5 minutes.

{
  "data": "https://s3.amazonaws.com/bucket/consumer/converter-markdown-json/file.json?..."
}
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*
URL pointing to a Markdown file. The remote resource must respond with a Content-Type of text/markdown or text/plain.

About this endpoint

What it does

Converts a Markdown file fetched from a URL into JSON and returns a signed S3 URL for the generated JSON file.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput file name. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
urlStringYesURL pointing to a Markdown file. The remote resource must respond with a Content-Type of text/markdown or text/plain. Format: URI.

Response

Returns a JSON object with a data string field containing a signed S3 URL for the generated JSON file. The URL is valid for 5 minutes.

ParameterTypeMandatoryDescription
dataStringYesSigned S3 URL for the generated JSON file. Format: URI. Valid for 5 minutes.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 04 / 09
POST
File upload → JSON (file download)
https://api.eu.apyverse.com/apyhub/markdown-to-json/md-file-json-file

QUICKSTART

GUIDE

Quickstart

Convert a Markdown file to a JSON file by uploading the .md file and naming the output.

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

What you'll get back

Returns a downloadable binary JSON file containing the parsed document structure.

<binary JSON file>
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*
Markdown file to convert. Must have MIME type text/markdown.

About this endpoint

What it does

Converts an uploaded Markdown file into a downloadable JSON file containing the parsed document structure. The request sends a Markdown file, and the response returns a binary file download.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput filename base. Default: sample-output. Example: my-document.

Request Body

ParameterTypeMandatoryDescription
fileStringYesMarkdown file to convert. Binary upload. Must have MIME type text/markdown.

Response

Returns a binary file download (String with format: binary) containing the parsed document structure in JSON form. Success returns the downloadable JSON file.

ParameterTypeMandatoryDescription
binary fileStringYesDownloadable JSON file containing the parsed document structure.

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
File upload → JSON (inline)
https://api.eu.apyverse.com/apyhub/markdown-to-json/md-file-json-raw

QUICKSTART

GUIDE

Quickstart

Convert a Markdown file to raw JSON by uploading it as multipart form data.

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

What you'll get back

Returns a JSON array. The array item schema is empty, so the API returns a list of JSON values without a declared item shape.

[]
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*
Markdown file to convert. Must have MIME type text/markdown.

About this endpoint

What it does

Converts an uploaded Markdown file into JSON and returns the result inline. The request body must include a file upload containing a Markdown document with MIME type text/markdown.

Request Body

ParameterTypeMandatoryDescription
fileStringYesMarkdown file to convert. Must have MIME type text/markdown.

Response

Returns a JSON array. The output schema does not define the array item structure, so the element shape is not yet captured in the schema.

ParameterTypeMandatoryDescription
The response is an array, but its item schema is not defined.

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 06 / 09
POST
File upload → JSON (S3 URL)
https://api.eu.apyverse.com/apyhub/markdown-to-json/md-file-json-url

QUICKSTART

GUIDE

Quickstart

Upload a Markdown file to convert it to JSON and get back a signed download URL.

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

What you'll get back

Returns a JSON object with a data string field containing a signed S3 URI for the generated JSON file.

{
  "data": "https://s3.amazonaws.com/bucket/consumer/converter-markdown-json/file.json?..."
}
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*
Markdown file to convert. Must have MIME type text/markdown.

About this endpoint

What it does

Converts an uploaded Markdown file into JSON and returns a signed S3 URL to the generated JSON file.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput file name. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
fileStringYesMarkdown file to convert. Must have MIME type text/markdown.

Response

Returns a JSON object with a data string field containing a signed S3 URL for the generated JSON file. The URL is valid for 5 minutes.

ParameterTypeMandatoryDescription
dataStringYesSigned S3 URL for the generated JSON file.

Notes

The returned S3 URL is signed and only valid for 5 minutes, so it should be used promptly.

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 07 / 09
POST
Raw Markdown → JSON (inline)
https://api.eu.apyverse.com/apyhub/markdown-to-json/md-raw-json-raw

QUICKSTART

GUIDE

Quickstart

Send raw Markdown in the request body to convert it into JSON.

curl -X POST "https://api.eu.apyverse.com/apyhub/markdown-to-json/md-raw-json-raw" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: text/plain" \
  --data '# Title

- item 1
- item 2
'

What you'll get back

Returns a JSON array. The array item schema is unspecified, so the response is an array of JSON values.

[]
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.
Raw Markdown content.

About this endpoint

What it does

Converts raw Markdown content into JSON and returns the result as a JSON array.

Request Body

ParameterTypeMandatoryDescription
bodyStringYesRaw Markdown content.

Response

Returns a JSON array. The schema does not define the shape of the array items, so the item structure is not yet captured in the schema.

Body

Name
Type
Description
bodyREQUIRED
string
Raw Markdown content.
▣ ENDPOINT 08 / 09
POST
Raw Markdown → JSON (file download)
https://api.eu.apyverse.com/apyhub/markdown-to-json/md-raw-json-file

QUICKSTART

GUIDE

Quickstart

Send raw Markdown in the request body to get back a downloadable JSON file of the parsed document.

curl -X POST "https://api.eu.apyverse.com/apyhub/markdown-to-json/md-raw-json-file" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: text/plain" \
  --data-binary #x27;# Title\n\n- item 1\n- item 2\n'

What you'll get back

Returns a downloadable JSON file (binary) containing the parsed document structure.

<binary file>
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.
Raw Markdown content.

About this endpoint

What it does

Converts raw Markdown text into a JSON file and returns it as a downloadable binary response.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput filename. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
bodyStringYesRaw Markdown content.

Response

Returns a downloadable JSON file as a binary response. The output schema is a binary string containing the parsed document structure.

ParameterTypeMandatoryDescription
responseStringYesBinary file content for the generated JSON document.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
string
Raw Markdown content.
▣ ENDPOINT 09 / 09
POST
Raw Markdown → JSON (S3 URL)
https://api.eu.apyverse.com/apyhub/markdown-to-json/md-raw-json-url

QUICKSTART

GUIDE

Quickstart

Send raw Markdown text to convert it into a JSON file and get back a signed download URL.

curl -X POST "https://api.eu.apyverse.com/apyhub/markdown-to-json/md-raw-json-url?output=my-document" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: text/plain" \
  --data-binary #x27;# Title\n\n- item 1\n- item 2\n'

What you'll get back

Returns a JSON object with a data string field containing a signed S3 URI for the generated JSON file.

{
  "data": "https://s3.amazonaws.com/bucket/consumer/converter-markdown-json/file.json?..."
}
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.
Raw Markdown content.

About this endpoint

What it does

Converts raw Markdown content into JSON and returns a signed S3 URL to the generated JSON file. The request sends the Markdown as the body, and the response contains the URL in a data field.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOutput name. Default: sample-output.

Request Body

ParameterTypeMandatoryDescription
bodyStringYesRaw Markdown content.

Response

Returns a JSON object with a data string field containing a signed S3 URL for the generated JSON file. The URL is valid for 5 minutes.

ParameterTypeMandatoryDescription
dataStringYesSigned S3 URL for the generated JSON file, in URI format.

Query parameters

Name
Type
Description
outputOPTIONAL
string
DEFAULT sample-output

Body

Name
Type
Description
bodyREQUIRED
string
Raw Markdown content.
▣ 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.