import os
from qaip import Qaip
client = Qaip(
api_key=os.environ.get("QAIP_API_KEY"), # This is the default and can be omitted
)
notion = client.notions.create(
name="name",
page_id="page_id",
)
print(notion.id)curl --request POST \
--url https://developer.qaip.com/api/v1/notions \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"page_id": "<string>",
"notion_token": "<string>",
"secret_id": "<string>",
"rrule": "<string>",
"metadata": {
"records": [
{
"key": "<string>",
"val": "<string>"
}
]
}
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
page_id: '<string>',
notion_token: '<string>',
secret_id: '<string>',
rrule: '<string>',
metadata: {records: [{key: '<string>', val: '<string>'}]}
})
};
fetch('https://developer.qaip.com/api/v1/notions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://developer.qaip.com/api/v1/notions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'page_id' => '<string>',
'notion_token' => '<string>',
'secret_id' => '<string>',
'rrule' => '<string>',
'metadata' => [
'records' => [
[
'key' => '<string>',
'val' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://developer.qaip.com/api/v1/notions"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"page_id\": \"<string>\",\n \"notion_token\": \"<string>\",\n \"secret_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"metadata\": {\n \"records\": [\n {\n \"key\": \"<string>\",\n \"val\": \"<string>\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://developer.qaip.com/api/v1/notions")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"page_id\": \"<string>\",\n \"notion_token\": \"<string>\",\n \"secret_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"metadata\": {\n \"records\": [\n {\n \"key\": \"<string>\",\n \"val\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.qaip.com/api/v1/notions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"page_id\": \"<string>\",\n \"notion_token\": \"<string>\",\n \"secret_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"metadata\": {\n \"records\": [\n {\n \"key\": \"<string>\",\n \"val\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"page_id": "<string>",
"status": "unknown",
"ingestion_setting_id": "<string>",
"creation_time": 123,
"start_time": 123,
"end_time": 123,
"error": {
"title": "<string>",
"message": "<string>"
},
"metadata": {
"records": [
{
"key": "<string>",
"val": "<string>",
"type": "string"
}
]
}
}{
"error": {
"message": "<string>",
"type": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>"
}
}Create a Notion data source
Creates a new Notion data source and starts ingestion.
Required scope: ingestion:manage
import os
from qaip import Qaip
client = Qaip(
api_key=os.environ.get("QAIP_API_KEY"), # This is the default and can be omitted
)
notion = client.notions.create(
name="name",
page_id="page_id",
)
print(notion.id)curl --request POST \
--url https://developer.qaip.com/api/v1/notions \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"page_id": "<string>",
"notion_token": "<string>",
"secret_id": "<string>",
"rrule": "<string>",
"metadata": {
"records": [
{
"key": "<string>",
"val": "<string>"
}
]
}
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
page_id: '<string>',
notion_token: '<string>',
secret_id: '<string>',
rrule: '<string>',
metadata: {records: [{key: '<string>', val: '<string>'}]}
})
};
fetch('https://developer.qaip.com/api/v1/notions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://developer.qaip.com/api/v1/notions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'page_id' => '<string>',
'notion_token' => '<string>',
'secret_id' => '<string>',
'rrule' => '<string>',
'metadata' => [
'records' => [
[
'key' => '<string>',
'val' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://developer.qaip.com/api/v1/notions"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"page_id\": \"<string>\",\n \"notion_token\": \"<string>\",\n \"secret_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"metadata\": {\n \"records\": [\n {\n \"key\": \"<string>\",\n \"val\": \"<string>\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://developer.qaip.com/api/v1/notions")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"page_id\": \"<string>\",\n \"notion_token\": \"<string>\",\n \"secret_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"metadata\": {\n \"records\": [\n {\n \"key\": \"<string>\",\n \"val\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.qaip.com/api/v1/notions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"page_id\": \"<string>\",\n \"notion_token\": \"<string>\",\n \"secret_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"metadata\": {\n \"records\": [\n {\n \"key\": \"<string>\",\n \"val\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"page_id": "<string>",
"status": "unknown",
"ingestion_setting_id": "<string>",
"creation_time": 123,
"start_time": 123,
"end_time": 123,
"error": {
"title": "<string>",
"message": "<string>"
},
"metadata": {
"records": [
{
"key": "<string>",
"val": "<string>",
"type": "string"
}
]
}
}{
"error": {
"message": "<string>",
"type": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>"
}
}Authorizations
API key for authentication
Body
Name of the Notion data source
200Notion page ID
2000One-time Notion integration token (mutually exclusive with secret_id)
ID of a stored secret to use (mutually exclusive with notion_token)
Recurrence rule (RFC 5545 RRULE). Requires secret_id (not one-time token).
(reserved for future use) Additional metadata for the Notion data source
Show child attributes
Show child attributes
Response
Successfully created Notion data source
Notion data source ID
Name of the Notion ingestion setting
Notion page ID
Job status
unknown, queued, not_started, managed, starting, started, success, failure, canceling, canceled, deleting, delete_job_failure Notion ingestion setting ID
Creation time (Unix timestamp in seconds)
Job start time (Unix timestamp in seconds)
Job end time (Unix timestamp in seconds)
Show child attributes
Show child attributes
(reserved for future use) Additional metadata for the Notion data source
Show child attributes
Show child attributes

