Markdown → Notion in 60 Seconds
Send Markdown to Notion via API in under a minute. Copy‑paste examples for cURL, Node, and Python, plus practical examples.
Product
Turn any Make.com workflow into beautiful Notion pages. Perfect for AI outputs, form submissions, and automated documentation.
Transform any data source into formatted Notion content:
Just need one thing:
That's it! Use the /convert endpoint to get Notion-compatible JSON blocks.
Need two items:
1. Get Your Mark2Notion API Key
Sign up free • 100 requests/month included
2. Connect Notion in the Dashboard
Visit dashboard.mark2notion.com and click "Connect Notion" to authorize access to your workspace. No integration tokens or manual page sharing needed.
3. Get Your Page URL or ID
Copy the URL or page ID from your Notion page:
https://notion.so/Your-Page-Title-[PAGE_ID_HERE]
Add a single "HTTP - Make a request" module in Make.com. Here are two configurations depending on your goal.
https://api.mark2notion.com/api/convert
Add headers
Settings
Body
https://api.mark2notion.com/api/append
Add headers
Settings
Body
Drop these pre-configured HTTP Request modules directly into your Make.com workflow.
Perfect when you need Notion blocks JSON for further processing.
{
"subflows": [
{
"flow": [
{
"id": 1,
"module": "http:ActionSendData",
"version": 3,
"parameters": {
"handleErrors": true,
"useNewZLibDeCompress": true
},
"mapper": {
"url": "https://api.mark2notion.com/api/convert",
"serializeUrl": false,
"method": "post",
"headers": [
{
"name": "x-api-key",
"value": "YOUR_API_KEY_HERE"
}
],
"qs": [],
"bodyType": "x_www_form_urlencoded",
"parseResponse": false,
"authUser": "",
"authPass": "",
"timeout": "",
"shareCookies": false,
"ca": "",
"rejectUnauthorized": true,
"followRedirect": true,
"useQuerystring": false,
"gzip": true,
"useMtls": false,
"formFields": [
{
"key": "markdown",
"value": "# hello"
}
],
"followAllRedirects": false
},
"metadata": {
"designer": {
"x": 0,
"y": 0
},
"restore": {
"expect": {
"method": {
"mode": "chose",
"label": "POST"
},
"headers": {
"mode": "chose",
"items": [
null
]
},
"qs": {
"mode": "chose"
},
"bodyType": {
"label": "Application/x-www-form-urlencoded"
},
"formFields": {
"mode": "chose",
"items": [
null
]
}
}
},
"parameters": [
{
"name": "handleErrors",
"type": "boolean",
"label": "Evaluate all states as errors (except for 2xx and 3xx )",
"required": true
},
{
"name": "useNewZLibDeCompress",
"type": "hidden"
}
],
"expect": [
{
"name": "url",
"type": "url",
"label": "URL",
"required": true
},
{
"name": "serializeUrl",
"type": "boolean",
"label": "Serialize URL",
"required": true
},
{
"name": "method",
"type": "select",
"label": "Method",
"required": true,
"validate": {
"enum": [
"get",
"head",
"post",
"put",
"patch",
"delete",
"options"
]
}
},
{
"name": "headers",
"type": "array",
"label": "Headers",
"spec": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "qs",
"type": "array",
"label": "Query String",
"spec": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "bodyType",
"type": "select",
"label": "Body type",
"validate": {
"enum": [
"raw",
"x_www_form_urlencoded",
"multipart_form_data"
]
}
},
{
"name": "parseResponse",
"type": "boolean",
"label": "Parse response",
"required": true
},
{
"name": "authUser",
"type": "text",
"label": "User name"
},
{
"name": "authPass",
"type": "password",
"label": "Password"
},
{
"name": "timeout",
"type": "uinteger",
"label": "Timeout",
"validate": {
"max": 300,
"min": 1
}
},
{
"name": "shareCookies",
"type": "boolean",
"label": "Share cookies with other HTTP modules",
"required": true
},
{
"name": "ca",
"type": "cert",
"label": "Self-signed certificate"
},
{
"name": "rejectUnauthorized",
"type": "boolean",
"label": "Reject connections that are using unverified (self-signed) certificates",
"required": true
},
{
"name": "followRedirect",
"type": "boolean",
"label": "Follow redirect",
"required": true
},
{
"name": "useQuerystring",
"type": "boolean",
"label": "Disable serialization of multiple same query string keys as arrays",
"required": true
},
{
"name": "gzip",
"type": "boolean",
"label": "Request compressed content",
"required": true
},
{
"name": "useMtls",
"type": "boolean",
"label": "Use Mutual TLS",
"required": true
},
{
"name": "formFields",
"type": "array",
"label": "Fields",
"spec": [
{
"name": "key",
"label": "Key",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "followAllRedirects",
"type": "boolean",
"label": "Follow all redirect",
"required": true
}
]
}
}
]
}
],
"metadata": {
"version": 1
}
}
How to use:
YOUR_API_KEY_HEREDirectly sends markdown content to your Notion page.
{
"subflows": [
{
"flow": [
{
"id": 1,
"module": "http:ActionSendData",
"version": 3,
"parameters": {
"handleErrors": true,
"useNewZLibDeCompress": true
},
"mapper": {
"url": "https://api.mark2notion.com/api/append",
"serializeUrl": false,
"method": "post",
"headers": [
{
"name": "x-api-key",
"value": "YOUR_API_KEY_HERE"
}
],
"qs": [],
"bodyType": "x_www_form_urlencoded",
"parseResponse": false,
"authUser": "",
"authPass": "",
"timeout": "",
"shareCookies": false,
"ca": "",
"rejectUnauthorized": true,
"followRedirect": true,
"useQuerystring": false,
"gzip": true,
"useMtls": false,
"formFields": [
{
"key": "markdown",
"value": "# hello"
},
{
"key": "pageId",
"value": "https://notion.so/Your-Page-Title-YOUR_PAGE_ID_HERE"
}
],
"followAllRedirects": false
},
"metadata": {
"designer": {
"x": 0,
"y": 0
},
"restore": {
"expect": {
"method": {
"mode": "chose",
"label": "POST"
},
"headers": {
"mode": "chose",
"items": [
null
]
},
"qs": {
"mode": "chose"
},
"bodyType": {
"label": "Application/x-www-form-urlencoded"
},
"formFields": {
"mode": "chose",
"items": [
null,
null,
null
]
}
}
},
"parameters": [
{
"name": "handleErrors",
"type": "boolean",
"label": "Evaluate all states as errors (except for 2xx and 3xx )",
"required": true
},
{
"name": "useNewZLibDeCompress",
"type": "hidden"
}
],
"expect": [
{
"name": "url",
"type": "url",
"label": "URL",
"required": true
},
{
"name": "serializeUrl",
"type": "boolean",
"label": "Serialize URL",
"required": true
},
{
"name": "method",
"type": "select",
"label": "Method",
"required": true,
"validate": {
"enum": [
"get",
"head",
"post",
"put",
"patch",
"delete",
"options"
]
}
},
{
"name": "headers",
"type": "array",
"label": "Headers",
"spec": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "qs",
"type": "array",
"label": "Query String",
"spec": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "bodyType",
"type": "select",
"label": "Body type",
"validate": {
"enum": [
"raw",
"x_www_form_urlencoded",
"multipart_form_data"
]
}
},
{
"name": "parseResponse",
"type": "boolean",
"label": "Parse response",
"required": true
},
{
"name": "authUser",
"type": "text",
"label": "User name"
},
{
"name": "authPass",
"type": "password",
"label": "Password"
},
{
"name": "timeout",
"type": "uinteger",
"label": "Timeout",
"validate": {
"max": 300,
"min": 1
}
},
{
"name": "shareCookies",
"type": "boolean",
"label": "Share cookies with other HTTP modules",
"required": true
},
{
"name": "ca",
"type": "cert",
"label": "Self-signed certificate"
},
{
"name": "rejectUnauthorized",
"type": "boolean",
"label": "Reject connections that are using unverified (self-signed) certificates",
"required": true
},
{
"name": "followRedirect",
"type": "boolean",
"label": "Follow redirect",
"required": true
},
{
"name": "useQuerystring",
"type": "boolean",
"label": "Disable serialization of multiple same query string keys as arrays",
"required": true
},
{
"name": "gzip",
"type": "boolean",
"label": "Request compressed content",
"required": true
},
{
"name": "useMtls",
"type": "boolean",
"label": "Use Mutual TLS",
"required": true
},
{
"name": "formFields",
"type": "array",
"label": "Fields",
"spec": [
{
"name": "key",
"label": "Key",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "followAllRedirects",
"type": "boolean",
"label": "Follow all redirect",
"required": true
}
]
}
}
]
}
],
"metadata": {
"version": 1
}
}
How to use:
YOUR_API_KEY_HERE and update pageId with your Notion page URL or ID
Can’t find the answer you’re looking for? Reach out to our customer support team or see the API documentation.
x-api-key headerLearn how to integrate Mark2Notion into your automation workflows, handle complex scenarios, and get the most out of our API.
Send Markdown to Notion via API in under a minute. Copy‑paste examples for cURL, Node, and Python, plus practical examples.
Product
Turn any n8n workflow into formatted Notion pages. Includes copy‑paste HTTP node configs for Convert and Append endpoints.
Guides
Overcome Zapier's native Notion limitations. Send markdown tables, deeply nested content, and large text blocks reliably.
Guides
Send markdown to Notion via API without wrestling with complex block JSON. Handles tables, nested lists, and long content automatically.
Guides
Backup and sync Notion content to Markdown. Perfect for version control, static sites, and content migration.
Guides