@notionhq/notion-mcp-server 1.9.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,12 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "Notion API",
5
- "version": "1"
5
+ "version": "2.0.0",
6
+ "description": "Notion API 2025-09-03 - Data Source Edition. Breaking change: Database endpoints replaced with data source endpoints.",
7
+ "license": {
8
+ "name": "MIT",
9
+ "url": "https://github.com/makenotion/notion-sdk-js/blob/main/LICENSE"
10
+ }
6
11
  },
7
12
  "servers": [
8
13
  {
@@ -20,14 +25,274 @@
20
25
  "scheme": "basic"
21
26
  }
22
27
  },
23
- "parameters": {},
24
- "schemas": {}
28
+ "parameters": {
29
+ "notionVersion": {
30
+ "name": "Notion-Version",
31
+ "in": "header",
32
+ "required": false,
33
+ "schema": {
34
+ "type": "string",
35
+ "default": "2025-09-03"
36
+ },
37
+ "description": "The Notion API version"
38
+ }
39
+ },
40
+ "schemas": {
41
+ "richTextRequest": {
42
+ "type": "object",
43
+ "required": [
44
+ "text"
45
+ ],
46
+ "properties": {
47
+ "text": {
48
+ "type": "object",
49
+ "required": [
50
+ "content"
51
+ ],
52
+ "properties": {
53
+ "content": {
54
+ "type": "string"
55
+ },
56
+ "link": {
57
+ "type": [
58
+ "object",
59
+ "null"
60
+ ],
61
+ "properties": {
62
+ "url": {
63
+ "type": "string"
64
+ }
65
+ },
66
+ "required": [
67
+ "url"
68
+ ]
69
+ }
70
+ },
71
+ "additionalProperties": false
72
+ },
73
+ "type": {
74
+ "enum": [
75
+ "text"
76
+ ],
77
+ "type": "string"
78
+ }
79
+ },
80
+ "additionalProperties": false
81
+ },
82
+ "pageIdParentRequest": {
83
+ "type": "object",
84
+ "properties": {
85
+ "page_id": {
86
+ "type": "string",
87
+ "format": "uuid"
88
+ }
89
+ },
90
+ "required": [
91
+ "page_id"
92
+ ]
93
+ },
94
+ "dataSourceIdParentRequest": {
95
+ "type": "object",
96
+ "properties": {
97
+ "type": {
98
+ "type": "string",
99
+ "const": "database_id"
100
+ },
101
+ "database_id": {
102
+ "type": "string",
103
+ "format": "uuid"
104
+ }
105
+ },
106
+ "required": [
107
+ "database_id"
108
+ ]
109
+ },
110
+ "parentRequest": {
111
+ "oneOf": [
112
+ {
113
+ "$ref": "#/components/schemas/pageIdParentRequest"
114
+ },
115
+ {
116
+ "$ref": "#/components/schemas/dataSourceIdParentRequest"
117
+ },
118
+ {
119
+ "type": "object",
120
+ "properties": {
121
+ "type": {
122
+ "const": "workspace"
123
+ }
124
+ },
125
+ "required": [
126
+ "type"
127
+ ]
128
+ }
129
+ ]
130
+ },
131
+ "movePageParentRequest": {
132
+ "oneOf": [
133
+ {
134
+ "type": "object",
135
+ "properties": {
136
+ "type": {
137
+ "const": "page_id"
138
+ },
139
+ "page_id": {
140
+ "type": "string",
141
+ "format": "uuid"
142
+ }
143
+ },
144
+ "required": [
145
+ "type",
146
+ "page_id"
147
+ ]
148
+ },
149
+ {
150
+ "type": "object",
151
+ "properties": {
152
+ "type": {
153
+ "const": "database_id"
154
+ },
155
+ "database_id": {
156
+ "type": "string",
157
+ "format": "uuid"
158
+ }
159
+ },
160
+ "required": [
161
+ "type",
162
+ "database_id"
163
+ ]
164
+ },
165
+ {
166
+ "type": "object",
167
+ "properties": {
168
+ "type": {
169
+ "const": "workspace"
170
+ }
171
+ },
172
+ "required": [
173
+ "type"
174
+ ]
175
+ }
176
+ ]
177
+ },
178
+ "sortObject": {
179
+ "type": "object",
180
+ "required": [
181
+ "property",
182
+ "direction"
183
+ ],
184
+ "properties": {
185
+ "property": {
186
+ "type": "string"
187
+ },
188
+ "direction": {
189
+ "enum": [
190
+ "ascending",
191
+ "descending"
192
+ ],
193
+ "type": "string"
194
+ }
195
+ }
196
+ },
197
+ "paragraphBlockRequest": {
198
+ "type": "object",
199
+ "properties": {
200
+ "paragraph": {
201
+ "type": "object",
202
+ "properties": {
203
+ "rich_text": {
204
+ "type": "array",
205
+ "items": {
206
+ "$ref": "#/components/schemas/richTextRequest"
207
+ },
208
+ "maxItems": 100
209
+ }
210
+ },
211
+ "additionalProperties": false,
212
+ "required": [
213
+ "rich_text"
214
+ ]
215
+ },
216
+ "type": {
217
+ "enum": [
218
+ "paragraph"
219
+ ],
220
+ "type": "string"
221
+ }
222
+ },
223
+ "additionalProperties": false
224
+ },
225
+ "bulletedListItemBlockRequest": {
226
+ "type": "object",
227
+ "properties": {
228
+ "bulleted_list_item": {
229
+ "type": "object",
230
+ "properties": {
231
+ "rich_text": {
232
+ "type": "array",
233
+ "items": {
234
+ "$ref": "#/components/schemas/richTextRequest"
235
+ },
236
+ "maxItems": 100
237
+ }
238
+ },
239
+ "additionalProperties": false,
240
+ "required": [
241
+ "rich_text"
242
+ ]
243
+ },
244
+ "type": {
245
+ "enum": [
246
+ "bulleted_list_item"
247
+ ],
248
+ "type": "string"
249
+ }
250
+ },
251
+ "additionalProperties": false
252
+ },
253
+ "blockObjectRequest": {
254
+ "anyOf": [
255
+ {
256
+ "$ref": "#/components/schemas/paragraphBlockRequest"
257
+ },
258
+ {
259
+ "$ref": "#/components/schemas/bulletedListItemBlockRequest"
260
+ }
261
+ ]
262
+ }
263
+ }
25
264
  },
26
265
  "security": [
27
266
  {
28
267
  "bearerAuth": []
29
268
  }
30
269
  ],
270
+ "tags": [
271
+ {
272
+ "name": "Data sources",
273
+ "description": "Data source endpoints for querying and managing databases"
274
+ },
275
+ {
276
+ "name": "Pages",
277
+ "description": "Page endpoints for creating and managing pages"
278
+ },
279
+ {
280
+ "name": "Blocks",
281
+ "description": "Block endpoints for managing page content"
282
+ },
283
+ {
284
+ "name": "Users",
285
+ "description": "User endpoints"
286
+ },
287
+ {
288
+ "name": "Search",
289
+ "description": "Search endpoints"
290
+ },
291
+ {
292
+ "name": "Comments",
293
+ "description": "Comment endpoints"
294
+ }
295
+ ],
31
296
  "paths": {
32
297
  "/v1/users/{user_id}": {
33
298
  "get": {
@@ -43,6 +308,9 @@
43
308
  "type": "string",
44
309
  "format": "uuid"
45
310
  }
311
+ },
312
+ {
313
+ "$ref": "#/components/parameters/notionVersion"
46
314
  }
47
315
  ],
48
316
  "responses": {
@@ -50,11 +318,7 @@
50
318
  "description": "200",
51
319
  "content": {
52
320
  "application/json": {
53
- "examples": {
54
- "Result": {
55
- "value": "{\n \"object\": \"user\",\n \"id\": \"d40e767c-d7af-4b18-a86d-55c61f1e39a4\",\n \"type\": \"person\",\n\t\"person\": {\n\t\t\"email\": \"avo@example.org\",\n\t},\n \"name\": \"Avocado Lovelace\",\n \"avatar_url\": \"https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg\",\n}"
56
- }
57
- }
321
+ "examples": {}
58
322
  }
59
323
  }
60
324
  },
@@ -64,7 +328,7 @@
64
328
  "application/json": {
65
329
  "examples": {
66
330
  "Result": {
67
- "value": "{}"
331
+ "value": {}
68
332
  }
69
333
  },
70
334
  "schema": {
@@ -100,6 +364,9 @@
100
364
  "type": "integer",
101
365
  "default": 100
102
366
  }
367
+ },
368
+ {
369
+ "$ref": "#/components/parameters/notionVersion"
103
370
  }
104
371
  ],
105
372
  "responses": {
@@ -109,7 +376,7 @@
109
376
  "application/json": {
110
377
  "examples": {
111
378
  "Result": {
112
- "value": "{}"
379
+ "value": {}
113
380
  }
114
381
  },
115
382
  "schema": {
@@ -118,6 +385,16 @@
118
385
  }
119
386
  }
120
387
  }
388
+ },
389
+ "200": {
390
+ "description": "Successful response",
391
+ "content": {
392
+ "application/json": {
393
+ "schema": {
394
+ "type": "object"
395
+ }
396
+ }
397
+ }
121
398
  }
122
399
  },
123
400
  "deprecated": false
@@ -128,7 +405,11 @@
128
405
  "summary": "Retrieve your token's bot user",
129
406
  "description": "",
130
407
  "operationId": "get-self",
131
- "parameters": [],
408
+ "parameters": [
409
+ {
410
+ "$ref": "#/components/parameters/notionVersion"
411
+ }
412
+ ],
132
413
  "responses": {
133
414
  "200": {
134
415
  "description": "200",
@@ -136,7 +417,28 @@
136
417
  "application/json": {
137
418
  "examples": {
138
419
  "Result": {
139
- "value": "{\n \"object\": \"user\",\n \"id\": \"16d84278-ab0e-484c-9bdd-b35da3bd8905\",\n \"name\": \"pied piper\",\n \"avatar_url\": null,\n \"type\": \"bot\",\n \"bot\": {\n \"owner\": {\n \"type\": \"user\",\n \"user\": {\n \"object\": \"user\",\n \"id\": \"5389a034-eb5c-47b5-8a9e-f79c99ef166c\",\n \"name\": \"christine makenotion\",\n \"avatar_url\": null,\n \"type\": \"person\",\n \"person\": {\n \"email\": \"christine@makenotion.com\"\n }\n }\n }\n }\n}"
420
+ "value": {
421
+ "object": "user",
422
+ "id": "16d84278-ab0e-484c-9bdd-b35da3bd8905",
423
+ "name": "pied piper",
424
+ "avatar_url": null,
425
+ "type": "bot",
426
+ "bot": {
427
+ "owner": {
428
+ "type": "user",
429
+ "user": {
430
+ "object": "user",
431
+ "id": "5389a034-eb5c-47b5-8a9e-f79c99ef166c",
432
+ "name": "christine makenotion",
433
+ "avatar_url": null,
434
+ "type": "person",
435
+ "person": {
436
+ "email": "christine@makenotion.com"
437
+ }
438
+ }
439
+ }
440
+ }
441
+ }
140
442
  }
141
443
  },
142
444
  "schema": {
@@ -208,756 +510,767 @@
208
510
  }
209
511
  }
210
512
  }
513
+ },
514
+ "400": {
515
+ "description": "Bad request",
516
+ "content": {
517
+ "application/json": {
518
+ "schema": {
519
+ "type": "object",
520
+ "properties": {
521
+ "object": {
522
+ "type": "string",
523
+ "example": "error"
524
+ },
525
+ "status": {
526
+ "type": "integer",
527
+ "example": 400
528
+ },
529
+ "code": {
530
+ "type": "string"
531
+ },
532
+ "message": {
533
+ "type": "string"
534
+ }
535
+ }
536
+ }
537
+ }
538
+ }
211
539
  }
212
540
  },
213
541
  "deprecated": false,
214
542
  "security": []
215
543
  }
216
544
  },
217
- "/v1/databases/{database_id}/query": {
545
+ "/v1/search": {
218
546
  "post": {
219
- "summary": "Query a database",
547
+ "summary": "Search by title",
548
+ "description": "",
549
+ "operationId": "post-search",
550
+ "parameters": [
551
+ {
552
+ "$ref": "#/components/parameters/notionVersion"
553
+ }
554
+ ],
555
+ "requestBody": {
556
+ "content": {
557
+ "application/json": {
558
+ "schema": {
559
+ "type": "object",
560
+ "properties": {
561
+ "query": {
562
+ "type": "string",
563
+ "description": "The text that the API compares page and database titles against."
564
+ },
565
+ "sort": {
566
+ "type": "object",
567
+ "description": "A set of criteria, `direction` and `timestamp` keys, that orders the results. The **only** supported timestamp value is `\"last_edited_time\"`. Supported `direction` values are `\"ascending\"` and `\"descending\"`. If `sort` is not provided, then the most recently edited results are returned first.",
568
+ "properties": {
569
+ "direction": {
570
+ "type": "string",
571
+ "description": "The direction to sort. Possible values include `ascending` and `descending`."
572
+ },
573
+ "timestamp": {
574
+ "type": "string",
575
+ "description": "The name of the timestamp to sort against. Possible values include `last_edited_time`."
576
+ }
577
+ }
578
+ },
579
+ "filter": {
580
+ "type": "object",
581
+ "description": "A set of criteria, `value` and `property` keys, that limits the results to either only pages or only data sources. Possible `value` values are `\"page\"` or `\"data_source\"`. The only supported `property` value is `\"object\"`.",
582
+ "properties": {
583
+ "value": {
584
+ "type": "string",
585
+ "description": "The value of the property to filter the results by. Possible values for object type include `page` or `data_source`. **Limitation**: Currently the only filter allowed is `object` which will filter by type of object (either `page` or `data_source`)",
586
+ "enum": [
587
+ "page",
588
+ "data_source"
589
+ ]
590
+ },
591
+ "property": {
592
+ "type": "string",
593
+ "description": "The name of the property to filter by. Currently the only property you can filter by is the object type. Possible values include `object`. Limitation: Currently the only filter allowed is `object` which will filter by type of object (either `page` or `data_source`)"
594
+ }
595
+ }
596
+ },
597
+ "start_cursor": {
598
+ "type": "string",
599
+ "description": "A `cursor` value returned in a previous response that If supplied, limits the response to results starting after the `cursor`. If not supplied, then the first page of results is returned. Refer to [pagination](https://developers.notion.com/reference/intro#pagination) for more details."
600
+ },
601
+ "page_size": {
602
+ "type": "integer",
603
+ "description": "The number of items from the full list to include in the response. Maximum: `100`.",
604
+ "default": 100,
605
+ "format": "int32"
606
+ }
607
+ }
608
+ }
609
+ }
610
+ }
611
+ },
612
+ "responses": {
613
+ "200": {
614
+ "description": "Successful response",
615
+ "content": {
616
+ "application/json": {
617
+ "schema": {
618
+ "type": "object"
619
+ }
620
+ }
621
+ }
622
+ },
623
+ "400": {
624
+ "description": "Bad request",
625
+ "content": {
626
+ "application/json": {
627
+ "schema": {
628
+ "type": "object",
629
+ "properties": {
630
+ "object": {
631
+ "type": "string",
632
+ "example": "error"
633
+ },
634
+ "status": {
635
+ "type": "integer",
636
+ "example": 400
637
+ },
638
+ "code": {
639
+ "type": "string"
640
+ },
641
+ "message": {
642
+ "type": "string"
643
+ }
644
+ }
645
+ }
646
+ }
647
+ }
648
+ }
649
+ },
650
+ "deprecated": false,
651
+ "security": []
652
+ }
653
+ },
654
+ "/v1/blocks/{block_id}/children": {
655
+ "get": {
656
+ "summary": "Retrieve block children",
220
657
  "description": "",
221
- "operationId": "post-database-query",
658
+ "operationId": "get-block-children",
222
659
  "parameters": [
223
660
  {
224
- "name": "database_id",
661
+ "name": "block_id",
225
662
  "in": "path",
226
- "description": "Identifier for a Notion database.",
663
+ "description": "Identifier for a [block](ref:block)",
227
664
  "schema": {
228
665
  "type": "string"
229
666
  },
230
667
  "required": true
231
668
  },
232
669
  {
233
- "name": "filter_properties",
670
+ "name": "start_cursor",
234
671
  "in": "query",
235
- "description": "A list of page property value IDs associated with the database. Use this param to limit the response to a specific page property value or values for pages that meet the `filter` criteria.",
672
+ "description": "If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results.",
236
673
  "schema": {
237
- "type": "array",
238
- "items": {
239
- "type": "string"
240
- }
674
+ "type": "string"
675
+ }
676
+ },
677
+ {
678
+ "name": "page_size",
679
+ "in": "query",
680
+ "description": "The number of items from the full list desired in the response. Maximum: 100",
681
+ "schema": {
682
+ "type": "integer",
683
+ "format": "int32",
684
+ "default": 100
241
685
  }
686
+ },
687
+ {
688
+ "$ref": "#/components/parameters/notionVersion"
242
689
  }
243
690
  ],
244
- "requestBody": {
245
- "content": {
246
- "application/json": {
247
- "schema": {
248
- "type": "object",
249
- "properties": {
250
- "filter": {
251
- "type": "object",
252
- "description": "When supplied, limits which pages are returned based on the [filter conditions](ref:post-database-query-filter).",
253
- "or": {
254
- "type": "array",
255
- "items": {
256
- "type": "object",
257
- "properties": {
258
- "type": "object",
259
- "properties": {
260
- "property": {
261
- "type": "string"
262
- },
263
- "title": {
264
- "type": "object",
265
- "properties": {
266
- "equals": {
267
- "type": "string"
268
- },
269
- "does_not_equal": {
270
- "type": "string"
271
- },
272
- "contains": {
273
- "type": "string"
274
- },
275
- "does_not_contain": {
276
- "type": "string"
277
- },
278
- "starts_with": {
279
- "type": "string"
280
- },
281
- "ends_with": {
282
- "type": "string"
283
- }
284
- }
285
- },
286
- "rich_text": {
287
- "type": "object",
288
- "properties": {
289
- "equals": {
290
- "type": "string"
291
- },
292
- "does_not_equal": {
293
- "type": "string"
294
- },
295
- "contains": {
296
- "type": "string"
297
- },
298
- "does_not_contain": {
299
- "type": "string"
300
- },
301
- "starts_with": {
302
- "type": "string"
303
- },
304
- "ends_with": {
305
- "type": "string"
306
- }
307
- }
308
- },
309
- "url": {
310
- "type": "object",
311
- "properties": {
312
- "equals": {
313
- "type": "string"
314
- },
315
- "does_not_equal": {
316
- "type": "string"
317
- },
318
- "contains": {
319
- "type": "string"
320
- },
321
- "does_not_contain": {
322
- "type": "string"
323
- },
324
- "starts_with": {
325
- "type": "string"
326
- },
327
- "ends_with": {
328
- "type": "string"
329
- }
330
- }
331
- },
332
- "email": {
333
- "type": "object",
334
- "properties": {
335
- "equals": {
336
- "type": "string"
337
- },
338
- "does_not_equal": {
339
- "type": "string"
340
- },
341
- "contains": {
342
- "type": "string"
343
- },
344
- "does_not_contain": {
345
- "type": "string"
346
- },
347
- "starts_with": {
348
- "type": "string"
349
- },
350
- "ends_with": {
351
- "type": "string"
352
- }
353
- }
354
- },
355
- "phone_number": {
356
- "type": "object",
357
- "properties": {
358
- "equals": {
359
- "type": "string"
360
- },
361
- "does_not_equal": {
362
- "type": "string"
363
- },
364
- "contains": {
365
- "type": "string"
366
- },
367
- "does_not_contain": {
368
- "type": "string"
369
- },
370
- "starts_with": {
371
- "type": "string"
372
- },
373
- "ends_with": {
374
- "type": "string"
375
- }
376
- }
377
- },
378
- "number": {
379
- "type": "object",
380
- "properties": {
381
- "equals": {
382
- "type": "number"
383
- },
384
- "does_not_equal": {
385
- "type": "number"
386
- },
387
- "contains": {
388
- "type": "number"
389
- },
390
- "does_not_contain": {
391
- "type": "number"
392
- },
393
- "starts_with": {
394
- "type": "number"
395
- },
396
- "ends_with": {
397
- "type": "number"
398
- }
399
- }
400
- },
401
- "checkbox": {
402
- "type": "object",
403
- "properties": {
404
- "equals": {
405
- "type": "boolean"
406
- },
407
- "does_not_equal": {
408
- "type": "boolean"
409
- }
410
- }
411
- },
412
- "select": {
413
- "type": "object",
414
- "properties": {
415
- "equals": {
416
- "type": "string"
417
- },
418
- "does_not_equal": {
419
- "type": "string"
420
- }
421
- }
422
- },
423
- "multi_select": {
424
- "type": "object",
425
- "properties": {
426
- "contains": {
427
- "type": "string"
428
- },
429
- "does_not_contain": {
430
- "type": "string"
431
- }
432
- }
433
- },
434
- "status": {
435
- "type": "object",
436
- "properties": {
437
- "equals": {
438
- "type": "string"
439
- },
440
- "does_not_equal": {
441
- "type": "string"
442
- }
443
- }
444
- },
445
- "date": {
446
- "type": "object",
447
- "properties": {
448
- "equals": {
449
- "type": "string",
450
- "format": "date"
451
- },
452
- "before": {
453
- "type": "string",
454
- "format": "date"
455
- },
456
- "after": {
457
- "type": "string",
458
- "format": "date"
459
- },
460
- "on_or_before": {
461
- "type": "string",
462
- "format": "date"
463
- },
464
- "on_or_after": {
465
- "type": "string",
466
- "format": "date"
467
- }
468
- }
469
- },
470
- "created_time": {
471
- "type": "object",
472
- "properties": {
473
- "equals": {
474
- "type": "string",
475
- "format": "date"
476
- },
477
- "before": {
478
- "type": "string",
479
- "format": "date"
480
- },
481
- "after": {
482
- "type": "string",
483
- "format": "date"
484
- },
485
- "on_or_before": {
486
- "type": "string",
487
- "format": "date"
488
- },
489
- "on_or_after": {
490
- "type": "string",
491
- "format": "date"
492
- }
493
- }
494
- },
495
- "last_edited_time": {
496
- "type": "object",
497
- "properties": {
498
- "equals": {
499
- "type": "string",
500
- "format": "date"
501
- },
502
- "before": {
503
- "type": "string",
504
- "format": "date"
505
- },
506
- "after": {
507
- "type": "string",
508
- "format": "date"
509
- },
510
- "on_or_before": {
511
- "type": "string",
512
- "format": "date"
513
- },
514
- "on_or_after": {
515
- "type": "string",
516
- "format": "date"
517
- }
518
- }
519
- }
520
- }
521
- }
522
- },
523
- "maxItems": 100
691
+ "responses": {
692
+ "200": {
693
+ "description": "Successful response",
694
+ "content": {
695
+ "application/json": {
696
+ "schema": {
697
+ "type": "object"
698
+ }
699
+ }
700
+ }
701
+ },
702
+ "400": {
703
+ "description": "Bad request",
704
+ "content": {
705
+ "application/json": {
706
+ "schema": {
707
+ "type": "object",
708
+ "properties": {
709
+ "object": {
710
+ "type": "string",
711
+ "example": "error"
524
712
  },
525
- "and": {
526
- "type": "array",
527
- "items": {
528
- "type": "object",
529
- "properties": {
530
- "type": "object",
531
- "properties": {
532
- "property": {
533
- "type": "string"
534
- },
535
- "title": {
536
- "type": "object",
537
- "properties": {
538
- "equals": {
539
- "type": "string"
540
- },
541
- "does_not_equal": {
542
- "type": "string"
543
- },
544
- "contains": {
545
- "type": "string"
546
- },
547
- "does_not_contain": {
548
- "type": "string"
549
- },
550
- "starts_with": {
551
- "type": "string"
552
- },
553
- "ends_with": {
554
- "type": "string"
555
- }
556
- }
557
- },
558
- "rich_text": {
559
- "type": "object",
560
- "properties": {
561
- "equals": {
562
- "type": "string"
563
- },
564
- "does_not_equal": {
565
- "type": "string"
566
- },
567
- "contains": {
568
- "type": "string"
569
- },
570
- "does_not_contain": {
571
- "type": "string"
572
- },
573
- "starts_with": {
574
- "type": "string"
575
- },
576
- "ends_with": {
577
- "type": "string"
578
- }
579
- }
580
- },
581
- "url": {
582
- "type": "object",
583
- "properties": {
584
- "equals": {
585
- "type": "string"
586
- },
587
- "does_not_equal": {
588
- "type": "string"
589
- },
590
- "contains": {
591
- "type": "string"
592
- },
593
- "does_not_contain": {
594
- "type": "string"
595
- },
596
- "starts_with": {
597
- "type": "string"
598
- },
599
- "ends_with": {
600
- "type": "string"
601
- }
602
- }
603
- },
604
- "email": {
605
- "type": "object",
606
- "properties": {
607
- "equals": {
608
- "type": "string"
609
- },
610
- "does_not_equal": {
611
- "type": "string"
612
- },
613
- "contains": {
614
- "type": "string"
615
- },
616
- "does_not_contain": {
617
- "type": "string"
618
- },
619
- "starts_with": {
620
- "type": "string"
621
- },
622
- "ends_with": {
623
- "type": "string"
624
- }
625
- }
626
- },
627
- "phone_number": {
628
- "type": "object",
629
- "properties": {
630
- "equals": {
631
- "type": "string"
632
- },
633
- "does_not_equal": {
634
- "type": "string"
635
- },
636
- "contains": {
637
- "type": "string"
638
- },
639
- "does_not_contain": {
640
- "type": "string"
641
- },
642
- "starts_with": {
643
- "type": "string"
644
- },
645
- "ends_with": {
646
- "type": "string"
647
- }
648
- }
649
- },
650
- "number": {
651
- "type": "object",
652
- "properties": {
653
- "equals": {
654
- "type": "number"
655
- },
656
- "does_not_equal": {
657
- "type": "number"
658
- },
659
- "contains": {
660
- "type": "number"
661
- },
662
- "does_not_contain": {
663
- "type": "number"
664
- },
665
- "starts_with": {
666
- "type": "number"
667
- },
668
- "ends_with": {
669
- "type": "number"
670
- }
671
- }
672
- },
673
- "checkbox": {
674
- "type": "object",
675
- "properties": {
676
- "equals": {
677
- "type": "boolean"
678
- },
679
- "does_not_equal": {
680
- "type": "boolean"
681
- }
682
- }
683
- },
684
- "select": {
685
- "type": "object",
686
- "properties": {
687
- "equals": {
688
- "type": "string"
689
- },
690
- "does_not_equal": {
691
- "type": "string"
692
- }
693
- }
694
- },
695
- "multi_select": {
696
- "type": "object",
697
- "properties": {
698
- "contains": {
699
- "type": "string"
700
- },
701
- "does_not_contain": {
702
- "type": "string"
703
- }
704
- }
705
- },
706
- "status": {
707
- "type": "object",
708
- "properties": {
709
- "equals": {
710
- "type": "string"
711
- },
712
- "does_not_equal": {
713
- "type": "string"
714
- }
715
- }
716
- },
717
- "date": {
718
- "type": "object",
719
- "properties": {
720
- "equals": {
721
- "type": "string",
722
- "format": "date"
723
- },
724
- "before": {
725
- "type": "string",
726
- "format": "date"
727
- },
728
- "after": {
729
- "type": "string",
730
- "format": "date"
731
- },
732
- "on_or_before": {
733
- "type": "string",
734
- "format": "date"
735
- },
736
- "on_or_after": {
737
- "type": "string",
738
- "format": "date"
739
- }
740
- }
741
- },
742
- "created_time": {
743
- "type": "object",
744
- "properties": {
745
- "equals": {
746
- "type": "string",
747
- "format": "date"
748
- },
749
- "before": {
750
- "type": "string",
751
- "format": "date"
752
- },
753
- "after": {
754
- "type": "string",
755
- "format": "date"
756
- },
757
- "on_or_before": {
758
- "type": "string",
759
- "format": "date"
760
- },
761
- "on_or_after": {
762
- "type": "string",
763
- "format": "date"
764
- }
765
- }
766
- },
767
- "last_edited_time": {
768
- "type": "object",
769
- "properties": {
770
- "equals": {
771
- "type": "string",
772
- "format": "date"
773
- },
774
- "before": {
775
- "type": "string",
776
- "format": "date"
777
- },
778
- "after": {
779
- "type": "string",
780
- "format": "date"
781
- },
782
- "on_or_before": {
783
- "type": "string",
784
- "format": "date"
785
- },
786
- "on_or_after": {
787
- "type": "string",
788
- "format": "date"
789
- }
790
- }
791
- }
792
- }
793
- }
794
- },
795
- "maxItems": 100
713
+ "status": {
714
+ "type": "integer",
715
+ "example": 400
716
+ },
717
+ "code": {
718
+ "type": "string"
719
+ },
720
+ "message": {
721
+ "type": "string"
796
722
  }
797
- },
798
- "sorts": {
723
+ }
724
+ }
725
+ }
726
+ }
727
+ }
728
+ },
729
+ "deprecated": false,
730
+ "security": []
731
+ },
732
+ "patch": {
733
+ "summary": "Append block children",
734
+ "description": "",
735
+ "operationId": "patch-block-children",
736
+ "parameters": [
737
+ {
738
+ "name": "block_id",
739
+ "in": "path",
740
+ "description": "Identifier for a [block](ref:block). Also accepts a [page](ref:page) ID.",
741
+ "schema": {
742
+ "type": "string"
743
+ },
744
+ "required": true
745
+ },
746
+ {
747
+ "$ref": "#/components/parameters/notionVersion"
748
+ }
749
+ ],
750
+ "requestBody": {
751
+ "content": {
752
+ "application/json": {
753
+ "schema": {
754
+ "type": "object",
755
+ "required": [
756
+ "children"
757
+ ],
758
+ "properties": {
759
+ "children": {
799
760
  "type": "array",
800
- "description": "When supplied, orders the results based on the provided [sort criteria](ref:post-database-query-sort).",
801
761
  "items": {
802
- "type": "object",
803
- "required": [
804
- "property",
805
- "direction"
806
- ],
807
- "properties": {
808
- "property": {
809
- "type": "string"
810
- },
811
- "direction": {
812
- "enum": [
813
- "ascending",
814
- "descending"
815
- ],
816
- "type": "string"
817
- }
818
- }
762
+ "$ref": "#/components/schemas/blockObjectRequest"
763
+ },
764
+ "description": "Child content to append to a container block as an array of [block objects](ref:block)"
765
+ },
766
+ "after": {
767
+ "type": "string",
768
+ "description": "The ID of the existing block that the new block should be appended after."
769
+ }
770
+ }
771
+ }
772
+ }
773
+ }
774
+ },
775
+ "responses": {
776
+ "200": {
777
+ "description": "Successful response",
778
+ "content": {
779
+ "application/json": {
780
+ "schema": {
781
+ "type": "object"
782
+ }
783
+ }
784
+ }
785
+ },
786
+ "400": {
787
+ "description": "Bad request",
788
+ "content": {
789
+ "application/json": {
790
+ "schema": {
791
+ "type": "object",
792
+ "properties": {
793
+ "object": {
794
+ "type": "string",
795
+ "example": "error"
796
+ },
797
+ "status": {
798
+ "type": "integer",
799
+ "example": 400
800
+ },
801
+ "code": {
802
+ "type": "string"
803
+ },
804
+ "message": {
805
+ "type": "string"
806
+ }
807
+ }
808
+ }
809
+ }
810
+ }
811
+ }
812
+ },
813
+ "deprecated": false,
814
+ "security": []
815
+ }
816
+ },
817
+ "/v1/blocks/{block_id}": {
818
+ "get": {
819
+ "summary": "Retrieve a block",
820
+ "description": "",
821
+ "operationId": "retrieve-a-block",
822
+ "parameters": [
823
+ {
824
+ "name": "block_id",
825
+ "in": "path",
826
+ "description": "Identifier for a Notion block",
827
+ "schema": {
828
+ "type": "string"
829
+ },
830
+ "required": true
831
+ },
832
+ {
833
+ "$ref": "#/components/parameters/notionVersion"
834
+ }
835
+ ],
836
+ "responses": {
837
+ "200": {
838
+ "description": "Successful response",
839
+ "content": {
840
+ "application/json": {
841
+ "schema": {
842
+ "type": "object"
843
+ }
844
+ }
845
+ }
846
+ },
847
+ "400": {
848
+ "description": "Bad request",
849
+ "content": {
850
+ "application/json": {
851
+ "schema": {
852
+ "type": "object",
853
+ "properties": {
854
+ "object": {
855
+ "type": "string",
856
+ "example": "error"
857
+ },
858
+ "status": {
859
+ "type": "integer",
860
+ "example": 400
861
+ },
862
+ "code": {
863
+ "type": "string"
864
+ },
865
+ "message": {
866
+ "type": "string"
867
+ }
868
+ }
869
+ }
870
+ }
871
+ }
872
+ }
873
+ },
874
+ "deprecated": false,
875
+ "security": []
876
+ },
877
+ "patch": {
878
+ "summary": "Update a block",
879
+ "description": "",
880
+ "operationId": "update-a-block",
881
+ "parameters": [
882
+ {
883
+ "name": "block_id",
884
+ "in": "path",
885
+ "description": "Identifier for a Notion block",
886
+ "schema": {
887
+ "type": "string"
888
+ },
889
+ "required": true
890
+ },
891
+ {
892
+ "$ref": "#/components/parameters/notionVersion"
893
+ }
894
+ ],
895
+ "requestBody": {
896
+ "content": {
897
+ "application/json": {
898
+ "schema": {
899
+ "type": "object",
900
+ "properties": {
901
+ "type": {
902
+ "type": "object",
903
+ "description": "The [block object `type`](ref:block#block-object-keys) value with the properties to be updated. Currently only `text` (for supported block types) and `checked` (for `to_do` blocks) fields can be updated.",
904
+ "properties": {}
905
+ },
906
+ "archived": {
907
+ "type": "boolean",
908
+ "description": "Set to true to archive (delete) a block. Set to false to un-archive (restore) a block.",
909
+ "default": true
910
+ }
911
+ }
912
+ }
913
+ }
914
+ }
915
+ },
916
+ "responses": {
917
+ "200": {
918
+ "description": "Successful response",
919
+ "content": {
920
+ "application/json": {
921
+ "schema": {
922
+ "type": "object"
923
+ }
924
+ }
925
+ }
926
+ },
927
+ "400": {
928
+ "description": "Bad request",
929
+ "content": {
930
+ "application/json": {
931
+ "schema": {
932
+ "type": "object",
933
+ "properties": {
934
+ "object": {
935
+ "type": "string",
936
+ "example": "error"
937
+ },
938
+ "status": {
939
+ "type": "integer",
940
+ "example": 400
941
+ },
942
+ "code": {
943
+ "type": "string"
944
+ },
945
+ "message": {
946
+ "type": "string"
947
+ }
948
+ }
949
+ }
950
+ }
951
+ }
952
+ }
953
+ },
954
+ "deprecated": false,
955
+ "security": []
956
+ },
957
+ "delete": {
958
+ "summary": "Delete a block",
959
+ "description": "",
960
+ "operationId": "delete-a-block",
961
+ "parameters": [
962
+ {
963
+ "name": "block_id",
964
+ "in": "path",
965
+ "description": "Identifier for a Notion block",
966
+ "schema": {
967
+ "type": "string"
968
+ },
969
+ "required": true
970
+ },
971
+ {
972
+ "$ref": "#/components/parameters/notionVersion"
973
+ }
974
+ ],
975
+ "responses": {
976
+ "200": {
977
+ "description": "Successful response",
978
+ "content": {
979
+ "application/json": {
980
+ "schema": {
981
+ "type": "object"
982
+ }
983
+ }
984
+ }
985
+ },
986
+ "400": {
987
+ "description": "Bad request",
988
+ "content": {
989
+ "application/json": {
990
+ "schema": {
991
+ "type": "object",
992
+ "properties": {
993
+ "object": {
994
+ "type": "string",
995
+ "example": "error"
996
+ },
997
+ "status": {
998
+ "type": "integer",
999
+ "example": 400
1000
+ },
1001
+ "code": {
1002
+ "type": "string"
1003
+ },
1004
+ "message": {
1005
+ "type": "string"
1006
+ }
1007
+ }
1008
+ }
1009
+ }
1010
+ }
1011
+ }
1012
+ },
1013
+ "deprecated": false,
1014
+ "security": []
1015
+ }
1016
+ },
1017
+ "/v1/pages/{page_id}": {
1018
+ "get": {
1019
+ "summary": "Retrieve a page",
1020
+ "description": "",
1021
+ "operationId": "retrieve-a-page",
1022
+ "parameters": [
1023
+ {
1024
+ "name": "page_id",
1025
+ "in": "path",
1026
+ "description": "Identifier for a Notion page",
1027
+ "schema": {
1028
+ "type": "string"
1029
+ },
1030
+ "required": true
1031
+ },
1032
+ {
1033
+ "name": "filter_properties",
1034
+ "in": "query",
1035
+ "description": "A list of page property value IDs associated with the page. Use this param to limit the response to a specific page property value or values. To retrieve multiple properties, specify each page property ID. For example: `?filter_properties=iAk8&filter_properties=b7dh`.",
1036
+ "schema": {
1037
+ "type": "string"
1038
+ }
1039
+ },
1040
+ {
1041
+ "$ref": "#/components/parameters/notionVersion"
1042
+ }
1043
+ ],
1044
+ "responses": {
1045
+ "200": {
1046
+ "description": "Successful response",
1047
+ "content": {
1048
+ "application/json": {
1049
+ "schema": {
1050
+ "type": "object"
1051
+ }
1052
+ }
1053
+ }
1054
+ },
1055
+ "400": {
1056
+ "description": "Bad request",
1057
+ "content": {
1058
+ "application/json": {
1059
+ "schema": {
1060
+ "type": "object",
1061
+ "properties": {
1062
+ "object": {
1063
+ "type": "string",
1064
+ "example": "error"
1065
+ },
1066
+ "status": {
1067
+ "type": "integer",
1068
+ "example": 400
1069
+ },
1070
+ "code": {
1071
+ "type": "string"
1072
+ },
1073
+ "message": {
1074
+ "type": "string"
819
1075
  }
820
- },
821
- "start_cursor": {
822
- "type": "string",
823
- "description": "When supplied, returns a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results."
824
- },
825
- "page_size": {
826
- "type": "integer",
827
- "description": "The number of items from the full list desired in the response. Maximum: 100",
828
- "default": 100
829
- },
830
- "archived": {
831
- "type": "boolean"
832
- },
833
- "in_trash": {
834
- "type": "boolean"
835
1076
  }
836
1077
  }
837
1078
  }
838
1079
  }
839
1080
  }
840
1081
  },
841
- "responses": {},
842
1082
  "deprecated": false,
843
1083
  "security": []
844
- }
845
- },
846
- "/v1/search": {
847
- "post": {
848
- "summary": "Search by title",
1084
+ },
1085
+ "patch": {
1086
+ "summary": "Update page properties",
849
1087
  "description": "",
850
- "operationId": "post-search",
851
- "parameters": [],
1088
+ "operationId": "patch-page",
1089
+ "parameters": [
1090
+ {
1091
+ "name": "page_id",
1092
+ "in": "path",
1093
+ "description": "The identifier for the Notion page to be updated.",
1094
+ "schema": {
1095
+ "type": "string"
1096
+ },
1097
+ "required": true
1098
+ },
1099
+ {
1100
+ "$ref": "#/components/parameters/notionVersion"
1101
+ }
1102
+ ],
852
1103
  "requestBody": {
853
1104
  "content": {
854
1105
  "application/json": {
855
1106
  "schema": {
856
1107
  "type": "object",
857
1108
  "properties": {
858
- "query": {
859
- "type": "string",
860
- "description": "The text that the API compares page and database titles against."
861
- },
862
- "sort": {
1109
+ "properties": {
1110
+ "description": "The property values to update for the page. The keys are the names or IDs of the property and the values are property values. If a page property ID is not included, then it is not changed.",
863
1111
  "type": "object",
864
- "description": "A set of criteria, `direction` and `timestamp` keys, that orders the results. The **only** supported timestamp value is `\"last_edited_time\"`. Supported `direction` values are `\"ascending\"` and `\"descending\"`. If `sort` is not provided, then the most recently edited results are returned first.",
865
1112
  "properties": {
866
- "direction": {
867
- "type": "string",
868
- "description": "The direction to sort. Possible values include `ascending` and `descending`."
1113
+ "title": {
1114
+ "type": "array",
1115
+ "items": {
1116
+ "type": "object",
1117
+ "properties": {
1118
+ "text": {
1119
+ "type": "object",
1120
+ "properties": {
1121
+ "content": {
1122
+ "type": "string"
1123
+ },
1124
+ "link": {
1125
+ "type": [
1126
+ "object",
1127
+ "null"
1128
+ ],
1129
+ "properties": {
1130
+ "url": {
1131
+ "type": "string"
1132
+ }
1133
+ },
1134
+ "required": [
1135
+ "url"
1136
+ ]
1137
+ }
1138
+ },
1139
+ "additionalProperties": false,
1140
+ "required": [
1141
+ "content"
1142
+ ]
1143
+ },
1144
+ "type": {
1145
+ "enum": [
1146
+ "text"
1147
+ ],
1148
+ "type": "string"
1149
+ }
1150
+ },
1151
+ "additionalProperties": false,
1152
+ "required": [
1153
+ "text"
1154
+ ]
1155
+ },
1156
+ "maxItems": 100
869
1157
  },
870
- "timestamp": {
871
- "type": "string",
872
- "description": "The name of the timestamp to sort against. Possible values include `last_edited_time`."
1158
+ "type": {
1159
+ "enum": [
1160
+ "title"
1161
+ ],
1162
+ "type": "string"
873
1163
  }
874
- }
1164
+ },
1165
+ "additionalProperties": false,
1166
+ "required": [
1167
+ "title"
1168
+ ]
875
1169
  },
876
- "filter": {
1170
+ "in_trash": {
1171
+ "type": "boolean",
1172
+ "description": "Set to true to delete a block. Set to false to restore a block.",
1173
+ "default": false
1174
+ },
1175
+ "archived": {
1176
+ "type": "boolean"
1177
+ },
1178
+ "icon": {
1179
+ "description": "A page icon for the page. Supported types are [external file object](https://developers.notion.com/reference/file-object) or [emoji object](https://developers.notion.com/reference/emoji-object).",
877
1180
  "type": "object",
878
- "description": "A set of criteria, `value` and `property` keys, that limits the results to either only pages or only databases. Possible `value` values are `\"page\"` or `\"database\"`. The only supported `property` value is `\"object\"`.",
879
1181
  "properties": {
880
- "value": {
881
- "type": "string",
882
- "description": "The value of the property to filter the results by. Possible values for object type include `page` or `database`. **Limitation**: Currently the only filter allowed is `object` which will filter by type of object (either `page` or `database`)"
883
- },
884
- "property": {
885
- "type": "string",
886
- "description": "The name of the property to filter by. Currently the only property you can filter by is the object type. Possible values include `object`. Limitation: Currently the only filter allowed is `object` which will filter by type of object (either `page` or `database`)"
1182
+ "emoji": {
1183
+ "type": "string"
887
1184
  }
888
- }
889
- },
890
- "start_cursor": {
891
- "type": "string",
892
- "description": "A `cursor` value returned in a previous response that If supplied, limits the response to results starting after the `cursor`. If not supplied, then the first page of results is returned. Refer to [pagination](https://developers.notion.com/reference/intro#pagination) for more details."
1185
+ },
1186
+ "additionalProperties": false,
1187
+ "required": [
1188
+ "emoji"
1189
+ ]
893
1190
  },
894
- "page_size": {
895
- "type": "integer",
896
- "description": "The number of items from the full list to include in the response. Maximum: `100`.",
897
- "default": 100,
898
- "format": "int32"
1191
+ "cover": {
1192
+ "type": "object",
1193
+ "description": "A cover image for the page. Only [external file objects](https://developers.notion.com/reference/file-object) are supported.",
1194
+ "properties": {
1195
+ "external": {
1196
+ "type": "object",
1197
+ "properties": {
1198
+ "url": {
1199
+ "type": "string"
1200
+ }
1201
+ },
1202
+ "additionalProperties": false,
1203
+ "required": [
1204
+ "url"
1205
+ ]
1206
+ },
1207
+ "type": {
1208
+ "enum": [
1209
+ "external"
1210
+ ],
1211
+ "type": "string"
1212
+ }
1213
+ },
1214
+ "required": [
1215
+ "external"
1216
+ ],
1217
+ "additionalProperties": false
899
1218
  }
900
1219
  }
901
1220
  }
902
1221
  }
903
1222
  }
904
1223
  },
905
- "responses": {},
906
- "deprecated": false,
907
- "security": []
908
- }
909
- },
910
- "/v1/blocks/{block_id}/children": {
911
- "get": {
912
- "summary": "Retrieve block children",
913
- "description": "",
914
- "operationId": "get-block-children",
915
- "parameters": [
916
- {
917
- "name": "block_id",
918
- "in": "path",
919
- "description": "Identifier for a [block](ref:block)",
920
- "schema": {
921
- "type": "string"
922
- },
923
- "required": true
924
- },
925
- {
926
- "name": "start_cursor",
927
- "in": "query",
928
- "description": "If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results.",
929
- "schema": {
930
- "type": "string"
1224
+ "responses": {
1225
+ "200": {
1226
+ "description": "Successful response",
1227
+ "content": {
1228
+ "application/json": {
1229
+ "schema": {
1230
+ "type": "object"
1231
+ }
1232
+ }
931
1233
  }
932
1234
  },
933
- {
934
- "name": "page_size",
935
- "in": "query",
936
- "description": "The number of items from the full list desired in the response. Maximum: 100",
937
- "schema": {
938
- "type": "integer",
939
- "format": "int32",
940
- "default": 100
1235
+ "400": {
1236
+ "description": "Bad request",
1237
+ "content": {
1238
+ "application/json": {
1239
+ "schema": {
1240
+ "type": "object",
1241
+ "properties": {
1242
+ "object": {
1243
+ "type": "string",
1244
+ "example": "error"
1245
+ },
1246
+ "status": {
1247
+ "type": "integer",
1248
+ "example": 400
1249
+ },
1250
+ "code": {
1251
+ "type": "string"
1252
+ },
1253
+ "message": {
1254
+ "type": "string"
1255
+ }
1256
+ }
1257
+ }
1258
+ }
941
1259
  }
942
1260
  }
943
- ],
944
- "responses": {},
1261
+ },
945
1262
  "deprecated": false,
946
1263
  "security": []
947
- },
948
- "patch": {
949
- "summary": "Append block children",
1264
+ }
1265
+ },
1266
+ "/v1/pages": {
1267
+ "post": {
1268
+ "summary": "Create a page",
950
1269
  "description": "",
951
- "operationId": "patch-block-children",
1270
+ "operationId": "post-page",
952
1271
  "parameters": [
953
1272
  {
954
- "name": "block_id",
955
- "in": "path",
956
- "description": "Identifier for a [block](ref:block). Also accepts a [page](ref:page) ID.",
957
- "schema": {
958
- "type": "string"
959
- },
960
- "required": true
1273
+ "$ref": "#/components/parameters/notionVersion"
961
1274
  }
962
1275
  ],
963
1276
  "requestBody": {
@@ -966,403 +1279,325 @@
966
1279
  "schema": {
967
1280
  "type": "object",
968
1281
  "required": [
969
- "children"
1282
+ "parent",
1283
+ "properties"
970
1284
  ],
971
1285
  "properties": {
972
- "children": {
973
- "type": "array",
974
- "items": {
975
- "type": "object",
976
- "properties": {
977
- "paragraph": {
1286
+ "parent": {
1287
+ "$ref": "#/components/schemas/parentRequest"
1288
+ },
1289
+ "properties": {
1290
+ "type": "object",
1291
+ "properties": {
1292
+ "title": {
1293
+ "type": "array",
1294
+ "items": {
978
1295
  "type": "object",
979
- "properties": {
980
- "rich_text": {
981
- "type": "array",
982
- "items": {
983
- "type": "object",
984
- "properties": {
985
- "text": {
986
- "type": "object",
987
- "properties": {
988
- "content": {
989
- "type": "string"
990
- },
991
- "link": {
992
- "type": [
993
- "object",
994
- "null"
995
- ],
996
- "properties": {
997
- "url": {
998
- "type": "string"
999
- }
1000
- },
1001
- "required": [
1002
- "url"
1003
- ]
1004
- }
1005
- },
1006
- "additionalProperties": false,
1007
- "required": [
1008
- "content"
1009
- ]
1010
- },
1011
- "type": {
1012
- "enum": [
1013
- "text"
1014
- ],
1015
- "type": "string"
1016
- }
1017
- },
1018
- "additionalProperties": false,
1019
- "required": [
1020
- "text"
1021
- ]
1022
- },
1023
- "maxItems": 100
1024
- }
1025
- },
1026
- "additionalProperties": false,
1027
1296
  "required": [
1028
- "rich_text"
1029
- ]
1030
- },
1031
- "bulleted_list_item": {
1032
- "type": "object",
1297
+ "text"
1298
+ ],
1033
1299
  "properties": {
1034
- "rich_text": {
1035
- "type": "array",
1036
- "items": {
1037
- "type": "object",
1038
- "properties": {
1039
- "text": {
1040
- "type": "object",
1041
- "properties": {
1042
- "content": {
1043
- "type": "string"
1044
- },
1045
- "link": {
1046
- "type": [
1047
- "object",
1048
- "null"
1049
- ],
1050
- "properties": {
1051
- "url": {
1052
- "type": "string"
1053
- }
1054
- },
1055
- "required": [
1056
- "url"
1057
- ]
1058
- }
1059
- },
1060
- "additionalProperties": false,
1061
- "required": [
1062
- "content"
1063
- ]
1064
- },
1065
- "type": {
1066
- "enum": [
1067
- "text"
1068
- ],
1069
- "type": "string"
1070
- }
1071
- },
1072
- "additionalProperties": false,
1073
- "required": [
1074
- "text"
1075
- ]
1076
- },
1077
- "maxItems": 100
1300
+ "text": {
1301
+ "type": "object",
1302
+ "required": [
1303
+ "content"
1304
+ ],
1305
+ "properties": {
1306
+ "content": {
1307
+ "type": "string"
1308
+ }
1309
+ }
1078
1310
  }
1079
- },
1080
- "additionalProperties": false,
1081
- "required": [
1082
- "rich_text"
1083
- ]
1311
+ }
1084
1312
  },
1085
- "type": {
1086
- "enum": [
1087
- "paragraph",
1088
- "bulleted_list_item"
1089
- ],
1090
- "type": "string"
1091
- }
1313
+ "maxItems": 100
1092
1314
  },
1093
- "additionalProperties": false
1315
+ "type": {
1316
+ "enum": [
1317
+ "title"
1318
+ ],
1319
+ "type": "string"
1320
+ }
1094
1321
  },
1095
- "description": "Child content to append to a container block as an array of [block objects](ref:block)"
1322
+ "additionalProperties": false,
1323
+ "required": [
1324
+ "title"
1325
+ ]
1096
1326
  },
1097
- "after": {
1327
+ "children": {
1328
+ "type": "array",
1329
+ "description": "The content to be rendered on the new page, represented as an array of [block objects](https://developers.notion.com/reference/block).",
1330
+ "items": {
1331
+ "type": "string"
1332
+ }
1333
+ },
1334
+ "icon": {
1098
1335
  "type": "string",
1099
- "description": "The ID of the existing block that the new block should be appended after."
1336
+ "description": "The icon of the new page. Either an [emoji object](https://developers.notion.com/reference/emoji-object) or an [external file object](https://developers.notion.com/reference/file-object)..",
1337
+ "format": "json"
1338
+ },
1339
+ "cover": {
1340
+ "type": "string",
1341
+ "description": "The cover image of the new page, represented as a [file object](https://developers.notion.com/reference/file-object).",
1342
+ "format": "json"
1343
+ }
1344
+ }
1345
+ }
1346
+ }
1347
+ }
1348
+ },
1349
+ "responses": {
1350
+ "200": {
1351
+ "description": "Successful response",
1352
+ "content": {
1353
+ "application/json": {
1354
+ "schema": {
1355
+ "type": "object"
1356
+ }
1357
+ }
1358
+ }
1359
+ },
1360
+ "400": {
1361
+ "description": "Bad request",
1362
+ "content": {
1363
+ "application/json": {
1364
+ "schema": {
1365
+ "type": "object",
1366
+ "properties": {
1367
+ "object": {
1368
+ "type": "string",
1369
+ "example": "error"
1370
+ },
1371
+ "status": {
1372
+ "type": "integer",
1373
+ "example": 400
1374
+ },
1375
+ "code": {
1376
+ "type": "string"
1377
+ },
1378
+ "message": {
1379
+ "type": "string"
1380
+ }
1100
1381
  }
1101
1382
  }
1102
1383
  }
1103
1384
  }
1104
1385
  }
1105
1386
  },
1106
- "responses": {},
1107
1387
  "deprecated": false,
1108
1388
  "security": []
1109
1389
  }
1110
1390
  },
1111
- "/v1/blocks/{block_id}": {
1391
+ "/v1/pages/{page_id}/properties/{property_id}": {
1112
1392
  "get": {
1113
- "summary": "Retrieve a block",
1393
+ "summary": "Retrieve a page property item",
1114
1394
  "description": "",
1115
- "operationId": "retrieve-a-block",
1395
+ "operationId": "retrieve-a-page-property",
1116
1396
  "parameters": [
1117
1397
  {
1118
- "name": "block_id",
1398
+ "name": "page_id",
1119
1399
  "in": "path",
1120
- "description": "Identifier for a Notion block",
1400
+ "description": "Identifier for a Notion page",
1121
1401
  "schema": {
1122
1402
  "type": "string"
1123
1403
  },
1124
1404
  "required": true
1125
- }
1126
- ],
1127
- "responses": {},
1128
- "deprecated": false,
1129
- "security": []
1130
- },
1131
- "patch": {
1132
- "summary": "Update a block",
1133
- "description": "",
1134
- "operationId": "update-a-block",
1135
- "parameters": [
1405
+ },
1136
1406
  {
1137
- "name": "block_id",
1407
+ "name": "property_id",
1138
1408
  "in": "path",
1139
- "description": "Identifier for a Notion block",
1409
+ "description": "Identifier for a page [property](https://developers.notion.com/reference/page#all-property-values)",
1140
1410
  "schema": {
1141
1411
  "type": "string"
1142
1412
  },
1143
1413
  "required": true
1414
+ },
1415
+ {
1416
+ "name": "page_size",
1417
+ "in": "query",
1418
+ "description": "For paginated properties. The max number of property item objects on a page. The default size is 100",
1419
+ "schema": {
1420
+ "type": "integer",
1421
+ "format": "int32"
1422
+ }
1423
+ },
1424
+ {
1425
+ "name": "start_cursor",
1426
+ "in": "query",
1427
+ "description": "For paginated properties.",
1428
+ "schema": {
1429
+ "type": "string"
1430
+ }
1431
+ },
1432
+ {
1433
+ "$ref": "#/components/parameters/notionVersion"
1144
1434
  }
1145
1435
  ],
1146
- "requestBody": {
1147
- "content": {
1148
- "application/json": {
1149
- "schema": {
1150
- "type": "object",
1151
- "properties": {
1152
- "type": {
1153
- "type": "object",
1154
- "description": "The [block object `type`](ref:block#block-object-keys) value with the properties to be updated. Currently only `text` (for supported block types) and `checked` (for `to_do` blocks) fields can be updated.",
1155
- "properties": {}
1156
- },
1157
- "archived": {
1158
- "type": "boolean",
1159
- "description": "Set to true to archive (delete) a block. Set to false to un-archive (restore) a block.",
1160
- "default": true
1436
+ "responses": {
1437
+ "200": {
1438
+ "description": "200",
1439
+ "content": {
1440
+ "application/json": {
1441
+ "examples": {}
1442
+ }
1443
+ }
1444
+ },
1445
+ "400": {
1446
+ "description": "Bad request",
1447
+ "content": {
1448
+ "application/json": {
1449
+ "schema": {
1450
+ "type": "object",
1451
+ "properties": {
1452
+ "object": {
1453
+ "type": "string",
1454
+ "example": "error"
1455
+ },
1456
+ "status": {
1457
+ "type": "integer",
1458
+ "example": 400
1459
+ },
1460
+ "code": {
1461
+ "type": "string"
1462
+ },
1463
+ "message": {
1464
+ "type": "string"
1465
+ }
1161
1466
  }
1162
1467
  }
1163
1468
  }
1164
1469
  }
1165
1470
  }
1166
1471
  },
1167
- "responses": {},
1168
- "deprecated": false,
1169
- "security": []
1170
- },
1171
- "delete": {
1172
- "summary": "Delete a block",
1173
- "description": "",
1174
- "operationId": "delete-a-block",
1175
- "parameters": [
1176
- {
1177
- "name": "block_id",
1178
- "in": "path",
1179
- "description": "Identifier for a Notion block",
1180
- "schema": {
1181
- "type": "string"
1182
- },
1183
- "required": true
1184
- }
1185
- ],
1186
- "responses": {},
1187
1472
  "deprecated": false,
1188
1473
  "security": []
1189
1474
  }
1190
1475
  },
1191
- "/v1/pages/{page_id}": {
1476
+ "/v1/comments": {
1192
1477
  "get": {
1193
- "summary": "Retrieve a page",
1194
- "description": "",
1195
- "operationId": "retrieve-a-page",
1478
+ "summary": "Retrieve comments",
1479
+ "description": "Retrieves a list of un-resolved [Comment objects](ref:comment-object) from a page or block.",
1480
+ "operationId": "retrieve-a-comment",
1196
1481
  "parameters": [
1197
1482
  {
1198
- "name": "page_id",
1199
- "in": "path",
1200
- "description": "Identifier for a Notion page",
1201
- "schema": {
1202
- "type": "string"
1203
- },
1204
- "required": true
1205
- },
1206
- {
1207
- "name": "filter_properties",
1483
+ "name": "block_id",
1208
1484
  "in": "query",
1209
- "description": "A list of page property value IDs associated with the page. Use this param to limit the response to a specific page property value or values. To retrieve multiple properties, specify each page property ID. For example: `?filter_properties=iAk8&filter_properties=b7dh`.",
1485
+ "description": "Identifier for a Notion block or page",
1486
+ "required": true,
1210
1487
  "schema": {
1211
1488
  "type": "string"
1212
1489
  }
1213
- }
1214
- ],
1215
- "responses": {},
1216
- "deprecated": false,
1217
- "security": []
1218
- },
1219
- "patch": {
1220
- "summary": "Update page properties",
1221
- "description": "",
1222
- "operationId": "patch-page",
1223
- "parameters": [
1224
- {
1225
- "name": "page_id",
1226
- "in": "path",
1227
- "description": "The identifier for the Notion page to be updated.",
1490
+ },
1491
+ {
1492
+ "name": "start_cursor",
1493
+ "in": "query",
1494
+ "description": "If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results.",
1228
1495
  "schema": {
1229
1496
  "type": "string"
1230
- },
1231
- "required": true
1497
+ }
1498
+ },
1499
+ {
1500
+ "name": "page_size",
1501
+ "in": "query",
1502
+ "description": "The number of items from the full list desired in the response. Maximum: 100",
1503
+ "schema": {
1504
+ "type": "integer",
1505
+ "format": "int32"
1506
+ }
1507
+ },
1508
+ {
1509
+ "$ref": "#/components/parameters/notionVersion"
1232
1510
  }
1233
1511
  ],
1234
- "requestBody": {
1235
- "content": {
1236
- "application/json": {
1237
- "schema": {
1238
- "type": "object",
1239
- "properties": {
1240
- "properties": {
1241
- "description": "The property values to update for the page. The keys are the names or IDs of the property and the values are property values. If a page property ID is not included, then it is not changed.",
1242
- "type": "object",
1243
- "properties": {
1244
- "title": {
1245
- "type": "array",
1246
- "items": {
1247
- "type": "object",
1248
- "properties": {
1249
- "text": {
1250
- "type": "object",
1251
- "properties": {
1252
- "content": {
1253
- "type": "string"
1254
- },
1255
- "link": {
1256
- "type": [
1257
- "object",
1258
- "null"
1259
- ],
1260
- "properties": {
1261
- "url": {
1262
- "type": "string"
1263
- }
1264
- },
1265
- "required": [
1266
- "url"
1267
- ]
1268
- }
1512
+ "responses": {
1513
+ "200": {
1514
+ "description": "200",
1515
+ "content": {
1516
+ "application/json": {
1517
+ "examples": {
1518
+ "OK": {
1519
+ "value": {
1520
+ "object": "list",
1521
+ "results": [
1522
+ {
1523
+ "object": "comment",
1524
+ "id": "94cc56ab-9f02-409d-9f99-1037e9fe502f",
1525
+ "parent": {
1526
+ "type": "page_id",
1527
+ "page_id": "5c6a2821-6bb1-4a7e-b6e1-c50111515c3d"
1528
+ },
1529
+ "discussion_id": "f1407351-36f5-4c49-a13c-49f8ba11776d",
1530
+ "created_time": "2022-07-15T16:52:00.000Z",
1531
+ "last_edited_time": "2022-07-15T19:16:00.000Z",
1532
+ "created_by": {
1533
+ "object": "user",
1534
+ "id": "9b15170a-9941-4297-8ee6-83fa7649a87a"
1535
+ },
1536
+ "rich_text": [
1537
+ {
1538
+ "type": "text",
1539
+ "text": {
1540
+ "content": "Single comment",
1541
+ "link": null
1269
1542
  },
1270
- "additionalProperties": false,
1271
- "required": [
1272
- "content"
1273
- ]
1274
- },
1275
- "type": {
1276
- "enum": [
1277
- "text"
1278
- ],
1279
- "type": "string"
1543
+ "annotations": {
1544
+ "bold": false,
1545
+ "italic": false,
1546
+ "strikethrough": false,
1547
+ "underline": false,
1548
+ "code": false,
1549
+ "color": "default"
1550
+ },
1551
+ "plain_text": "Single comment",
1552
+ "href": null
1280
1553
  }
1281
- },
1282
- "additionalProperties": false,
1283
- "required": [
1284
- "text"
1285
1554
  ]
1286
- },
1287
- "maxItems": 100
1288
- },
1289
- "type": {
1290
- "enum": [
1291
- "title"
1292
- ],
1293
- "type": "string"
1294
- }
1555
+ }
1556
+ ],
1557
+ "next_cursor": null,
1558
+ "has_more": false,
1559
+ "type": "comment",
1560
+ "comment": {}
1561
+ }
1562
+ }
1563
+ }
1564
+ }
1565
+ }
1566
+ },
1567
+ "400": {
1568
+ "description": "Bad request",
1569
+ "content": {
1570
+ "application/json": {
1571
+ "schema": {
1572
+ "type": "object",
1573
+ "properties": {
1574
+ "object": {
1575
+ "type": "string",
1576
+ "example": "error"
1295
1577
  },
1296
- "additionalProperties": false,
1297
- "required": [
1298
- "title"
1299
- ]
1300
- },
1301
- "in_trash": {
1302
- "type": "boolean",
1303
- "description": "Set to true to delete a block. Set to false to restore a block.",
1304
- "default": false
1305
- },
1306
- "archived": {
1307
- "type": "boolean"
1308
- },
1309
- "icon": {
1310
- "description": "A page icon for the page. Supported types are [external file object](https://developers.notion.com/reference/file-object) or [emoji object](https://developers.notion.com/reference/emoji-object).",
1311
- "type": "object",
1312
- "properties": {
1313
- "emoji": {
1314
- "type": "string"
1315
- }
1578
+ "status": {
1579
+ "type": "integer",
1580
+ "example": 400
1316
1581
  },
1317
- "additionalProperties": false,
1318
- "required": [
1319
- "emoji"
1320
- ]
1321
- },
1322
- "cover": {
1323
- "type": "object",
1324
- "description": "A cover image for the page. Only [external file objects](https://developers.notion.com/reference/file-object) are supported.",
1325
- "properties": {
1326
- "external": {
1327
- "type": "object",
1328
- "properties": {
1329
- "url": {
1330
- "type": "string"
1331
- }
1332
- },
1333
- "additionalProperties": false,
1334
- "required": [
1335
- "url"
1336
- ]
1337
- },
1338
- "type": {
1339
- "enum": [
1340
- "external"
1341
- ],
1342
- "type": "string"
1343
- }
1582
+ "code": {
1583
+ "type": "string"
1344
1584
  },
1345
- "required": [
1346
- "external"
1347
- ],
1348
- "additionalProperties": false
1585
+ "message": {
1586
+ "type": "string"
1587
+ }
1349
1588
  }
1350
1589
  }
1351
1590
  }
1352
1591
  }
1353
1592
  }
1354
1593
  },
1355
- "responses": {},
1356
1594
  "deprecated": false,
1357
1595
  "security": []
1358
- }
1359
- },
1360
- "/v1/pages": {
1596
+ },
1361
1597
  "post": {
1362
- "summary": "Create a page",
1363
- "description": "",
1364
- "operationId": "post-page",
1365
- "parameters": [],
1598
+ "summary": "Create comment",
1599
+ "description": "Creates a comment in a page or existing discussion thread.",
1600
+ "operationId": "create-a-comment",
1366
1601
  "requestBody": {
1367
1602
  "content": {
1368
1603
  "application/json": {
@@ -1370,192 +1605,188 @@
1370
1605
  "type": "object",
1371
1606
  "required": [
1372
1607
  "parent",
1373
- "properties"
1608
+ "rich_text"
1374
1609
  ],
1375
1610
  "properties": {
1376
1611
  "parent": {
1377
1612
  "type": "object",
1613
+ "description": "The page that contains the comment",
1614
+ "required": [
1615
+ "page_id"
1616
+ ],
1378
1617
  "properties": {
1379
1618
  "page_id": {
1380
1619
  "type": "string",
1381
- "format": "uuid"
1620
+ "description": "the page ID"
1382
1621
  }
1383
- },
1384
- "required": [
1385
- "page_id"
1386
- ]
1622
+ }
1387
1623
  },
1388
- "properties": {
1389
- "type": "object",
1390
- "properties": {
1391
- "title": {
1392
- "type": "array",
1393
- "items": {
1624
+ "rich_text": {
1625
+ "type": "array",
1626
+ "items": {
1627
+ "type": "object",
1628
+ "required": [
1629
+ "text"
1630
+ ],
1631
+ "properties": {
1632
+ "text": {
1394
1633
  "type": "object",
1395
1634
  "required": [
1396
- "text"
1635
+ "content"
1397
1636
  ],
1398
1637
  "properties": {
1399
- "text": {
1400
- "type": "object",
1401
- "required": [
1402
- "content"
1403
- ],
1404
- "properties": {
1405
- "content": {
1406
- "type": "string"
1407
- }
1408
- }
1638
+ "content": {
1639
+ "type": "string",
1640
+ "description": "The content of the comment"
1409
1641
  }
1410
1642
  }
1411
- },
1412
- "maxItems": 100
1413
- },
1414
- "type": {
1415
- "enum": [
1416
- "title"
1417
- ],
1418
- "type": "string"
1643
+ }
1419
1644
  }
1645
+ }
1646
+ }
1647
+ }
1648
+ }
1649
+ }
1650
+ }
1651
+ },
1652
+ "responses": {
1653
+ "200": {
1654
+ "description": "200",
1655
+ "content": {
1656
+ "application/json": {
1657
+ "examples": {
1658
+ "Result": {
1659
+ "value": {
1660
+ "object": "comment",
1661
+ "id": "b52b8ed6-e029-4707-a671-832549c09de3",
1662
+ "parent": {
1663
+ "type": "page_id",
1664
+ "page_id": "5c6a2821-6bb1-4a7e-b6e1-c50111515c3d"
1665
+ },
1666
+ "discussion_id": "f1407351-36f5-4c49-a13c-49f8ba11776d",
1667
+ "created_time": "2022-07-15T20:53:00.000Z",
1668
+ "last_edited_time": "2022-07-15T20:53:00.000Z",
1669
+ "created_by": {
1670
+ "object": "user",
1671
+ "id": "067dee40-6ebd-496f-b446-093c715fb5ec"
1672
+ },
1673
+ "rich_text": [
1674
+ {
1675
+ "type": "text",
1676
+ "text": {
1677
+ "content": "Hello world",
1678
+ "link": null
1679
+ },
1680
+ "annotations": {
1681
+ "bold": false,
1682
+ "italic": false,
1683
+ "strikethrough": false,
1684
+ "underline": false,
1685
+ "code": false,
1686
+ "color": "default"
1687
+ },
1688
+ "plain_text": "Hello world",
1689
+ "href": null
1690
+ }
1691
+ ]
1692
+ }
1693
+ }
1694
+ }
1695
+ }
1696
+ }
1697
+ },
1698
+ "400": {
1699
+ "description": "Bad request",
1700
+ "content": {
1701
+ "application/json": {
1702
+ "schema": {
1703
+ "type": "object",
1704
+ "properties": {
1705
+ "object": {
1706
+ "type": "string",
1707
+ "example": "error"
1708
+ },
1709
+ "status": {
1710
+ "type": "integer",
1711
+ "example": 400
1712
+ },
1713
+ "code": {
1714
+ "type": "string"
1420
1715
  },
1421
- "additionalProperties": false,
1422
- "required": [
1423
- "title"
1424
- ]
1425
- },
1426
- "children": {
1427
- "type": "array",
1428
- "description": "The content to be rendered on the new page, represented as an array of [block objects](https://developers.notion.com/reference/block).",
1429
- "items": {
1716
+ "message": {
1430
1717
  "type": "string"
1431
1718
  }
1432
- },
1433
- "icon": {
1434
- "type": "string",
1435
- "description": "The icon of the new page. Either an [emoji object](https://developers.notion.com/reference/emoji-object) or an [external file object](https://developers.notion.com/reference/file-object)..",
1436
- "format": "json"
1437
- },
1438
- "cover": {
1439
- "type": "string",
1440
- "description": "The cover image of the new page, represented as a [file object](https://developers.notion.com/reference/file-object).",
1441
- "format": "json"
1442
1719
  }
1443
1720
  }
1444
1721
  }
1445
1722
  }
1446
1723
  }
1447
1724
  },
1448
- "responses": {},
1449
1725
  "deprecated": false,
1450
1726
  "security": []
1451
1727
  }
1452
1728
  },
1453
- "/v1/databases": {
1729
+ "/v1/data_sources/{data_source_id}/query": {
1454
1730
  "post": {
1455
- "summary": "Create a database",
1456
- "description": "",
1457
- "operationId": "create-a-database",
1458
- "parameters": [],
1731
+ "summary": "Query a data source",
1732
+ "description": "Query a data source (database) using filters and sorts",
1733
+ "operationId": "query-data-source",
1734
+ "tags": [
1735
+ "Data sources"
1736
+ ],
1737
+ "parameters": [
1738
+ {
1739
+ "name": "data_source_id",
1740
+ "in": "path",
1741
+ "description": "Identifier for a Notion data source (database)",
1742
+ "schema": {
1743
+ "type": "string"
1744
+ },
1745
+ "required": true
1746
+ },
1747
+ {
1748
+ "name": "filter_properties",
1749
+ "in": "query",
1750
+ "description": "A list of page property value IDs to limit the response",
1751
+ "schema": {
1752
+ "type": "array",
1753
+ "items": {
1754
+ "type": "string"
1755
+ }
1756
+ }
1757
+ },
1758
+ {
1759
+ "$ref": "#/components/parameters/notionVersion"
1760
+ }
1761
+ ],
1459
1762
  "requestBody": {
1460
1763
  "content": {
1461
1764
  "application/json": {
1462
1765
  "schema": {
1463
1766
  "type": "object",
1464
- "required": [
1465
- "parent",
1466
- "properties"
1467
- ],
1468
1767
  "properties": {
1469
- "parent": {
1470
- "type": "object",
1471
- "properties": {
1472
- "type": {
1473
- "enum": [
1474
- "page_id"
1475
- ],
1476
- "type": "string"
1477
- },
1478
- "page_id": {
1479
- "type": "string",
1480
- "format": "uuid"
1481
- }
1482
- },
1483
- "required": [
1484
- "type",
1485
- "page_id"
1486
- ]
1487
- },
1488
- "properties": {
1768
+ "filter": {
1489
1769
  "type": "object",
1490
- "description": "Property schema of database. The keys are the names of properties as they appear in Notion and the values are [property schema objects](https://developers.notion.com/reference/property-schema-object).",
1491
- "additionalProperties": {
1492
- "oneOf": [
1493
- {
1494
- "type": "object",
1495
- "properties": {
1496
- "title": {
1497
- "type": "object",
1498
- "properties": {},
1499
- "additionalProperties": false
1500
- },
1501
- "description": {
1502
- "type": "string",
1503
- "maxLength": 280,
1504
- "minLength": 1
1505
- }
1506
- },
1507
- "additionalProperties": false,
1508
- "required": [
1509
- "title"
1510
- ]
1511
- }
1512
- ]
1513
- }
1770
+ "description": "Filter conditions for querying the data source"
1514
1771
  },
1515
- "title": {
1772
+ "sorts": {
1516
1773
  "type": "array",
1517
1774
  "items": {
1518
- "type": "object",
1519
- "required": [
1520
- "text"
1521
- ],
1522
- "properties": {
1523
- "text": {
1524
- "type": "object",
1525
- "properties": {
1526
- "content": {
1527
- "type": "string"
1528
- },
1529
- "link": {
1530
- "type": [
1531
- "object",
1532
- "null"
1533
- ],
1534
- "properties": {
1535
- "url": {
1536
- "type": "string"
1537
- }
1538
- },
1539
- "required": [
1540
- "url"
1541
- ]
1542
- }
1543
- },
1544
- "additionalProperties": false,
1545
- "required": [
1546
- "content"
1547
- ]
1548
- },
1549
- "type": {
1550
- "enum": [
1551
- "text"
1552
- ],
1553
- "type": "string"
1554
- }
1555
- },
1556
- "additionalProperties": false
1557
- },
1558
- "maxItems": 100
1775
+ "$ref": "#/components/schemas/sortObject"
1776
+ }
1777
+ },
1778
+ "start_cursor": {
1779
+ "type": "string"
1780
+ },
1781
+ "page_size": {
1782
+ "type": "integer",
1783
+ "default": 100
1784
+ },
1785
+ "archived": {
1786
+ "type": "boolean"
1787
+ },
1788
+ "in_trash": {
1789
+ "type": "boolean"
1559
1790
  }
1560
1791
  }
1561
1792
  }
@@ -1564,12 +1795,36 @@
1564
1795
  },
1565
1796
  "responses": {
1566
1797
  "200": {
1567
- "description": "200",
1798
+ "description": "Successful response",
1568
1799
  "content": {
1569
1800
  "application/json": {
1570
- "examples": {
1571
- "Result": {
1572
- "value": "{\n \"object\": \"database\",\n \"id\": \"bc1211ca-e3f1-4939-ae34-5260b16f627c\",\n \"created_time\": \"2021-07-08T23:50:00.000Z\",\n \"last_edited_time\": \"2021-07-08T23:50:00.000Z\",\n \"icon\": {\n \"type\": \"emoji\",\n \"emoji\": \"🎉\"\n },\n \"cover\": {\n \"type\": \"external\",\n \"external\": {\n \"url\": \"https://website.domain/images/image.png\"\n }\n },\n \"url\": \"https://www.notion.so/bc1211cae3f14939ae34260b16f627c\",\n \"title\": [\n {\n \"type\": \"text\",\n \"text\": {\n \"content\": \"Grocery List\",\n \"link\": null\n },\n \"annotations\": {\n \"bold\": false,\n \"italic\": false,\n \"strikethrough\": false,\n \"underline\": false,\n \"code\": false,\n \"color\": \"default\"\n },\n \"plain_text\": \"Grocery List\",\n \"href\": null\n }\n ],\n \"properties\": {\n \"+1\": {\n \"id\": \"Wp%3DC\",\n \"name\": \"+1\",\n \"type\": \"people\",\n \"people\": {}\n },\n \"In stock\": {\n \"id\": \"fk%5EY\",\n \"name\": \"In stock\",\n \"type\": \"checkbox\",\n \"checkbox\": {}\n },\n \"Price\": {\n \"id\": \"evWq\",\n \"name\": \"Price\",\n \"type\": \"number\",\n \"number\": {\n \"format\": \"dollar\"\n }\n },\n \"Description\": {\n \"id\": \"V}lX\",\n \"name\": \"Description\",\n \"type\": \"rich_text\",\n \"rich_text\": {}\n },\n \"Last ordered\": {\n \"id\": \"eVnV\",\n \"name\": \"Last ordered\",\n \"type\": \"date\",\n \"date\": {}\n },\n \"Meals\": {\n \"id\": \"%7DWA~\",\n \"name\": \"Meals\",\n \"type\": \"relation\",\n \"relation\": {\n \"database_id\": \"668d797c-76fa-4934-9b05-ad288df2d136\",\n \"single_property\": {}\n }\n },\n \"Number of meals\": {\n \"id\": \"Z\\\\Eh\",\n \"name\": \"Number of meals\",\n \"type\": \"rollup\",\n \"rollup\": {\n \"rollup_property_name\": \"Name\",\n \"relation_property_name\": \"Meals\",\n \"rollup_property_id\": \"title\",\n \"relation_property_id\": \"mxp^\",\n \"function\": \"count\"\n }\n },\n \"Store availability\": {\n \"id\": \"s}Kq\",\n \"name\": \"Store availability\",\n \"type\": \"multi_select\",\n \"multi_select\": {\n \"options\": [\n {\n \"id\": \"cb79b393-d1c1-4528-b517-c450859de766\",\n \"name\": \"Duc Loi Market\",\n \"color\": \"blue\"\n },\n {\n \"id\": \"58aae162-75d4-403b-a793-3bc7308e4cd2\",\n \"name\": \"Rainbow Grocery\",\n \"color\": \"gray\"\n },\n {\n \"id\": \"22d0f199-babc-44ff-bd80-a9eae3e3fcbf\",\n \"name\": \"Nijiya Market\",\n \"color\": \"purple\"\n },\n {\n \"id\": \"0d069987-ffb0-4347-bde2-8e4068003dbc\",\n \"name\": \"Gus's Community Market\",\n \"color\": \"yellow\"\n }\n ]\n }\n },\n \"Photo\": {\n \"id\": \"yfiK\",\n \"name\": \"Photo\",\n \"type\": \"files\",\n \"files\": {}\n },\n \"Food group\": {\n \"id\": \"CM%3EH\",\n \"name\": \"Food group\",\n \"type\": \"select\",\n \"select\": {\n \"options\": [\n {\n \"id\": \"6d4523fa-88cb-4ffd-9364-1e39d0f4e566\",\n \"name\": \"🥦Vegetable\",\n \"color\": \"green\"\n },\n {\n \"id\": \"268d7e75-de8f-4c4b-8b9d-de0f97021833\",\n \"name\": \"🍎Fruit\",\n \"color\": \"red\"\n },\n {\n \"id\": \"1b234a00-dc97-489c-b987-829264cfdfef\",\n \"name\": \"💪Protein\",\n \"color\": \"yellow\"\n }\n ]\n }\n },\n \"Name\": {\n \"id\": \"title\",\n \"name\": \"Name\",\n \"type\": \"title\",\n \"title\": {}\n }\n },\n \"parent\": {\n \"type\": \"page_id\",\n \"page_id\": \"98ad959b-2b6a-4774-80ee-00246fb0ea9b\"\n },\n \"archived\": false\n}{\n \"object\": \"database\",\n \"id\": \"bc1211ca-e3f1-4939-ae34-5260b16f627c\",\n \"created_time\": \"2021-07-08T23:50:00.000Z\",\n \"last_edited_time\": \"2021-07-08T23:50:00.000Z\",\n \"icon\": {\n \"type\": \"emoji\",\n \"emoji\": \"🎉\"\n },\n \"cover\": {\n \"type\": \"external\",\n \"external\": {\n \"url\": \"https://website.domain/images/image.png\"\n }\n },\n \"url\": \"https://www.notion.so/bc1211cae3f14939ae34260b16f627c\",\n \"title\": [\n {\n \"type\": \"text\",\n \"text\": {\n \"content\": \"Grocery List\",\n \"link\": null\n },\n \"annotations\": {\n \"bold\": false,\n \"italic\": false,\n \"strikethrough\": false,\n \"underline\": false,\n \"code\": false,\n \"color\": \"default\"\n },\n \"plain_text\": \"Grocery List\",\n \"href\": null\n }\n ],\n \"properties\": {\n \"+1\": {\n \"id\": \"Wp%3DC\",\n \"name\": \"+1\",\n \"type\": \"people\",\n \"people\": {}\n },\n \"In stock\": {\n \"id\": \"fk%5EY\",\n \"name\": \"In stock\",\n \"type\": \"checkbox\",\n \"checkbox\": {}\n },\n \"Price\": {\n \"id\": \"evWq\",\n \"name\": \"Price\",\n \"type\": \"number\",\n \"number\": {\n \"format\": \"dollar\"\n }\n },\n \"Description\": {\n \"id\": \"V}lX\",\n \"name\": \"Description\",\n \"type\": \"rich_text\",\n \"rich_text\": {}\n },\n \"Last ordered\": {\n \"id\": \"eVnV\",\n \"name\": \"Last ordered\",\n \"type\": \"date\",\n \"date\": {}\n },\n \"Meals\": {\n \"id\": \"%7DWA~\",\n \"name\": \"Meals\",\n \"type\": \"relation\",\n \"relation\": {\n \"database_id\": \"668d797c-76fa-4934-9b05-ad288df2d136\",\n \"synced_property_name\": \"Related to Grocery List (Meals)\"\n }\n },\n \"Number of meals\": {\n \"id\": \"Z\\\\Eh\",\n \"name\": \"Number of meals\",\n \"type\": \"rollup\",\n \"rollup\": {\n \"rollup_property_name\": \"Name\",\n \"relation_property_name\": \"Meals\",\n \"rollup_property_id\": \"title\",\n \"relation_property_id\": \"mxp^\",\n \"function\": \"count\"\n }\n },\n \"Store availability\": {\n \"id\": \"s}Kq\",\n \"name\": \"Store availability\",\n \"type\": \"multi_select\",\n \"multi_select\": {\n \"options\": [\n {\n \"id\": \"cb79b393-d1c1-4528-b517-c450859de766\",\n \"name\": \"Duc Loi Market\",\n \"color\": \"blue\"\n },\n {\n \"id\": \"58aae162-75d4-403b-a793-3bc7308e4cd2\",\n \"name\": \"Rainbow Grocery\",\n \"color\": \"gray\"\n },\n {\n \"id\": \"22d0f199-babc-44ff-bd80-a9eae3e3fcbf\",\n \"name\": \"Nijiya Market\",\n \"color\": \"purple\"\n },\n {\n \"id\": \"0d069987-ffb0-4347-bde2-8e4068003dbc\",\n \"name\": \"Gus's Community Market\",\n \"color\": \"yellow\"\n }\n ]\n }\n },\n \"Photo\": {\n \"id\": \"yfiK\",\n \"name\": \"Photo\",\n \"type\": \"files\",\n \"files\": {}\n },\n \"Food group\": {\n \"id\": \"CM%3EH\",\n \"name\": \"Food group\",\n \"type\": \"select\",\n \"select\": {\n \"options\": [\n {\n \"id\": \"6d4523fa-88cb-4ffd-9364-1e39d0f4e566\",\n \"name\": \"🥦Vegetable\",\n \"color\": \"green\"\n },\n {\n \"id\": \"268d7e75-de8f-4c4b-8b9d-de0f97021833\",\n \"name\": \"🍎Fruit\",\n \"color\": \"red\"\n },\n {\n \"id\": \"1b234a00-dc97-489c-b987-829264cfdfef\",\n \"name\": \"💪Protein\",\n \"color\": \"yellow\"\n }\n ]\n }\n },\n \"Name\": {\n \"id\": \"title\",\n \"name\": \"Name\",\n \"type\": \"title\",\n \"title\": {}\n }\n },\n \"parent\": {\n \"type\": \"page_id\",\n \"page_id\": \"98ad959b-2b6a-4774-80ee-00246fb0ea9b\"\n },\n \"archived\": false,\n \"is_inline\": false\n}"
1801
+ "schema": {
1802
+ "type": "object"
1803
+ }
1804
+ }
1805
+ }
1806
+ },
1807
+ "400": {
1808
+ "description": "Bad request",
1809
+ "content": {
1810
+ "application/json": {
1811
+ "schema": {
1812
+ "type": "object",
1813
+ "properties": {
1814
+ "object": {
1815
+ "type": "string",
1816
+ "example": "error"
1817
+ },
1818
+ "status": {
1819
+ "type": "integer",
1820
+ "example": 400
1821
+ },
1822
+ "code": {
1823
+ "type": "string"
1824
+ },
1825
+ "message": {
1826
+ "type": "string"
1827
+ }
1573
1828
  }
1574
1829
  }
1575
1830
  }
@@ -1580,20 +1835,88 @@
1580
1835
  "security": []
1581
1836
  }
1582
1837
  },
1583
- "/v1/databases/{database_id}": {
1838
+ "/v1/data_sources/{data_source_id}": {
1839
+ "get": {
1840
+ "summary": "Retrieve a data source",
1841
+ "description": "Retrieve metadata and schema for a data source",
1842
+ "operationId": "retrieve-a-data-source",
1843
+ "tags": [
1844
+ "Data sources"
1845
+ ],
1846
+ "parameters": [
1847
+ {
1848
+ "name": "data_source_id",
1849
+ "in": "path",
1850
+ "description": "Identifier for a Notion data source",
1851
+ "schema": {
1852
+ "type": "string"
1853
+ },
1854
+ "required": true
1855
+ },
1856
+ {
1857
+ "$ref": "#/components/parameters/notionVersion"
1858
+ }
1859
+ ],
1860
+ "responses": {
1861
+ "200": {
1862
+ "description": "Successful response",
1863
+ "content": {
1864
+ "application/json": {
1865
+ "schema": {
1866
+ "type": "object"
1867
+ }
1868
+ }
1869
+ }
1870
+ },
1871
+ "400": {
1872
+ "description": "Bad request",
1873
+ "content": {
1874
+ "application/json": {
1875
+ "schema": {
1876
+ "type": "object",
1877
+ "properties": {
1878
+ "object": {
1879
+ "type": "string",
1880
+ "example": "error"
1881
+ },
1882
+ "status": {
1883
+ "type": "integer",
1884
+ "example": 400
1885
+ },
1886
+ "code": {
1887
+ "type": "string"
1888
+ },
1889
+ "message": {
1890
+ "type": "string"
1891
+ }
1892
+ }
1893
+ }
1894
+ }
1895
+ }
1896
+ }
1897
+ },
1898
+ "deprecated": false,
1899
+ "security": []
1900
+ },
1584
1901
  "patch": {
1585
- "summary": "Update a database",
1586
- "description": "",
1587
- "operationId": "update-a-database",
1902
+ "summary": "Update a data source",
1903
+ "description": "Update properties of a data source",
1904
+ "operationId": "update-a-data-source",
1905
+ "tags": [
1906
+ "Data sources"
1907
+ ],
1588
1908
  "parameters": [
1589
1909
  {
1590
- "name": "database_id",
1910
+ "name": "data_source_id",
1591
1911
  "in": "path",
1592
- "description": "identifier for a Notion database",
1912
+ "description": "Identifier for a Notion data source",
1593
1913
  "schema": {
1594
1914
  "type": "string"
1595
1915
  },
1596
1916
  "required": true
1917
+ },
1918
+ {
1919
+ "$ref": "#/components/parameters/notionVersion"
1597
1920
  }
1598
1921
  ],
1599
1922
  "requestBody": {
@@ -1603,138 +1926,59 @@
1603
1926
  "type": "object",
1604
1927
  "properties": {
1605
1928
  "title": {
1606
- "description": "An array of [rich text objects](https://developers.notion.com/reference/rich-text) that represents the title of the database that is displayed in the Notion UI. If omitted, then the database title remains unchanged.",
1607
1929
  "type": "array",
1608
1930
  "items": {
1609
- "type": "object",
1610
- "required": [
1611
- "text"
1612
- ],
1613
- "properties": {
1614
- "text": {
1615
- "type": "object",
1616
- "properties": {
1617
- "content": {
1618
- "type": "string"
1619
- },
1620
- "link": {
1621
- "type": [
1622
- "object",
1623
- "null"
1624
- ],
1625
- "properties": {
1626
- "url": {
1627
- "type": "string"
1628
- }
1629
- },
1630
- "required": [
1631
- "url"
1632
- ]
1633
- }
1634
- },
1635
- "additionalProperties": false,
1636
- "required": [
1637
- "content"
1638
- ]
1639
- },
1640
- "type": {
1641
- "enum": [
1642
- "text"
1643
- ],
1644
- "type": "string"
1645
- }
1646
- },
1647
- "additionalProperties": false
1931
+ "$ref": "#/components/schemas/richTextRequest"
1648
1932
  }
1649
1933
  },
1650
- "description": {
1651
- "type": "array",
1652
- "items": {
1653
- "type": "object",
1654
- "required": [
1655
- "text"
1656
- ],
1657
- "properties": {
1658
- "text": {
1659
- "type": "object",
1660
- "properties": {
1661
- "content": {
1662
- "type": "string"
1663
- },
1664
- "link": {
1665
- "type": [
1666
- "object",
1667
- "null"
1668
- ],
1669
- "properties": {
1670
- "url": {
1671
- "type": "string"
1672
- }
1673
- },
1674
- "required": [
1675
- "url"
1676
- ]
1677
- }
1678
- },
1679
- "additionalProperties": false,
1680
- "required": [
1681
- "content"
1682
- ]
1683
- },
1684
- "type": {
1685
- "enum": [
1686
- "text"
1687
- ],
1688
- "type": "string"
1689
- }
1690
- },
1691
- "additionalProperties": false
1934
+ "description": {
1935
+ "type": "array",
1936
+ "items": {
1937
+ "$ref": "#/components/schemas/richTextRequest"
1692
1938
  },
1693
- "maxItems": 100,
1694
- "description": "An array of [rich text objects](https://developers.notion.com/reference/rich-text) that represents the description of the database that is displayed in the Notion UI. If omitted, then the database description remains unchanged."
1939
+ "maxItems": 100
1695
1940
  },
1696
1941
  "properties": {
1697
1942
  "type": "object",
1698
- "description": "Property schema of database. The keys are the names of properties as they appear in Notion and the values are [property schema objects](https://developers.notion.com/reference/property-schema-object).",
1699
- "properties": {
1700
- "name": {
1701
- "type": "string"
1702
- }
1703
- }
1943
+ "description": "Property schema updates"
1704
1944
  }
1705
- },
1706
- "additionalProperties": false
1945
+ }
1707
1946
  }
1708
1947
  }
1709
1948
  }
1710
1949
  },
1711
- "responses": {},
1712
- "deprecated": false,
1713
- "security": []
1714
- },
1715
- "get": {
1716
- "summary": "Retrieve a database",
1717
- "description": "",
1718
- "operationId": "retrieve-a-database",
1719
- "parameters": [
1720
- {
1721
- "name": "database_id",
1722
- "in": "path",
1723
- "description": "An identifier for the Notion database.",
1724
- "schema": {
1725
- "type": "string"
1726
- },
1727
- "required": true
1728
- }
1729
- ],
1730
1950
  "responses": {
1731
1951
  "200": {
1732
- "description": "200",
1952
+ "description": "Successful response",
1733
1953
  "content": {
1734
1954
  "application/json": {
1735
- "examples": {
1736
- "Result": {
1737
- "value": "{\n \"object\": \"database\",\n \"id\": \"bc1211ca-e3f1-4939-ae34-5260b16f627c\",\n \"created_time\": \"2021-07-08T23:50:00.000Z\",\n \"last_edited_time\": \"2021-07-08T23:50:00.000Z\",\n \"icon\": {\n \"type\": \"emoji\",\n \"emoji\": \"🎉\"\n },\n \"cover\": {\n \"type\": \"external\",\n \"external\": {\n \"url\": \"https://website.domain/images/image.png\"\n }\n },\n \"url\": \"https://www.notion.so/bc1211cae3f14939ae34260b16f627c\",\n \"title\": [\n {\n \"type\": \"text\",\n \"text\": {\n \"content\": \"Grocery List\",\n \"link\": null\n },\n \"annotations\": {\n \"bold\": false,\n \"italic\": false,\n \"strikethrough\": false,\n \"underline\": false,\n \"code\": false,\n \"color\": \"default\"\n },\n \"plain_text\": \"Grocery List\",\n \"href\": null\n }\n ],\n \"description\": [\n {\n \"type\": \"text\",\n \"text\": {\n \"content\": \"Grocery list for just kale 🥬\",\n \"link\": null\n },\n \"annotations\": {\n \"bold\": false,\n \"italic\": false,\n \"strikethrough\": false,\n \"underline\": false,\n \"code\": false,\n \"color\": \"default\"\n },\n \"plain_text\": \"Grocery list for just kale 🥬\",\n \"href\": null\n }\n ],\n \"properties\": {\n \"+1\": {\n \"id\": \"Wp%3DC\",\n \"name\": \"+1\",\n \"type\": \"people\",\n \"people\": {}\n },\n \"In stock\": {\n \"id\": \"fk%5EY\",\n \"name\": \"In stock\",\n \"type\": \"checkbox\",\n \"checkbox\": {}\n },\n \"Price\": {\n \"id\": \"evWq\",\n \"name\": \"Price\",\n \"type\": \"number\",\n \"number\": {\n \"format\": \"dollar\"\n }\n },\n \"Description\": {\n \"id\": \"V}lX\",\n \"name\": \"Description\",\n \"type\": \"rich_text\",\n \"rich_text\": {}\n },\n \"Last ordered\": {\n \"id\": \"eVnV\",\n \"name\": \"Last ordered\",\n \"type\": \"date\",\n \"date\": {}\n },\n \"Meals\": {\n \"id\": \"%7DWA~\",\n \"name\": \"Meals\",\n \"type\": \"relation\",\n \"relation\": {\n \"database_id\": \"668d797c-76fa-4934-9b05-ad288df2d136\",\n \"synced_property_name\": \"Related to Grocery List (Meals)\"\n }\n },\n \"Number of meals\": {\n \"id\": \"Z\\\\Eh\",\n \"name\": \"Number of meals\",\n \"type\": \"rollup\",\n \"rollup\": {\n \"rollup_property_name\": \"Name\",\n \"relation_property_name\": \"Meals\",\n \"rollup_property_id\": \"title\",\n \"relation_property_id\": \"mxp^\",\n \"function\": \"count\"\n }\n },\n \"Store availability\": {\n \"id\": \"s}Kq\",\n \"name\": \"Store availability\",\n \"type\": \"multi_select\",\n \"multi_select\": {\n \"options\": [\n {\n \"id\": \"cb79b393-d1c1-4528-b517-c450859de766\",\n \"name\": \"Duc Loi Market\",\n \"color\": \"blue\"\n },\n {\n \"id\": \"58aae162-75d4-403b-a793-3bc7308e4cd2\",\n \"name\": \"Rainbow Grocery\",\n \"color\": \"gray\"\n },\n {\n \"id\": \"22d0f199-babc-44ff-bd80-a9eae3e3fcbf\",\n \"name\": \"Nijiya Market\",\n \"color\": \"purple\"\n },\n {\n \"id\": \"0d069987-ffb0-4347-bde2-8e4068003dbc\",\n \"name\": \"Gus's Community Market\",\n \"color\": \"yellow\"\n }\n ]\n }\n },\n \"Photo\": {\n \"id\": \"yfiK\",\n \"name\": \"Photo\",\n \"type\": \"files\",\n \"files\": {}\n },\n \"Food group\": {\n \"id\": \"CM%3EH\",\n \"name\": \"Food group\",\n \"type\": \"select\",\n \"select\": {\n \"options\": [\n {\n \"id\": \"6d4523fa-88cb-4ffd-9364-1e39d0f4e566\",\n \"name\": \"🥦Vegetable\",\n \"color\": \"green\"\n },\n {\n \"id\": \"268d7e75-de8f-4c4b-8b9d-de0f97021833\",\n \"name\": \"🍎Fruit\",\n \"color\": \"red\"\n },\n {\n \"id\": \"1b234a00-dc97-489c-b987-829264cfdfef\",\n \"name\": \"💪Protein\",\n \"color\": \"yellow\"\n }\n ]\n }\n },\n \"Name\": {\n \"id\": \"title\",\n \"name\": \"Name\",\n \"type\": \"title\",\n \"title\": {}\n }\n },\n \"parent\": {\n \"type\": \"page_id\",\n \"page_id\": \"98ad959b-2b6a-4774-80ee-00246fb0ea9b\"\n },\n \"archived\": false,\n \"is_inline\": false,\n \"public_url\": null\n}"
1955
+ "schema": {
1956
+ "type": "object"
1957
+ }
1958
+ }
1959
+ }
1960
+ },
1961
+ "400": {
1962
+ "description": "Bad request",
1963
+ "content": {
1964
+ "application/json": {
1965
+ "schema": {
1966
+ "type": "object",
1967
+ "properties": {
1968
+ "object": {
1969
+ "type": "string",
1970
+ "example": "error"
1971
+ },
1972
+ "status": {
1973
+ "type": "integer",
1974
+ "example": 400
1975
+ },
1976
+ "code": {
1977
+ "type": "string"
1978
+ },
1979
+ "message": {
1980
+ "type": "string"
1981
+ }
1738
1982
  }
1739
1983
  }
1740
1984
  }
@@ -1745,62 +1989,80 @@
1745
1989
  "security": []
1746
1990
  }
1747
1991
  },
1748
- "/v1/pages/{page_id}/properties/{property_id}": {
1749
- "get": {
1750
- "summary": "Retrieve a page property item",
1751
- "description": "",
1752
- "operationId": "retrieve-a-page-property",
1992
+ "/v1/data_sources": {
1993
+ "post": {
1994
+ "summary": "Create a data source",
1995
+ "description": "Create a new data source (database)",
1996
+ "operationId": "create-a-data-source",
1997
+ "tags": [
1998
+ "Data sources"
1999
+ ],
1753
2000
  "parameters": [
1754
2001
  {
1755
- "name": "page_id",
1756
- "in": "path",
1757
- "description": "Identifier for a Notion page",
1758
- "schema": {
1759
- "type": "string"
1760
- },
1761
- "required": true
1762
- },
1763
- {
1764
- "name": "property_id",
1765
- "in": "path",
1766
- "description": "Identifier for a page [property](https://developers.notion.com/reference/page#all-property-values)",
1767
- "schema": {
1768
- "type": "string"
1769
- },
1770
- "required": true
1771
- },
1772
- {
1773
- "name": "page_size",
1774
- "in": "query",
1775
- "description": "For paginated properties. The max number of property item objects on a page. The default size is 100",
1776
- "schema": {
1777
- "type": "integer",
1778
- "format": "int32"
1779
- }
1780
- },
1781
- {
1782
- "name": "start_cursor",
1783
- "in": "query",
1784
- "description": "For paginated properties.",
1785
- "schema": {
1786
- "type": "string"
1787
- }
2002
+ "$ref": "#/components/parameters/notionVersion"
1788
2003
  }
1789
2004
  ],
2005
+ "requestBody": {
2006
+ "content": {
2007
+ "application/json": {
2008
+ "schema": {
2009
+ "type": "object",
2010
+ "required": [
2011
+ "parent",
2012
+ "properties"
2013
+ ],
2014
+ "properties": {
2015
+ "parent": {
2016
+ "$ref": "#/components/schemas/pageIdParentRequest"
2017
+ },
2018
+ "properties": {
2019
+ "type": "object",
2020
+ "description": "Property schema of data source"
2021
+ },
2022
+ "title": {
2023
+ "type": "array",
2024
+ "items": {
2025
+ "$ref": "#/components/schemas/richTextRequest"
2026
+ },
2027
+ "maxItems": 100
2028
+ }
2029
+ }
2030
+ }
2031
+ }
2032
+ }
2033
+ },
1790
2034
  "responses": {
1791
2035
  "200": {
1792
- "description": "200",
2036
+ "description": "Successful response",
1793
2037
  "content": {
1794
2038
  "application/json": {
1795
- "examples": {
1796
- "Number Property Item": {
1797
- "value": "{\n \"object\": \"property_item\",\n \"id\" \"kjPO\",\n \"type\": \"number\",\n \"number\": 2\n}"
1798
- },
1799
- "Result": {
1800
- "value": "{\n \"object\": \"list\",\n \"results\": [\n {\n \"object\": \"property_item\",\n \"id\" \"kjPO\",\n \"type\": \"rich_text\",\n \"rich_text\": {\n \"type\": \"text\",\n \"text\": {\n \"content\": \"Avocado \",\n \"link\": null\n },\n \"annotations\": {\n \"bold\": false,\n \"italic\": false,\n \"strikethrough\": false,\n \"underline\": false,\n \"code\": false,\n \"color\": \"default\"\n },\n \"plain_text\": \"Avocado \",\n \"href\": null\n }\n },\n {\n \"object\": \"property_item\",\n \"id\" \"ijPO\",\n \"type\": \"rich_text\",\n \"rich_text\": {\n \"type\": \"mention\",\n \"mention\": {\n \"type\": \"page\",\n \"page\": {\n \"id\": \"41117fd7-69a5-4694-bc07-c1e3a682c857\"\n }\n },\n \"annotations\": {\n \"bold\": false,\n \"italic\": false,\n \"strikethrough\": false,\n \"underline\": false,\n \"code\": false,\n \"color\": \"default\"\n },\n \"plain_text\": \"Lemons\",\n \"href\": \"http://notion.so/41117fd769a54694bc07c1e3a682c857\"\n }\n },\n {\n \"object\": \"property_item\",\n \"id\" \"kjPO\",\n \"type\": \"rich_text\",\n \"rich_text\": {\n \"type\": \"text\",\n \"text\": {\n \"content\": \" Tomato \",\n \"link\": null\n },\n \"annotations\": {\n \"bold\": false,\n \"italic\": false,\n \"strikethrough\": false,\n \"underline\": false,\n \"code\": false,\n \"color\": \"default\"\n },\n \"plain_text\": \" Tomato \",\n \"href\": null\n }\n },\n...\n ],\n \"next_cursor\": \"some-next-cursor-value\",\n \"has_more\": true,\n\t\t\"next_url\": \"http://api.notion.com/v1/pages/0e5235bf86aa4efb93aa772cce7eab71/properties/NVv^?start_cursor=some-next-cursor-value&page_size=25\",\n \"property_item\": {\n \"id\": \"NVv^\",\n \"next_url\": null,\n \"type\": \"rich_text\",\n \"rich_text\": {}\n }\n}"
1801
- },
1802
- "Rollup List Property Item": {
1803
- "value": "{\n \"object\": \"list\",\n \"results\": [\n {\n \"object\": \"property_item\",\n \t\"id\": \"dj2l\",\n \"type\": \"relation\",\n \"relation\": {\n \"id\": \"83f92c9d-523d-466e-8c1f-9bc2c25a99fe\"\n }\n },\n {\n \"object\": \"property_item\",\n \t\"id\": \"dj2l\",\n \"type\": \"relation\",\n \"relation\": {\n \"id\": \"45cfb825-3463-4891-8932-7e6d8c170630\"\n }\n },\n {\n \"object\": \"property_item\",\n \t\"id\": \"dj2l\",\n \"type\": \"relation\",\n \"relation\": {\n \"id\": \"1688be1a-a197-4f2a-9688-e528c4b56d94\"\n }\n }\n ],\n \"next_cursor\": \"some-next-cursor-value\",\n \"has_more\": true,\n\t\t\"property_item\": {\n \"id\": \"y}~p\",\n \"next_url\": \"http://api.notion.com/v1/pages/0e5235bf86aa4efb93aa772cce7eab71/properties/y%7D~p?start_cursor=1QaTunT5&page_size=25\",\n \"type\": \"rollup\",\n \"rollup\": {\n \"function\": \"sum\",\n \"type\": \"incomplete\",\n \"incomplete\": {}\n }\n }\n \"type\": \"property_item\"\n}"
2039
+ "schema": {
2040
+ "type": "object"
2041
+ }
2042
+ }
2043
+ }
2044
+ },
2045
+ "400": {
2046
+ "description": "Bad request",
2047
+ "content": {
2048
+ "application/json": {
2049
+ "schema": {
2050
+ "type": "object",
2051
+ "properties": {
2052
+ "object": {
2053
+ "type": "string",
2054
+ "example": "error"
2055
+ },
2056
+ "status": {
2057
+ "type": "integer",
2058
+ "example": 400
2059
+ },
2060
+ "code": {
2061
+ "type": "string"
2062
+ },
2063
+ "message": {
2064
+ "type": "string"
2065
+ }
1804
2066
  }
1805
2067
  }
1806
2068
  }
@@ -1811,25 +2073,27 @@
1811
2073
  "security": []
1812
2074
  }
1813
2075
  },
1814
- "/v1/comments": {
2076
+ "/v1/data_sources/{data_source_id}/templates": {
1815
2077
  "get": {
1816
- "summary": "Retrieve comments",
1817
- "description": "Retrieves a list of un-resolved [Comment objects](ref:comment-object) from a page or block.",
1818
- "operationId": "retrieve-a-comment",
2078
+ "summary": "List templates in a data source",
2079
+ "description": "List available templates for a data source",
2080
+ "operationId": "list-data-source-templates",
2081
+ "tags": [
2082
+ "Data sources"
2083
+ ],
1819
2084
  "parameters": [
1820
2085
  {
1821
- "name": "block_id",
1822
- "in": "query",
1823
- "description": "Identifier for a Notion block or page",
1824
- "required": true,
2086
+ "name": "data_source_id",
2087
+ "in": "path",
2088
+ "description": "Identifier for a Notion data source",
1825
2089
  "schema": {
1826
2090
  "type": "string"
1827
- }
2091
+ },
2092
+ "required": true
1828
2093
  },
1829
2094
  {
1830
2095
  "name": "start_cursor",
1831
2096
  "in": "query",
1832
- "description": "If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results.",
1833
2097
  "schema": {
1834
2098
  "type": "string"
1835
2099
  }
@@ -1837,21 +2101,47 @@
1837
2101
  {
1838
2102
  "name": "page_size",
1839
2103
  "in": "query",
1840
- "description": "The number of items from the full list desired in the response. Maximum: 100",
1841
2104
  "schema": {
1842
2105
  "type": "integer",
1843
- "format": "int32"
2106
+ "default": 100
1844
2107
  }
2108
+ },
2109
+ {
2110
+ "$ref": "#/components/parameters/notionVersion"
1845
2111
  }
1846
2112
  ],
1847
2113
  "responses": {
1848
2114
  "200": {
1849
- "description": "200",
2115
+ "description": "Successful response",
1850
2116
  "content": {
1851
2117
  "application/json": {
1852
- "examples": {
1853
- "OK": {
1854
- "value": "{\n \"object\": \"list\",\n \"results\": [\n {\n \"object\": \"comment\",\n \"id\": \"94cc56ab-9f02-409d-9f99-1037e9fe502f\",\n \"parent\": {\n \"type\": \"page_id\",\n \"page_id\": \"5c6a2821-6bb1-4a7e-b6e1-c50111515c3d\"\n },\n \"discussion_id\": \"f1407351-36f5-4c49-a13c-49f8ba11776d\",\n \"created_time\": \"2022-07-15T16:52:00.000Z\",\n \"last_edited_time\": \"2022-07-15T19:16:00.000Z\",\n \"created_by\": {\n \"object\": \"user\",\n \"id\": \"9b15170a-9941-4297-8ee6-83fa7649a87a\"\n },\n \"rich_text\": [\n {\n \"type\": \"text\",\n \"text\": {\n \"content\": \"Single comment\",\n \"link\": null\n },\n \"annotations\": {\n \"bold\": false,\n \"italic\": false,\n \"strikethrough\": false,\n \"underline\": false,\n \"code\": false,\n \"color\": \"default\"\n },\n \"plain_text\": \"Single comment\",\n \"href\": null\n }\n ]\n }\n ],\n \"next_cursor\": null,\n \"has_more\": false,\n \"type\": \"comment\",\n \"comment\": {}\n}"
2118
+ "schema": {
2119
+ "type": "object"
2120
+ }
2121
+ }
2122
+ }
2123
+ },
2124
+ "400": {
2125
+ "description": "Bad request",
2126
+ "content": {
2127
+ "application/json": {
2128
+ "schema": {
2129
+ "type": "object",
2130
+ "properties": {
2131
+ "object": {
2132
+ "type": "string",
2133
+ "example": "error"
2134
+ },
2135
+ "status": {
2136
+ "type": "integer",
2137
+ "example": 400
2138
+ },
2139
+ "code": {
2140
+ "type": "string"
2141
+ },
2142
+ "message": {
2143
+ "type": "string"
2144
+ }
1855
2145
  }
1856
2146
  }
1857
2147
  }
@@ -1860,56 +2150,42 @@
1860
2150
  },
1861
2151
  "deprecated": false,
1862
2152
  "security": []
1863
- },
2153
+ }
2154
+ },
2155
+ "/v1/pages/{page_id}/move": {
1864
2156
  "post": {
1865
- "summary": "Create comment",
1866
- "description": "Creates a comment in a page or existing discussion thread.",
1867
- "operationId": "create-a-comment",
2157
+ "summary": "Move a page",
2158
+ "description": "Move a page to a different parent location",
2159
+ "operationId": "move-page",
2160
+ "tags": [
2161
+ "Pages"
2162
+ ],
2163
+ "parameters": [
2164
+ {
2165
+ "name": "page_id",
2166
+ "in": "path",
2167
+ "description": "Identifier for a Notion page",
2168
+ "schema": {
2169
+ "type": "string",
2170
+ "format": "uuid"
2171
+ },
2172
+ "required": true
2173
+ },
2174
+ {
2175
+ "$ref": "#/components/parameters/notionVersion"
2176
+ }
2177
+ ],
1868
2178
  "requestBody": {
1869
2179
  "content": {
1870
2180
  "application/json": {
1871
2181
  "schema": {
1872
2182
  "type": "object",
1873
2183
  "required": [
1874
- "parent",
1875
- "rich_text"
2184
+ "parent"
1876
2185
  ],
1877
2186
  "properties": {
1878
2187
  "parent": {
1879
- "type": "object",
1880
- "description": "The page that contains the comment",
1881
- "required": [
1882
- "page_id"
1883
- ],
1884
- "properties": {
1885
- "page_id": {
1886
- "type": "string",
1887
- "description": "the page ID"
1888
- }
1889
- }
1890
- },
1891
- "rich_text": {
1892
- "type": "array",
1893
- "items": {
1894
- "type": "object",
1895
- "required": [
1896
- "text"
1897
- ],
1898
- "properties": {
1899
- "text": {
1900
- "type": "object",
1901
- "required": [
1902
- "content"
1903
- ],
1904
- "properties": {
1905
- "content": {
1906
- "type": "string",
1907
- "description": "The content of the comment"
1908
- }
1909
- }
1910
- }
1911
- }
1912
- }
2188
+ "$ref": "#/components/schemas/movePageParentRequest"
1913
2189
  }
1914
2190
  }
1915
2191
  }
@@ -1918,12 +2194,36 @@
1918
2194
  },
1919
2195
  "responses": {
1920
2196
  "200": {
1921
- "description": "200",
2197
+ "description": "Successful response",
1922
2198
  "content": {
1923
2199
  "application/json": {
1924
- "examples": {
1925
- "Result": {
1926
- "value": "{\n \"object\": \"comment\",\n \"id\": \"b52b8ed6-e029-4707-a671-832549c09de3\",\n \"parent\": {\n \"type\": \"page_id\",\n \"page_id\": \"5c6a2821-6bb1-4a7e-b6e1-c50111515c3d\"\n },\n \"discussion_id\": \"f1407351-36f5-4c49-a13c-49f8ba11776d\",\n \"created_time\": \"2022-07-15T20:53:00.000Z\",\n \"last_edited_time\": \"2022-07-15T20:53:00.000Z\",\n \"created_by\": {\n \"object\": \"user\",\n \"id\": \"067dee40-6ebd-496f-b446-093c715fb5ec\"\n },\n \"rich_text\": [\n {\n \"type\": \"text\",\n \"text\": {\n \"content\": \"Hello world\",\n \"link\": null\n },\n \"annotations\": {\n \"bold\": false,\n \"italic\": false,\n \"strikethrough\": false,\n \"underline\": false,\n \"code\": false,\n \"color\": \"default\"\n },\n \"plain_text\": \"Hello world\",\n \"href\": null\n }\n ]\n}"
2200
+ "schema": {
2201
+ "type": "object"
2202
+ }
2203
+ }
2204
+ }
2205
+ },
2206
+ "400": {
2207
+ "description": "Bad request",
2208
+ "content": {
2209
+ "application/json": {
2210
+ "schema": {
2211
+ "type": "object",
2212
+ "properties": {
2213
+ "object": {
2214
+ "type": "string",
2215
+ "example": "error"
2216
+ },
2217
+ "status": {
2218
+ "type": "integer",
2219
+ "example": 400
2220
+ },
2221
+ "code": {
2222
+ "type": "string"
2223
+ },
2224
+ "message": {
2225
+ "type": "string"
2226
+ }
1927
2227
  }
1928
2228
  }
1929
2229
  }
@@ -1935,4 +2235,4 @@
1935
2235
  }
1936
2236
  }
1937
2237
  }
1938
- }
2238
+ }