@arke-institute/sdk 3.6.4 → 3.6.9

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.
package/openapi/spec.json CHANGED
@@ -116,13 +116,13 @@
116
116
  "type": "http",
117
117
  "scheme": "bearer",
118
118
  "bearerFormat": "JWT",
119
- "description": "Supabase JWT token"
119
+ "description": "Supabase JWT token. Use `Authorization: Bearer <jwt>`. Only for JWT tokens from Supabase auth - do NOT use Bearer with API keys."
120
120
  },
121
121
  "apiKeyAuth": {
122
122
  "type": "apiKey",
123
123
  "in": "header",
124
124
  "name": "Authorization",
125
- "description": "API Key authentication. Format: `ApiKey ak_xxx` (agent) or `ApiKey uk_xxx` (user)"
125
+ "description": "API Key authentication. **Important:** Use `Authorization: ApiKey <key>` (NOT Bearer). Format: `ApiKey uk_xxx` (user keys) or `ApiKey ak_xxx` (agent keys). Using Bearer with API keys will fail."
126
126
  }
127
127
  },
128
128
  "parameters": {
@@ -237,10 +237,10 @@
237
237
  ],
238
238
  "description": "Identity type"
239
239
  },
240
- "pi": {
240
+ "id": {
241
241
  "type": "string",
242
242
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
243
- "description": "User entity PI (persistent identifier)",
243
+ "description": "User entity ID",
244
244
  "example": "01J1SHMAE10000000000000000"
245
245
  },
246
246
  "auth_method": {
@@ -281,7 +281,7 @@
281
281
  },
282
282
  "required": [
283
283
  "type",
284
- "pi",
284
+ "id",
285
285
  "auth_method"
286
286
  ]
287
287
  },
@@ -295,10 +295,10 @@
295
295
  ],
296
296
  "description": "Identity type"
297
297
  },
298
- "pi": {
298
+ "id": {
299
299
  "type": "string",
300
300
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
301
- "description": "Agent entity PI (persistent identifier)",
301
+ "description": "Agent entity ID",
302
302
  "example": "01J1AGENTID000000000000000"
303
303
  },
304
304
  "auth_method": {
@@ -309,10 +309,10 @@
309
309
  "description": "How this identity was authenticated",
310
310
  "example": "api_key"
311
311
  },
312
- "owner_pi": {
312
+ "owner_id": {
313
313
  "type": "string",
314
314
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
315
- "description": "Entity PI of the agent owner",
315
+ "description": "Entity ID of the agent owner",
316
316
  "example": "01J1OWNERID0000000000000000"
317
317
  },
318
318
  "key_prefix": {
@@ -328,9 +328,9 @@
328
328
  },
329
329
  "required": [
330
330
  "type",
331
- "pi",
331
+ "id",
332
332
  "auth_method",
333
- "owner_pi",
333
+ "owner_id",
334
334
  "key_prefix",
335
335
  "key_expires_at"
336
336
  ]
@@ -710,9 +710,9 @@
710
710
  "UserCollectionItem": {
711
711
  "type": "object",
712
712
  "properties": {
713
- "pi": {
713
+ "id": {
714
714
  "type": "string",
715
- "description": "Collection persistent identifier",
715
+ "description": "Collection ID",
716
716
  "example": "01JCOLLECTION123456789AB"
717
717
  },
718
718
  "label": {
@@ -732,7 +732,7 @@
732
732
  }
733
733
  },
734
734
  "required": [
735
- "pi",
735
+ "id",
736
736
  "label",
737
737
  "predicate",
738
738
  "created_at"
@@ -806,7 +806,7 @@
806
806
  "description": "Entity label (from properties.label, filename, or name)",
807
807
  "example": "Research Paper.pdf"
808
808
  },
809
- "collection_pi": {
809
+ "collection_id": {
810
810
  "type": "string",
811
811
  "description": "Collection ID this entity belongs to",
812
812
  "example": "01JCOLLECTION123456789ABCD"
@@ -844,7 +844,7 @@
844
844
  "id": "01KDETYWYWM0MJVKM8DK3AEXPY",
845
845
  "type": "file",
846
846
  "label": "Research Paper.pdf",
847
- "collection_pi": "01JCOLLECTION123456789AB",
847
+ "collection_id": "01JCOLLECTION123456789AB",
848
848
  "description_preview": "A comprehensive study on distributed systems architecture...",
849
849
  "created_at": "2026-01-12T00:00:00.000Z",
850
850
  "updated_at": "2026-01-12T10:30:00.000Z"
@@ -853,10 +853,10 @@
853
853
  "SearchResultItem": {
854
854
  "type": "object",
855
855
  "properties": {
856
- "pi": {
856
+ "id": {
857
857
  "type": "string",
858
858
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
859
- "description": "Entity persistent identifier",
859
+ "description": "Entity ID",
860
860
  "example": "01KDETYWYWM0MJVKM8DK3AEXPY"
861
861
  },
862
862
  "type": {
@@ -869,7 +869,7 @@
869
869
  "description": "Entity label/name",
870
870
  "example": "Research Paper.pdf"
871
871
  },
872
- "collection_pi": {
872
+ "collection_id": {
873
873
  "type": "string",
874
874
  "nullable": true,
875
875
  "description": "Collection this entity belongs to (null for public-domain)",
@@ -905,10 +905,10 @@
905
905
  }
906
906
  },
907
907
  "required": [
908
- "pi",
908
+ "id",
909
909
  "type",
910
910
  "label",
911
- "collection_pi",
911
+ "collection_id",
912
912
  "score"
913
913
  ]
914
914
  },
@@ -1120,6 +1120,12 @@
1120
1120
  "format": "uri",
1121
1121
  "description": "URL for collection display image"
1122
1122
  },
1123
+ "use_roles_default": {
1124
+ "type": "boolean",
1125
+ "default": true,
1126
+ "description": "Whether to merge with default roles (true) or use only provided roles (false). Public role with *:view is always ensured.",
1127
+ "example": true
1128
+ },
1123
1129
  "roles": {
1124
1130
  "type": "object",
1125
1131
  "additionalProperties": {
@@ -1128,26 +1134,11 @@
1128
1134
  "type": "string"
1129
1135
  }
1130
1136
  },
1131
- "description": "Custom role definitions (defaults to owner/editor/viewer/public)",
1137
+ "description": "Role definitions. When use_roles_default is true (default), these merge with defaults. When false, these replace defaults entirely.",
1132
1138
  "example": {
1133
- "captain": [
1134
- "*:view",
1135
- "*:update",
1136
- "*:create",
1137
- "collection:manage"
1138
- ],
1139
- "harpooner": [
1140
- "*:view",
1141
- "*:update",
1142
- "*:create"
1143
- ],
1144
- "crew": [
1145
- "*:view",
1146
- "entity:create"
1147
- ],
1148
1139
  "public": [
1149
- "entity:view",
1150
- "collection:view"
1140
+ "*:view",
1141
+ "*:invoke"
1151
1142
  ]
1152
1143
  }
1153
1144
  },
@@ -1836,10 +1827,10 @@
1836
1827
  "CollectionEntitySummary": {
1837
1828
  "type": "object",
1838
1829
  "properties": {
1839
- "pi": {
1830
+ "id": {
1840
1831
  "type": "string",
1841
1832
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
1842
- "description": "Entity persistent identifier"
1833
+ "description": "Entity ID"
1843
1834
  },
1844
1835
  "type": {
1845
1836
  "type": "string",
@@ -1883,7 +1874,7 @@
1883
1874
  }
1884
1875
  },
1885
1876
  "required": [
1886
- "pi",
1877
+ "id",
1887
1878
  "type",
1888
1879
  "label",
1889
1880
  "created_at",
@@ -2258,6 +2249,11 @@
2258
2249
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
2259
2250
  "description": "Parent collection ID (creates collection relationship)",
2260
2251
  "example": "01KDETYWYWM0MJVKM8DK3AEXPY"
2252
+ },
2253
+ "sync_index": {
2254
+ "type": "boolean",
2255
+ "default": false,
2256
+ "description": "Wait for collection index update before returning. Use when checking for duplicates immediately after creation. Adds ~1-5ms latency per collection."
2261
2257
  }
2262
2258
  },
2263
2259
  "required": [
@@ -2699,6 +2695,11 @@
2699
2695
  "description": "Relationship to remove"
2700
2696
  },
2701
2697
  "description": "Relationships to remove"
2698
+ },
2699
+ "sync_index": {
2700
+ "type": "boolean",
2701
+ "default": false,
2702
+ "description": "Wait for collection index update before returning. Use when checking index immediately after update."
2702
2703
  }
2703
2704
  },
2704
2705
  "required": [
@@ -2766,6 +2767,11 @@
2766
2767
  "maxLength": 500,
2767
2768
  "description": "Reason for deleting the entity",
2768
2769
  "example": "Duplicate entry"
2770
+ },
2771
+ "sync_index": {
2772
+ "type": "boolean",
2773
+ "default": false,
2774
+ "description": "Wait for collection index removal before returning. Use when checking index immediately after deletion."
2769
2775
  }
2770
2776
  },
2771
2777
  "required": [
@@ -3038,7 +3044,7 @@
3038
3044
  "TreeNode": {
3039
3045
  "type": "object",
3040
3046
  "properties": {
3041
- "pi": {
3047
+ "id": {
3042
3048
  "type": "string",
3043
3049
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
3044
3050
  "description": "Entity ID (ULID format)",
@@ -3065,7 +3071,7 @@
3065
3071
  }
3066
3072
  },
3067
3073
  "required": [
3068
- "pi",
3074
+ "id",
3069
3075
  "label",
3070
3076
  "type",
3071
3077
  "depth",
@@ -5775,29 +5781,54 @@
5775
5781
  "type": "object",
5776
5782
  "properties": {
5777
5783
  "klados": {
5778
- "type": "object",
5779
- "properties": {
5780
- "pi": {
5781
- "type": "string",
5782
- "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$"
5783
- },
5784
- "type": {
5785
- "type": "string"
5786
- },
5787
- "label": {
5788
- "type": "string"
5784
+ "anyOf": [
5785
+ {
5786
+ "type": "object",
5787
+ "properties": {
5788
+ "id": {
5789
+ "type": "string",
5790
+ "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$"
5791
+ },
5792
+ "type": {
5793
+ "type": "string"
5794
+ },
5795
+ "label": {
5796
+ "type": "string"
5797
+ },
5798
+ "description": {
5799
+ "type": "string"
5800
+ }
5801
+ },
5802
+ "required": [
5803
+ "id"
5804
+ ]
5789
5805
  },
5790
- "description": {
5791
- "type": "string"
5806
+ {
5807
+ "type": "object",
5808
+ "properties": {
5809
+ "pi": {
5810
+ "type": "string",
5811
+ "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$"
5812
+ },
5813
+ "type": {
5814
+ "type": "string"
5815
+ },
5816
+ "label": {
5817
+ "type": "string"
5818
+ },
5819
+ "description": {
5820
+ "type": "string"
5821
+ }
5822
+ },
5823
+ "required": [
5824
+ "pi"
5825
+ ]
5792
5826
  }
5793
- },
5794
- "required": [
5795
- "pi"
5796
5827
  ],
5797
5828
  "description": "Reference to the klados entity to invoke for this step",
5798
5829
  "title": "KladosRef",
5799
5830
  "example": {
5800
- "pi": "01KEXAMPLE123456789012345",
5831
+ "id": "01KEXAMPLE123456789012345",
5801
5832
  "type": "klados",
5802
5833
  "label": "OCR Processor"
5803
5834
  }
@@ -5944,7 +5975,7 @@
5944
5975
  "example": {
5945
5976
  "extract": {
5946
5977
  "klados": {
5947
- "pi": "01KKLADOSA12345678901234",
5978
+ "id": "01KKLADOSA12345678901234",
5948
5979
  "type": "klados"
5949
5980
  },
5950
5981
  "then": {
@@ -5953,7 +5984,7 @@
5953
5984
  },
5954
5985
  "summarize": {
5955
5986
  "klados": {
5956
- "pi": "01KKLADOSB12345678901234",
5987
+ "id": "01KKLADOSB12345678901234",
5957
5988
  "type": "klados"
5958
5989
  },
5959
5990
  "then": {
@@ -6217,29 +6248,54 @@
6217
6248
  "type": "object",
6218
6249
  "properties": {
6219
6250
  "klados": {
6220
- "type": "object",
6221
- "properties": {
6222
- "pi": {
6223
- "type": "string",
6224
- "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$"
6225
- },
6226
- "type": {
6227
- "type": "string"
6228
- },
6229
- "label": {
6230
- "type": "string"
6251
+ "anyOf": [
6252
+ {
6253
+ "type": "object",
6254
+ "properties": {
6255
+ "id": {
6256
+ "type": "string",
6257
+ "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$"
6258
+ },
6259
+ "type": {
6260
+ "type": "string"
6261
+ },
6262
+ "label": {
6263
+ "type": "string"
6264
+ },
6265
+ "description": {
6266
+ "type": "string"
6267
+ }
6268
+ },
6269
+ "required": [
6270
+ "id"
6271
+ ]
6231
6272
  },
6232
- "description": {
6233
- "type": "string"
6273
+ {
6274
+ "type": "object",
6275
+ "properties": {
6276
+ "pi": {
6277
+ "type": "string",
6278
+ "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$"
6279
+ },
6280
+ "type": {
6281
+ "type": "string"
6282
+ },
6283
+ "label": {
6284
+ "type": "string"
6285
+ },
6286
+ "description": {
6287
+ "type": "string"
6288
+ }
6289
+ },
6290
+ "required": [
6291
+ "pi"
6292
+ ]
6234
6293
  }
6235
- },
6236
- "required": [
6237
- "pi"
6238
6294
  ],
6239
6295
  "description": "Reference to the klados entity to invoke for this step",
6240
6296
  "title": "KladosRef",
6241
6297
  "example": {
6242
- "pi": "01KEXAMPLE123456789012345",
6298
+ "id": "01KEXAMPLE123456789012345",
6243
6299
  "type": "klados",
6244
6300
  "label": "OCR Processor"
6245
6301
  }
@@ -6386,7 +6442,7 @@
6386
6442
  "example": {
6387
6443
  "extract": {
6388
6444
  "klados": {
6389
- "pi": "01KKLADOSA12345678901234",
6445
+ "id": "01KKLADOSA12345678901234",
6390
6446
  "type": "klados"
6391
6447
  },
6392
6448
  "then": {
@@ -6395,7 +6451,7 @@
6395
6451
  },
6396
6452
  "summarize": {
6397
6453
  "klados": {
6398
- "pi": "01KKLADOSB12345678901234",
6454
+ "id": "01KKLADOSB12345678901234",
6399
6455
  "type": "klados"
6400
6456
  },
6401
6457
  "then": {
@@ -6852,7 +6908,7 @@
6852
6908
  "description": "Auto-increment event ID (use as cursor)",
6853
6909
  "example": 12346
6854
6910
  },
6855
- "pi": {
6911
+ "entity_id": {
6856
6912
  "type": "string",
6857
6913
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
6858
6914
  "description": "Entity ID that changed",
@@ -6872,7 +6928,7 @@
6872
6928
  },
6873
6929
  "required": [
6874
6930
  "id",
6875
- "pi",
6931
+ "entity_id",
6876
6932
  "cid",
6877
6933
  "ts"
6878
6934
  ]
@@ -6907,7 +6963,7 @@
6907
6963
  "PathEdge": {
6908
6964
  "type": "object",
6909
6965
  "properties": {
6910
- "subject_pi": {
6966
+ "subject_id": {
6911
6967
  "type": "string",
6912
6968
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
6913
6969
  "description": "Source entity PI",
@@ -6945,7 +7001,7 @@
6945
7001
  "type": "string",
6946
7002
  "description": "Relationship predicate"
6947
7003
  },
6948
- "object_pi": {
7004
+ "object_id": {
6949
7005
  "type": "string",
6950
7006
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
6951
7007
  "description": "Target entity PI",
@@ -6981,36 +7037,36 @@
6981
7037
  }
6982
7038
  },
6983
7039
  "required": [
6984
- "subject_pi",
7040
+ "subject_id",
6985
7041
  "subject_label",
6986
7042
  "subject_type",
6987
7043
  "predicate",
6988
- "object_pi",
7044
+ "object_id",
6989
7045
  "object_label",
6990
7046
  "object_type"
6991
7047
  ],
6992
7048
  "example": {
6993
- "subject_pi": "01KE4ZY69F9R40E88PK9S0TQRQ",
7049
+ "subject_id": "01KE4ZY69F9R40E88PK9S0TQRQ",
6994
7050
  "subject_label": "Project Folder",
6995
7051
  "subject_type": "folder",
6996
7052
  "subject_preview": {
6997
7053
  "id": "01KE4ZY69F9R40E88PK9S0TQRQ",
6998
7054
  "type": "folder",
6999
7055
  "label": "Project Folder",
7000
- "collection_pi": "01JCOLLECTION123456789ABCD",
7056
+ "collection_id": "01JCOLLECTION123456789ABCD",
7001
7057
  "description_preview": "Main project folder containing research documents...",
7002
7058
  "created_at": "2025-01-10T08:00:00.000Z",
7003
7059
  "updated_at": "2025-01-18T16:45:00.000Z"
7004
7060
  },
7005
7061
  "predicate": "contains",
7006
- "object_pi": "01KE506KZGD8M2P1XK3VNQT4YR",
7062
+ "object_id": "01KE506KZGD8M2P1XK3VNQT4YR",
7007
7063
  "object_label": "Research Paper.pdf",
7008
7064
  "object_type": "file",
7009
7065
  "object_preview": {
7010
7066
  "id": "01KE506KZGD8M2P1XK3VNQT4YR",
7011
7067
  "type": "file",
7012
7068
  "label": "Research Paper.pdf",
7013
- "collection_pi": "01JCOLLECTION123456789ABCD",
7069
+ "collection_id": "01JCOLLECTION123456789ABCD",
7014
7070
  "description_preview": "Analysis of entity management patterns and best practices...",
7015
7071
  "created_at": "2025-01-15T10:00:00.000Z",
7016
7072
  "updated_at": "2025-01-20T14:30:00.000Z"
@@ -7020,13 +7076,13 @@
7020
7076
  "PathResult": {
7021
7077
  "type": "object",
7022
7078
  "properties": {
7023
- "source_pi": {
7079
+ "source_id": {
7024
7080
  "type": "string",
7025
7081
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
7026
7082
  "description": "Entity ID (ULID format)",
7027
7083
  "example": "01KDETYWYWM0MJVKM8DK3AEXPY"
7028
7084
  },
7029
- "target_pi": {
7085
+ "target_id": {
7030
7086
  "type": "string",
7031
7087
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
7032
7088
  "description": "Entity ID (ULID format)",
@@ -7044,8 +7100,8 @@
7044
7100
  }
7045
7101
  },
7046
7102
  "required": [
7047
- "source_pi",
7048
- "target_pi",
7103
+ "source_id",
7104
+ "target_id",
7049
7105
  "length",
7050
7106
  "edges"
7051
7107
  ]
@@ -7072,7 +7128,7 @@
7072
7128
  "PathsBetweenRequest": {
7073
7129
  "type": "object",
7074
7130
  "properties": {
7075
- "source_pis": {
7131
+ "source_ids": {
7076
7132
  "type": "array",
7077
7133
  "items": {
7078
7134
  "type": "string",
@@ -7086,7 +7142,7 @@
7086
7142
  "01KE4ZY69F9R40E88PK9S0TQRQ"
7087
7143
  ]
7088
7144
  },
7089
- "target_pis": {
7145
+ "target_ids": {
7090
7146
  "type": "array",
7091
7147
  "items": {
7092
7148
  "type": "string",
@@ -7129,20 +7185,20 @@
7129
7185
  }
7130
7186
  },
7131
7187
  "required": [
7132
- "source_pis",
7133
- "target_pis"
7188
+ "source_ids",
7189
+ "target_ids"
7134
7190
  ]
7135
7191
  },
7136
7192
  "ReachableResult": {
7137
7193
  "type": "object",
7138
7194
  "properties": {
7139
- "source_pi": {
7195
+ "source_id": {
7140
7196
  "type": "string",
7141
7197
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
7142
7198
  "description": "Entity ID (ULID format)",
7143
7199
  "example": "01KDETYWYWM0MJVKM8DK3AEXPY"
7144
7200
  },
7145
- "target_pi": {
7201
+ "target_id": {
7146
7202
  "type": "string",
7147
7203
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
7148
7204
  "description": "Entity ID (ULID format)",
@@ -7186,16 +7242,16 @@
7186
7242
  }
7187
7243
  },
7188
7244
  "required": [
7189
- "source_pi",
7190
- "target_pi",
7245
+ "source_id",
7246
+ "target_id",
7191
7247
  "target_label",
7192
7248
  "target_type",
7193
7249
  "length",
7194
7250
  "edges"
7195
7251
  ],
7196
7252
  "example": {
7197
- "source_pi": "01KE4ZY69F9R40E88PK9S0TQRQ",
7198
- "target_pi": "01KE506KZGD8M2P1XK3VNQT4YR",
7253
+ "source_id": "01KE4ZY69F9R40E88PK9S0TQRQ",
7254
+ "target_id": "01KE506KZGD8M2P1XK3VNQT4YR",
7199
7255
  "target_label": "Research Paper.pdf",
7200
7256
  "target_type": "file",
7201
7257
  "length": 1,
@@ -7204,7 +7260,7 @@
7204
7260
  "id": "01KE506KZGD8M2P1XK3VNQT4YR",
7205
7261
  "type": "file",
7206
7262
  "label": "Research Paper.pdf",
7207
- "collection_pi": "01JCOLLECTION123456789ABCD",
7263
+ "collection_id": "01JCOLLECTION123456789ABCD",
7208
7264
  "description_preview": "Analysis of entity management patterns and best practices...",
7209
7265
  "created_at": "2025-01-15T10:00:00.000Z",
7210
7266
  "updated_at": "2025-01-20T14:30:00.000Z"
@@ -7233,7 +7289,7 @@
7233
7289
  "PathsReachableRequest": {
7234
7290
  "type": "object",
7235
7291
  "properties": {
7236
- "source_pis": {
7292
+ "source_ids": {
7237
7293
  "type": "array",
7238
7294
  "items": {
7239
7295
  "type": "string",
@@ -7282,7 +7338,7 @@
7282
7338
  }
7283
7339
  },
7284
7340
  "required": [
7285
- "source_pis",
7341
+ "source_ids",
7286
7342
  "target_type"
7287
7343
  ]
7288
7344
  },
@@ -7299,7 +7355,7 @@
7299
7355
  "predicate": {
7300
7356
  "type": "string"
7301
7357
  },
7302
- "peer_pi": {
7358
+ "peer_id": {
7303
7359
  "type": "string",
7304
7360
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
7305
7361
  "description": "Entity ID (ULID format)",
@@ -7341,7 +7397,7 @@
7341
7397
  "required": [
7342
7398
  "direction",
7343
7399
  "predicate",
7344
- "peer_pi",
7400
+ "peer_id",
7345
7401
  "peer_type",
7346
7402
  "peer_label",
7347
7403
  "properties"
@@ -7349,7 +7405,7 @@
7349
7405
  "example": {
7350
7406
  "direction": "outgoing",
7351
7407
  "predicate": "contains",
7352
- "peer_pi": "01KE506KZGD8M2P1XK3VNQT4YR",
7408
+ "peer_id": "01KE506KZGD8M2P1XK3VNQT4YR",
7353
7409
  "peer_type": "file",
7354
7410
  "peer_label": "Research Paper.pdf",
7355
7411
  "properties": {},
@@ -7357,7 +7413,7 @@
7357
7413
  "id": "01KE506KZGD8M2P1XK3VNQT4YR",
7358
7414
  "type": "file",
7359
7415
  "label": "Research Paper.pdf",
7360
- "collection_pi": "01KE4ZY69F9R40E88PK9S0TQRQ",
7416
+ "collection_id": "01KE4ZY69F9R40E88PK9S0TQRQ",
7361
7417
  "description_preview": "Analysis of entity management patterns and best practices...",
7362
7418
  "created_at": "2025-01-15T10:00:00.000Z",
7363
7419
  "updated_at": "2025-01-20T14:30:00.000Z"
@@ -7367,7 +7423,7 @@
7367
7423
  "GraphEntityResponse": {
7368
7424
  "type": "object",
7369
7425
  "properties": {
7370
- "pi": {
7426
+ "id": {
7371
7427
  "type": "string",
7372
7428
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
7373
7429
  "description": "Entity ID (ULID format)",
@@ -7379,7 +7435,7 @@
7379
7435
  "label": {
7380
7436
  "type": "string"
7381
7437
  },
7382
- "collection_pi": {
7438
+ "collection_id": {
7383
7439
  "type": "string",
7384
7440
  "nullable": true
7385
7441
  },
@@ -7399,26 +7455,26 @@
7399
7455
  }
7400
7456
  },
7401
7457
  "required": [
7402
- "pi",
7458
+ "id",
7403
7459
  "type",
7404
7460
  "label",
7405
- "collection_pi",
7461
+ "collection_id",
7406
7462
  "created_at",
7407
7463
  "updated_at",
7408
7464
  "relationships"
7409
7465
  ],
7410
7466
  "example": {
7411
- "pi": "01KE4ZY69F9R40E88PK9S0TQRQ",
7467
+ "id": "01KE4ZY69F9R40E88PK9S0TQRQ",
7412
7468
  "type": "folder",
7413
7469
  "label": "Project Folder",
7414
- "collection_pi": "01JCOLLECTION123456789ABCD",
7470
+ "collection_id": "01JCOLLECTION123456789ABCD",
7415
7471
  "created_at": "2025-01-10T08:00:00.000Z",
7416
7472
  "updated_at": "2025-01-18T16:45:00.000Z",
7417
7473
  "relationships": [
7418
7474
  {
7419
7475
  "direction": "outgoing",
7420
7476
  "predicate": "contains",
7421
- "peer_pi": "01KE506KZGD8M2P1XK3VNQT4YR",
7477
+ "peer_id": "01KE506KZGD8M2P1XK3VNQT4YR",
7422
7478
  "peer_type": "file",
7423
7479
  "peer_label": "Research Paper.pdf",
7424
7480
  "properties": {},
@@ -7426,7 +7482,7 @@
7426
7482
  "id": "01KE506KZGD8M2P1XK3VNQT4YR",
7427
7483
  "type": "file",
7428
7484
  "label": "Research Paper.pdf",
7429
- "collection_pi": "01JCOLLECTION123456789ABCD",
7485
+ "collection_id": "01JCOLLECTION123456789ABCD",
7430
7486
  "description_preview": "Analysis of entity management patterns and best practices...",
7431
7487
  "created_at": "2025-01-15T10:00:00.000Z",
7432
7488
  "updated_at": "2025-01-20T14:30:00.000Z"
@@ -7585,7 +7641,7 @@
7585
7641
  "entity": {
7586
7642
  "type": "object",
7587
7643
  "properties": {
7588
- "pi": {
7644
+ "id": {
7589
7645
  "type": "string",
7590
7646
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
7591
7647
  "description": "Entity ID (ULID format)",
@@ -7599,7 +7655,7 @@
7599
7655
  "type": "string",
7600
7656
  "example": "Albert Einstein"
7601
7657
  },
7602
- "collection_pi": {
7658
+ "collection_id": {
7603
7659
  "type": "string",
7604
7660
  "nullable": true,
7605
7661
  "example": "01JCOLL_RESEARCH"
@@ -7626,22 +7682,22 @@
7626
7682
  }
7627
7683
  },
7628
7684
  "required": [
7629
- "pi",
7685
+ "id",
7630
7686
  "type",
7631
7687
  "label",
7632
- "collection_pi"
7688
+ "collection_id"
7633
7689
  ],
7634
7690
  "description": "Query result entity with optional expansion data",
7635
7691
  "example": {
7636
- "pi": "01KE4ZY69F9R40E88PK9S0TQRQ",
7692
+ "id": "01KE4ZY69F9R40E88PK9S0TQRQ",
7637
7693
  "type": "person",
7638
7694
  "label": "Albert Einstein",
7639
- "collection_pi": "01JCOLL_RESEARCH",
7695
+ "collection_id": "01JCOLL_RESEARCH",
7640
7696
  "preview_data": {
7641
7697
  "id": "01KE4ZY69F9R40E88PK9S0TQRQ",
7642
7698
  "type": "person",
7643
7699
  "label": "Albert Einstein",
7644
- "collection_pi": "01JCOLL_RESEARCH",
7700
+ "collection_id": "01JCOLL_RESEARCH",
7645
7701
  "description_preview": "German-born theoretical physicist who developed the theory of relativity...",
7646
7702
  "created_at": "2025-01-15T10:00:00.000Z",
7647
7703
  "updated_at": "2025-01-20T14:30:00.000Z"
@@ -7669,15 +7725,15 @@
7669
7725
  "description": "A single query result with entity, path, and score",
7670
7726
  "example": {
7671
7727
  "entity": {
7672
- "pi": "01KE4ZY69F9R40E88PK9S0TQRQ",
7728
+ "id": "01KE4ZY69F9R40E88PK9S0TQRQ",
7673
7729
  "type": "file",
7674
7730
  "label": "Theory of Relativity.pdf",
7675
- "collection_pi": "01JCOLL_RESEARCH",
7731
+ "collection_id": "01JCOLL_RESEARCH",
7676
7732
  "preview_data": {
7677
7733
  "id": "01KE4ZY69F9R40E88PK9S0TQRQ",
7678
7734
  "type": "file",
7679
7735
  "label": "Theory of Relativity.pdf",
7680
- "collection_pi": "01JCOLL_RESEARCH",
7736
+ "collection_id": "01JCOLL_RESEARCH",
7681
7737
  "description_preview": "Seminal paper on special and general relativity...",
7682
7738
  "created_at": "2025-01-10T08:00:00.000Z",
7683
7739
  "updated_at": "2025-01-10T08:00:00.000Z"
@@ -7752,6 +7808,18 @@
7752
7808
  ],
7753
7809
  "description": "Control entity expansion in results and path steps.\n- **omitted/preview** (default): Attach lightweight preview data (label, timestamps, truncated description/text)\n- **full**: Attach complete entity manifest (all properties, relationships, version info)\n- **none**: No expansion - return only Pinecone metadata (fastest, smallest payload)",
7754
7810
  "example": "preview"
7811
+ },
7812
+ "filter": {
7813
+ "type": "object",
7814
+ "additionalProperties": {
7815
+ "nullable": true
7816
+ },
7817
+ "description": "Filter by indexed metadata properties during semantic search.\n\nOnly underscore-prefixed properties (`_year`, `_class`, etc.) are indexed as filterable metadata.\n\n**Operators:** `$eq`, `$ne`, `$gt`, `$gte`, `$lt`, `$lte`, `$in`, `$nin`, `$exists`, `$and`, `$or`\n\n**Example - Find letters from the 1800s:**\n```json\n{ \"_year\": { \"$gte\": 1800, \"$lte\": 1899 } }\n```",
7818
+ "example": {
7819
+ "_year": {
7820
+ "$gt": 1800
7821
+ }
7822
+ }
7755
7823
  }
7756
7824
  },
7757
7825
  "required": [
@@ -8156,7 +8224,7 @@
8156
8224
  "AttestationResponse": {
8157
8225
  "type": "object",
8158
8226
  "properties": {
8159
- "pi": {
8227
+ "id": {
8160
8228
  "type": "string",
8161
8229
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
8162
8230
  "description": "Entity ID (ULID format)",
@@ -8193,7 +8261,7 @@
8193
8261
  }
8194
8262
  },
8195
8263
  "required": [
8196
- "pi",
8264
+ "id",
8197
8265
  "ver",
8198
8266
  "cid",
8199
8267
  "arweave_tx",
@@ -8204,7 +8272,7 @@
8204
8272
  "AttestationPendingResponse": {
8205
8273
  "type": "object",
8206
8274
  "properties": {
8207
- "pi": {
8275
+ "id": {
8208
8276
  "type": "string",
8209
8277
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
8210
8278
  "description": "Entity ID (ULID format)",
@@ -8237,7 +8305,7 @@
8237
8305
  }
8238
8306
  },
8239
8307
  "required": [
8240
- "pi",
8308
+ "id",
8241
8309
  "ver",
8242
8310
  "cid",
8243
8311
  "attestation_status",
@@ -8279,7 +8347,7 @@
8279
8347
  "attestation": {
8280
8348
  "type": "object",
8281
8349
  "properties": {
8282
- "pi": {
8350
+ "id": {
8283
8351
  "type": "string",
8284
8352
  "pattern": "^(?:II[0-9A-HJKMNP-TV-Z]{24}|[FC][0-9A-HJKMNP-TV-Z]{25}|[0-9A-HJKMNP-TV-Z]{26})$",
8285
8353
  "description": "Entity ID (ULID format)",
@@ -8327,7 +8395,7 @@
8327
8395
  }
8328
8396
  },
8329
8397
  "required": [
8330
- "pi",
8398
+ "id",
8331
8399
  "ver",
8332
8400
  "cid",
8333
8401
  "op",
@@ -8401,6 +8469,9 @@
8401
8469
  "security": [
8402
8470
  {
8403
8471
  "bearerAuth": []
8472
+ },
8473
+ {
8474
+ "apiKeyAuth": []
8404
8475
  }
8405
8476
  ],
8406
8477
  "responses": {
@@ -8479,6 +8550,9 @@
8479
8550
  "security": [
8480
8551
  {
8481
8552
  "bearerAuth": []
8553
+ },
8554
+ {
8555
+ "apiKeyAuth": []
8482
8556
  }
8483
8557
  ],
8484
8558
  "responses": {
@@ -8717,6 +8791,9 @@
8717
8791
  "security": [
8718
8792
  {
8719
8793
  "bearerAuth": []
8794
+ },
8795
+ {
8796
+ "apiKeyAuth": []
8720
8797
  }
8721
8798
  ],
8722
8799
  "responses": {
@@ -8763,6 +8840,9 @@
8763
8840
  "security": [
8764
8841
  {
8765
8842
  "bearerAuth": []
8843
+ },
8844
+ {
8845
+ "apiKeyAuth": []
8766
8846
  }
8767
8847
  ],
8768
8848
  "requestBody": {
@@ -8813,6 +8893,9 @@
8813
8893
  "security": [
8814
8894
  {
8815
8895
  "bearerAuth": []
8896
+ },
8897
+ {
8898
+ "apiKeyAuth": []
8816
8899
  }
8817
8900
  ],
8818
8901
  "responses": {
@@ -8856,6 +8939,9 @@
8856
8939
  "security": [
8857
8940
  {
8858
8941
  "bearerAuth": []
8942
+ },
8943
+ {
8944
+ "apiKeyAuth": []
8859
8945
  }
8860
8946
  ],
8861
8947
  "parameters": [
@@ -9029,6 +9115,9 @@
9029
9115
  "security": [
9030
9116
  {
9031
9117
  "bearerAuth": []
9118
+ },
9119
+ {
9120
+ "apiKeyAuth": []
9032
9121
  }
9033
9122
  ],
9034
9123
  "requestBody": {
@@ -9100,13 +9189,16 @@
9100
9189
  "Collections"
9101
9190
  ],
9102
9191
  "summary": "Create a new collection",
9103
- "description": "Creates a collection with the authenticated user as owner.\n\n---\n**Permission:** `collection:create` \n**Auth:** required",
9192
+ "description": "Creates a collection with the authenticated user as owner.\n\n**Default Roles:**\n\nBy default (`use_roles_default: true`), collections include these standard roles:\n- `owner`: Full control including collection management\n- `editor`: Can modify entities but not collection settings\n- `viewer`: Read-only access\n- `public`: Public read access (`*:view`)\n\n**Customizing Roles:**\n\nPass custom `roles` to override specific defaults while keeping others. For example, to make entities publicly invokable (for agents):\n```json\n{ \"roles\": { \"public\": [\"*:view\", \"*:invoke\"] } }\n```\n\nSet `use_roles_default: false` to define all roles from scratch.\n\n**Platform Requirement:** The `public` role with `*:view` is always automatically ensured, guaranteeing all collections are publicly readable.\n\n---\n**Permission:** `collection:create` \n**Auth:** required",
9104
9193
  "x-arke-action": "collection:create",
9105
9194
  "x-arke-auth": "required",
9106
9195
  "x-arke-tier": "standard",
9107
9196
  "security": [
9108
9197
  {
9109
9198
  "bearerAuth": []
9199
+ },
9200
+ {
9201
+ "apiKeyAuth": []
9110
9202
  }
9111
9203
  ],
9112
9204
  "requestBody": {
@@ -9257,6 +9349,9 @@
9257
9349
  "security": [
9258
9350
  {
9259
9351
  "bearerAuth": []
9352
+ },
9353
+ {
9354
+ "apiKeyAuth": []
9260
9355
  }
9261
9356
  ],
9262
9357
  "parameters": [
@@ -9403,6 +9498,9 @@
9403
9498
  "security": [
9404
9499
  {
9405
9500
  "bearerAuth": []
9501
+ },
9502
+ {
9503
+ "apiKeyAuth": []
9406
9504
  }
9407
9505
  ],
9408
9506
  "parameters": [
@@ -9518,6 +9616,9 @@
9518
9616
  "security": [
9519
9617
  {
9520
9618
  "bearerAuth": []
9619
+ },
9620
+ {
9621
+ "apiKeyAuth": []
9521
9622
  }
9522
9623
  ],
9523
9624
  "parameters": [
@@ -9643,6 +9744,9 @@
9643
9744
  "security": [
9644
9745
  {
9645
9746
  "bearerAuth": []
9747
+ },
9748
+ {
9749
+ "apiKeyAuth": []
9646
9750
  }
9647
9751
  ],
9648
9752
  "parameters": [
@@ -9813,6 +9917,9 @@
9813
9917
  "security": [
9814
9918
  {
9815
9919
  "bearerAuth": []
9920
+ },
9921
+ {
9922
+ "apiKeyAuth": []
9816
9923
  }
9817
9924
  ],
9818
9925
  "parameters": [
@@ -9928,6 +10035,9 @@
9928
10035
  "security": [
9929
10036
  {
9930
10037
  "bearerAuth": []
10038
+ },
10039
+ {
10040
+ "apiKeyAuth": []
9931
10041
  }
9932
10042
  ],
9933
10043
  "parameters": [
@@ -10057,6 +10167,9 @@
10057
10167
  "security": [
10058
10168
  {
10059
10169
  "bearerAuth": []
10170
+ },
10171
+ {
10172
+ "apiKeyAuth": []
10060
10173
  }
10061
10174
  ],
10062
10175
  "parameters": [
@@ -10182,7 +10295,7 @@
10182
10295
  "Collections"
10183
10296
  ],
10184
10297
  "summary": "List entities in a collection",
10185
- "description": "Returns entities belonging to this collection from the graph database.\n\nSupports pagination and optional type filtering. Results are ordered by creation date (newest first).\n\n**Expansion Modes:**\n\nBy default, returns lightweight summaries from GraphDB (pi, type, label, timestamps).\n\nUse the `expand` parameter to hydrate entity data from storage:\n\n- **`?expand=preview`**: Adds `preview` field with fresh lightweight data (label, truncated description/text, timestamps). ~5-10KB per entity.\n\n- **`?expand=full`**: Adds `entity` field with complete manifest (all properties, relationships, version history). ~20-50KB per entity.\n\n**Performance Note:** Expansion requires fetching each entity from storage. Limited to 100 entities per request. Use smaller `limit` values when expanding.\n\n---\n**Permission:** `collection:view` \n**Auth:** optional",
10298
+ "description": "Returns entities belonging to this collection.\n\nSupports pagination and optional type filtering. Results are ordered by creation date (newest first).\n\n**Expansion Modes:**\n\nBy default, returns lightweight summaries (pi, type, label, timestamps).\n\nUse the `expand` parameter to hydrate entity data from storage:\n\n- **`?expand=preview`**: Adds `preview` field with fresh lightweight data (label, truncated description/text, timestamps). ~5-10KB per entity.\n\n- **`?expand=full`**: Adds `entity` field with complete manifest (all properties, relationships, version history). ~20-50KB per entity.\n\n**Performance Note:** Expansion requires fetching each entity from storage. Limited to 100 entities per request. Use smaller `limit` values when expanding.\n\n---\n**Permission:** `collection:view` \n**Auth:** optional",
10186
10299
  "x-arke-action": "collection:view",
10187
10300
  "x-arke-auth": "optional",
10188
10301
  "x-arke-tier": "external",
@@ -10209,6 +10322,16 @@
10209
10322
  "name": "type",
10210
10323
  "in": "query"
10211
10324
  },
10325
+ {
10326
+ "schema": {
10327
+ "type": "string",
10328
+ "description": "JSON-encoded filter for custom properties (underscore-prefixed). Supports direct equality {\"_year\": 1850} or operators {\"_year\": {\"$gte\": 1800}}. Operators: $eq, $ne, $gt, $gte, $lt, $lte.",
10329
+ "example": "{\"_year\":{\"$gte\":1800,\"$lte\":1900}}"
10330
+ },
10331
+ "required": false,
10332
+ "name": "filter",
10333
+ "in": "query"
10334
+ },
10212
10335
  {
10213
10336
  "schema": {
10214
10337
  "type": "integer",
@@ -10288,7 +10411,7 @@
10288
10411
  }
10289
10412
  },
10290
10413
  "503": {
10291
- "description": "GraphDB service unavailable"
10414
+ "description": "Collection index service unavailable"
10292
10415
  }
10293
10416
  }
10294
10417
  }
@@ -10507,6 +10630,9 @@
10507
10630
  "security": [
10508
10631
  {
10509
10632
  "bearerAuth": []
10633
+ },
10634
+ {
10635
+ "apiKeyAuth": []
10510
10636
  }
10511
10637
  ],
10512
10638
  "parameters": [
@@ -10629,6 +10755,9 @@
10629
10755
  "security": [
10630
10756
  {
10631
10757
  "bearerAuth": []
10758
+ },
10759
+ {
10760
+ "apiKeyAuth": []
10632
10761
  }
10633
10762
  ],
10634
10763
  "parameters": [
@@ -10885,6 +11014,9 @@
10885
11014
  "security": [
10886
11015
  {
10887
11016
  "bearerAuth": []
11017
+ },
11018
+ {
11019
+ "apiKeyAuth": []
10888
11020
  }
10889
11021
  ],
10890
11022
  "parameters": [
@@ -11029,6 +11161,9 @@
11029
11161
  "security": [
11030
11162
  {
11031
11163
  "bearerAuth": []
11164
+ },
11165
+ {
11166
+ "apiKeyAuth": []
11032
11167
  }
11033
11168
  ],
11034
11169
  "parameters": [
@@ -11279,6 +11414,9 @@
11279
11414
  "security": [
11280
11415
  {
11281
11416
  "bearerAuth": []
11417
+ },
11418
+ {
11419
+ "apiKeyAuth": []
11282
11420
  }
11283
11421
  ],
11284
11422
  "parameters": [
@@ -11412,6 +11550,9 @@
11412
11550
  "security": [
11413
11551
  {
11414
11552
  "bearerAuth": []
11553
+ },
11554
+ {
11555
+ "apiKeyAuth": []
11415
11556
  }
11416
11557
  ],
11417
11558
  "parameters": [
@@ -11849,6 +11990,9 @@
11849
11990
  "security": [
11850
11991
  {
11851
11992
  "bearerAuth": []
11993
+ },
11994
+ {
11995
+ "apiKeyAuth": []
11852
11996
  }
11853
11997
  ],
11854
11998
  "parameters": [
@@ -11931,6 +12075,9 @@
11931
12075
  "security": [
11932
12076
  {
11933
12077
  "bearerAuth": []
12078
+ },
12079
+ {
12080
+ "apiKeyAuth": []
11934
12081
  }
11935
12082
  ],
11936
12083
  "parameters": [
@@ -12168,6 +12315,9 @@
12168
12315
  "security": [
12169
12316
  {
12170
12317
  "bearerAuth": []
12318
+ },
12319
+ {
12320
+ "apiKeyAuth": []
12171
12321
  }
12172
12322
  ],
12173
12323
  "parameters": [
@@ -12321,6 +12471,9 @@
12321
12471
  "security": [
12322
12472
  {
12323
12473
  "bearerAuth": []
12474
+ },
12475
+ {
12476
+ "apiKeyAuth": []
12324
12477
  }
12325
12478
  ],
12326
12479
  "parameters": [
@@ -12453,6 +12606,9 @@
12453
12606
  "security": [
12454
12607
  {
12455
12608
  "bearerAuth": []
12609
+ },
12610
+ {
12611
+ "apiKeyAuth": []
12456
12612
  }
12457
12613
  ],
12458
12614
  "parameters": [
@@ -12568,6 +12724,9 @@
12568
12724
  "security": [
12569
12725
  {
12570
12726
  "bearerAuth": []
12727
+ },
12728
+ {
12729
+ "apiKeyAuth": []
12571
12730
  }
12572
12731
  ],
12573
12732
  "parameters": [
@@ -12701,6 +12860,9 @@
12701
12860
  "security": [
12702
12861
  {
12703
12862
  "bearerAuth": []
12863
+ },
12864
+ {
12865
+ "apiKeyAuth": []
12704
12866
  }
12705
12867
  ],
12706
12868
  "requestBody": {
@@ -12977,6 +13139,9 @@
12977
13139
  "security": [
12978
13140
  {
12979
13141
  "bearerAuth": []
13142
+ },
13143
+ {
13144
+ "apiKeyAuth": []
12980
13145
  }
12981
13146
  ],
12982
13147
  "requestBody": {
@@ -13140,6 +13305,9 @@
13140
13305
  "security": [
13141
13306
  {
13142
13307
  "bearerAuth": []
13308
+ },
13309
+ {
13310
+ "apiKeyAuth": []
13143
13311
  }
13144
13312
  ],
13145
13313
  "parameters": [
@@ -13272,6 +13440,9 @@
13272
13440
  "security": [
13273
13441
  {
13274
13442
  "bearerAuth": []
13443
+ },
13444
+ {
13445
+ "apiKeyAuth": []
13275
13446
  }
13276
13447
  ],
13277
13448
  "parameters": [
@@ -13397,6 +13568,9 @@
13397
13568
  "security": [
13398
13569
  {
13399
13570
  "bearerAuth": []
13571
+ },
13572
+ {
13573
+ "apiKeyAuth": []
13400
13574
  }
13401
13575
  ],
13402
13576
  "parameters": [
@@ -13522,6 +13696,9 @@
13522
13696
  "security": [
13523
13697
  {
13524
13698
  "bearerAuth": []
13699
+ },
13700
+ {
13701
+ "apiKeyAuth": []
13525
13702
  }
13526
13703
  ],
13527
13704
  "parameters": [
@@ -13647,6 +13824,9 @@
13647
13824
  "security": [
13648
13825
  {
13649
13826
  "bearerAuth": []
13827
+ },
13828
+ {
13829
+ "apiKeyAuth": []
13650
13830
  }
13651
13831
  ],
13652
13832
  "parameters": [
@@ -13760,6 +13940,9 @@
13760
13940
  "security": [
13761
13941
  {
13762
13942
  "bearerAuth": []
13943
+ },
13944
+ {
13945
+ "apiKeyAuth": []
13763
13946
  }
13764
13947
  ],
13765
13948
  "parameters": [
@@ -13842,6 +14025,9 @@
13842
14025
  "security": [
13843
14026
  {
13844
14027
  "bearerAuth": []
14028
+ },
14029
+ {
14030
+ "apiKeyAuth": []
13845
14031
  }
13846
14032
  ],
13847
14033
  "parameters": [
@@ -13929,6 +14115,9 @@
13929
14115
  "security": [
13930
14116
  {
13931
14117
  "bearerAuth": []
14118
+ },
14119
+ {
14120
+ "apiKeyAuth": []
13932
14121
  }
13933
14122
  ],
13934
14123
  "requestBody": {
@@ -14092,6 +14281,9 @@
14092
14281
  "security": [
14093
14282
  {
14094
14283
  "bearerAuth": []
14284
+ },
14285
+ {
14286
+ "apiKeyAuth": []
14095
14287
  }
14096
14288
  ],
14097
14289
  "parameters": [
@@ -14224,6 +14416,9 @@
14224
14416
  "security": [
14225
14417
  {
14226
14418
  "bearerAuth": []
14419
+ },
14420
+ {
14421
+ "apiKeyAuth": []
14227
14422
  }
14228
14423
  ],
14229
14424
  "parameters": [
@@ -14409,6 +14604,9 @@
14409
14604
  "security": [
14410
14605
  {
14411
14606
  "bearerAuth": []
14607
+ },
14608
+ {
14609
+ "apiKeyAuth": []
14412
14610
  }
14413
14611
  ],
14414
14612
  "parameters": [
@@ -14596,6 +14794,9 @@
14596
14794
  "security": [
14597
14795
  {
14598
14796
  "bearerAuth": []
14797
+ },
14798
+ {
14799
+ "apiKeyAuth": []
14599
14800
  }
14600
14801
  ],
14601
14802
  "parameters": [
@@ -14675,6 +14876,9 @@
14675
14876
  "security": [
14676
14877
  {
14677
14878
  "bearerAuth": []
14879
+ },
14880
+ {
14881
+ "apiKeyAuth": []
14678
14882
  }
14679
14883
  ],
14680
14884
  "parameters": [
@@ -14754,6 +14958,9 @@
14754
14958
  "security": [
14755
14959
  {
14756
14960
  "bearerAuth": []
14961
+ },
14962
+ {
14963
+ "apiKeyAuth": []
14757
14964
  }
14758
14965
  ],
14759
14966
  "parameters": [
@@ -14825,6 +15032,9 @@
14825
15032
  "security": [
14826
15033
  {
14827
15034
  "bearerAuth": []
15035
+ },
15036
+ {
15037
+ "apiKeyAuth": []
14828
15038
  }
14829
15039
  ],
14830
15040
  "requestBody": {
@@ -14887,6 +15097,9 @@
14887
15097
  "security": [
14888
15098
  {
14889
15099
  "bearerAuth": []
15100
+ },
15101
+ {
15102
+ "apiKeyAuth": []
14890
15103
  }
14891
15104
  ],
14892
15105
  "requestBody": {
@@ -14895,9 +15108,9 @@
14895
15108
  "schema": {
14896
15109
  "type": "object",
14897
15110
  "properties": {
14898
- "pi": {
15111
+ "id": {
14899
15112
  "type": "string",
14900
- "description": "Collection PI to find similar collections for"
15113
+ "description": "Collection ID to find similar collections for"
14901
15114
  },
14902
15115
  "limit": {
14903
15116
  "type": "number",
@@ -14923,7 +15136,7 @@
14923
15136
  }
14924
15137
  },
14925
15138
  "required": [
14926
- "pi"
15139
+ "id"
14927
15140
  ]
14928
15141
  }
14929
15142
  }
@@ -14942,7 +15155,7 @@
14942
15155
  "items": {
14943
15156
  "type": "object",
14944
15157
  "properties": {
14945
- "pi": {
15158
+ "id": {
14946
15159
  "type": "string"
14947
15160
  },
14948
15161
  "label": {
@@ -14987,7 +15200,7 @@
14987
15200
  }
14988
15201
  },
14989
15202
  "required": [
14990
- "pi",
15203
+ "id",
14991
15204
  "label",
14992
15205
  "score"
14993
15206
  ]
@@ -14996,7 +15209,7 @@
14996
15209
  "metadata": {
14997
15210
  "type": "object",
14998
15211
  "properties": {
14999
- "source_pi": {
15212
+ "source_id": {
15000
15213
  "type": "string"
15001
15214
  },
15002
15215
  "result_count": {
@@ -15010,7 +15223,7 @@
15010
15223
  }
15011
15224
  },
15012
15225
  "required": [
15013
- "source_pi",
15226
+ "source_id",
15014
15227
  "result_count"
15015
15228
  ]
15016
15229
  }
@@ -15092,6 +15305,9 @@
15092
15305
  "security": [
15093
15306
  {
15094
15307
  "bearerAuth": []
15308
+ },
15309
+ {
15310
+ "apiKeyAuth": []
15095
15311
  }
15096
15312
  ],
15097
15313
  "requestBody": {
@@ -15100,13 +15316,13 @@
15100
15316
  "schema": {
15101
15317
  "type": "object",
15102
15318
  "properties": {
15103
- "pi": {
15319
+ "id": {
15104
15320
  "type": "string",
15105
- "description": "Entity PI to find similar items for"
15321
+ "description": "Entity ID to find similar items for"
15106
15322
  },
15107
- "collection_pi": {
15323
+ "collection_id": {
15108
15324
  "type": "string",
15109
- "description": "Entity's collection PI"
15325
+ "description": "Entity's collection ID"
15110
15326
  },
15111
15327
  "limit": {
15112
15328
  "type": "number",
@@ -15151,8 +15367,8 @@
15151
15367
  }
15152
15368
  },
15153
15369
  "required": [
15154
- "pi",
15155
- "collection_pi"
15370
+ "id",
15371
+ "collection_id"
15156
15372
  ]
15157
15373
  }
15158
15374
  }
@@ -15171,7 +15387,7 @@
15171
15387
  "items": {
15172
15388
  "type": "object",
15173
15389
  "properties": {
15174
- "pi": {
15390
+ "id": {
15175
15391
  "type": "string"
15176
15392
  },
15177
15393
  "type": {
@@ -15180,7 +15396,7 @@
15180
15396
  "label": {
15181
15397
  "type": "string"
15182
15398
  },
15183
- "collection_pi": {
15399
+ "collection_id": {
15184
15400
  "type": "string",
15185
15401
  "nullable": true
15186
15402
  },
@@ -15204,7 +15420,7 @@
15204
15420
  "id": "01KENTITY123456789ABCDEFGH",
15205
15421
  "type": "document",
15206
15422
  "label": "Similar Research Paper",
15207
- "collection_pi": "01JCOLLECTION123456789AB",
15423
+ "collection_id": "01JCOLLECTION123456789AB",
15208
15424
  "description_preview": "Related findings on distributed systems...",
15209
15425
  "created_at": "2026-01-08T00:00:00.000Z",
15210
15426
  "updated_at": "2026-01-12T10:00:00.000Z"
@@ -15224,10 +15440,10 @@
15224
15440
  }
15225
15441
  },
15226
15442
  "required": [
15227
- "pi",
15443
+ "id",
15228
15444
  "type",
15229
15445
  "label",
15230
- "collection_pi",
15446
+ "collection_id",
15231
15447
  "score"
15232
15448
  ]
15233
15449
  }
@@ -15235,7 +15451,7 @@
15235
15451
  "metadata": {
15236
15452
  "type": "object",
15237
15453
  "properties": {
15238
- "source_pi": {
15454
+ "source_id": {
15239
15455
  "type": "string"
15240
15456
  },
15241
15457
  "collections_searched": {
@@ -15252,7 +15468,7 @@
15252
15468
  }
15253
15469
  },
15254
15470
  "required": [
15255
- "source_pi",
15471
+ "source_id",
15256
15472
  "collections_searched",
15257
15473
  "result_count"
15258
15474
  ]
@@ -15335,6 +15551,9 @@
15335
15551
  "security": [
15336
15552
  {
15337
15553
  "bearerAuth": []
15554
+ },
15555
+ {
15556
+ "apiKeyAuth": []
15338
15557
  }
15339
15558
  ],
15340
15559
  "requestBody": {
@@ -15363,6 +15582,19 @@
15363
15582
  },
15364
15583
  "description": "Filter by collection types"
15365
15584
  },
15585
+ "filter": {
15586
+ "type": "object",
15587
+ "additionalProperties": {
15588
+ "nullable": true
15589
+ },
15590
+ "description": "Filter by indexed metadata properties.\n\n**Filterable Properties:**\nOnly underscore-prefixed properties (`_year`, `_class`, etc.) are indexed as filterable metadata.\n\n**Operators:**\n| Operator | Description | Example |\n|----------|-------------|---------|\n| `$eq` | Equals | `{ \"_year\": { \"$eq\": 1905 } }` |\n| `$ne` | Not equals | `{ \"_class\": { \"$ne\": \"draft\" } }` |\n| `$gt` | Greater than | `{ \"_year\": { \"$gt\": 1900 } }` |\n| `$gte` | Greater than or equal | `{ \"_year\": { \"$gte\": 1900 } }` |\n| `$lt` | Less than | `{ \"_year\": { \"$lt\": 2000 } }` |\n| `$lte` | Less than or equal | `{ \"_year\": { \"$lte\": 2000 } }` |\n| `$in` | In array | `{ \"_class\": { \"$in\": [\"letter\", \"memo\"] } }` |\n| `$nin` | Not in array | `{ \"_class\": { \"$nin\": [\"draft\"] } }` |\n| `$exists` | Property exists | `{ \"_ocr_text\": { \"$exists\": true } }` |\n\n**Logical Operators:**\n| Operator | Description | Example |\n|----------|-------------|---------|\n| `$and` | All conditions must match | `{ \"$and\": [{ \"_year\": { \"$gt\": 1900 } }, { \"_year\": { \"$lt\": 2000 } }] }` |\n| `$or` | Any condition must match | `{ \"$or\": [{ \"_class\": \"letter\" }, { \"_class\": \"memo\" }] }` |\n\n**Built-in Fields (always available):**\n- `type` - Entity type\n- `created_at` - ISO timestamp string\n- `updated_at` - ISO timestamp string\n\n**Example - Find letters from 1800-1900:**\n```json\n{\n \"$and\": [\n { \"type\": { \"$eq\": \"letter\" } },\n { \"_year\": { \"$gte\": 1800 } },\n { \"_year\": { \"$lte\": 1900 } }\n ]\n}\n```",
15591
+ "example": {
15592
+ "_year": {
15593
+ "$gt": 1800
15594
+ },
15595
+ "type": "letter"
15596
+ }
15597
+ },
15366
15598
  "expand": {
15367
15599
  "type": "string",
15368
15600
  "enum": [
@@ -15394,7 +15626,7 @@
15394
15626
  "items": {
15395
15627
  "type": "object",
15396
15628
  "properties": {
15397
- "pi": {
15629
+ "id": {
15398
15630
  "type": "string"
15399
15631
  },
15400
15632
  "label": {
@@ -15442,7 +15674,7 @@
15442
15674
  }
15443
15675
  },
15444
15676
  "required": [
15445
- "pi",
15677
+ "id",
15446
15678
  "label",
15447
15679
  "type",
15448
15680
  "score"
@@ -15529,6 +15761,9 @@
15529
15761
  "security": [
15530
15762
  {
15531
15763
  "bearerAuth": []
15764
+ },
15765
+ {
15766
+ "apiKeyAuth": []
15532
15767
  }
15533
15768
  ],
15534
15769
  "requestBody": {
@@ -15550,6 +15785,19 @@
15550
15785
  "default": 10,
15551
15786
  "description": "Maximum results to return"
15552
15787
  },
15788
+ "filter": {
15789
+ "type": "object",
15790
+ "additionalProperties": {
15791
+ "nullable": true
15792
+ },
15793
+ "description": "Filter by indexed metadata properties.\n\n**Filterable Properties:**\nOnly underscore-prefixed properties (`_year`, `_class`, etc.) are indexed as filterable metadata.\n\n**Operators:**\n| Operator | Description | Example |\n|----------|-------------|---------|\n| `$eq` | Equals | `{ \"_year\": { \"$eq\": 1905 } }` |\n| `$ne` | Not equals | `{ \"_class\": { \"$ne\": \"draft\" } }` |\n| `$gt` | Greater than | `{ \"_year\": { \"$gt\": 1900 } }` |\n| `$gte` | Greater than or equal | `{ \"_year\": { \"$gte\": 1900 } }` |\n| `$lt` | Less than | `{ \"_year\": { \"$lt\": 2000 } }` |\n| `$lte` | Less than or equal | `{ \"_year\": { \"$lte\": 2000 } }` |\n| `$in` | In array | `{ \"_class\": { \"$in\": [\"letter\", \"memo\"] } }` |\n| `$nin` | Not in array | `{ \"_class\": { \"$nin\": [\"draft\"] } }` |\n| `$exists` | Property exists | `{ \"_ocr_text\": { \"$exists\": true } }` |\n\n**Logical Operators:**\n| Operator | Description | Example |\n|----------|-------------|---------|\n| `$and` | All conditions must match | `{ \"$and\": [{ \"_year\": { \"$gt\": 1900 } }, { \"_year\": { \"$lt\": 2000 } }] }` |\n| `$or` | Any condition must match | `{ \"$or\": [{ \"_class\": \"letter\" }, { \"_class\": \"memo\" }] }` |\n\n**Built-in Fields (always available):**\n- `type` - Entity type\n- `created_at` - ISO timestamp string\n- `updated_at` - ISO timestamp string\n\n**Example - Find letters from 1800-1900:**\n```json\n{\n \"$and\": [\n { \"type\": { \"$eq\": \"letter\" } },\n { \"_year\": { \"$gte\": 1800 } },\n { \"_year\": { \"$lte\": 1900 } }\n ]\n}\n```",
15794
+ "example": {
15795
+ "_year": {
15796
+ "$gt": 1800
15797
+ },
15798
+ "type": "letter"
15799
+ }
15800
+ },
15553
15801
  "expand": {
15554
15802
  "type": "string",
15555
15803
  "enum": [
@@ -15590,7 +15838,7 @@
15590
15838
  "items": {
15591
15839
  "type": "object",
15592
15840
  "properties": {
15593
- "pi": {
15841
+ "id": {
15594
15842
  "type": "string"
15595
15843
  },
15596
15844
  "label": {
@@ -15599,7 +15847,7 @@
15599
15847
  "score": {
15600
15848
  "type": "number"
15601
15849
  },
15602
- "collection_pi": {
15850
+ "collection_id": {
15603
15851
  "type": "string",
15604
15852
  "nullable": true
15605
15853
  },
@@ -15623,7 +15871,7 @@
15623
15871
  "id": "01KAGENT123456789ABCDEFGHI",
15624
15872
  "type": "agent",
15625
15873
  "label": "Document Analyzer Agent",
15626
- "collection_pi": "01JCOLLECTION123456789AB",
15874
+ "collection_id": "01JCOLLECTION123456789AB",
15627
15875
  "description_preview": "An AI agent that analyzes documents and extracts key insights...",
15628
15876
  "created_at": "2026-01-01T00:00:00.000Z",
15629
15877
  "updated_at": "2026-01-15T16:00:00.000Z"
@@ -15643,10 +15891,10 @@
15643
15891
  }
15644
15892
  },
15645
15893
  "required": [
15646
- "pi",
15894
+ "id",
15647
15895
  "label",
15648
15896
  "score",
15649
- "collection_pi"
15897
+ "collection_id"
15650
15898
  ]
15651
15899
  }
15652
15900
  },
@@ -15723,13 +15971,16 @@
15723
15971
  "Search"
15724
15972
  ],
15725
15973
  "summary": "Search entities within collection(s)",
15726
- "description": "Search for entities within one or more collections using semantic text search.\n\nProvide either `collection_pi` for a single collection or `collection_pis` for multiple collections (searched in parallel).\n\nUse `per_collection_limit` to ensure result diversity when searching multiple collections.\n\n**Entity Expansion:**\n\nUse `expand` in the request body to fetch entity data inline with search results:\n\n- **`expand: \"preview\"` (default)**: Adds `entity_preview` with fresh lightweight data (id, type, label, timestamps)\n- **`expand: \"full\"`**: Adds `entity` with complete manifest including all properties and relationships\n- **`expand: \"none\"`**: Returns search metadata only (fastest, lowest bandwidth)\n\nPreview mode is recommended for most use cases. Full expansion can result in large payloads.\nGracefully handles deleted or inaccessible entities (returns results without expansion data).\n\n---\n**Permission:** `search:query` \n**Auth:** required",
15974
+ "description": "Search for entities within one or more collections using semantic text search.\n\nProvide either `collection_pi` for a single collection or `collection_ids` for multiple collections (searched in parallel).\n\nUse `per_collection_limit` to ensure result diversity when searching multiple collections.\n\n**Entity Expansion:**\n\nUse `expand` in the request body to fetch entity data inline with search results:\n\n- **`expand: \"preview\"` (default)**: Adds `entity_preview` with fresh lightweight data (id, type, label, timestamps)\n- **`expand: \"full\"`**: Adds `entity` with complete manifest including all properties and relationships\n- **`expand: \"none\"`**: Returns search metadata only (fastest, lowest bandwidth)\n\nPreview mode is recommended for most use cases. Full expansion can result in large payloads.\nGracefully handles deleted or inaccessible entities (returns results without expansion data).\n\n---\n**Permission:** `search:query` \n**Auth:** required",
15727
15975
  "x-arke-action": "search:query",
15728
15976
  "x-arke-auth": "required",
15729
15977
  "x-arke-tier": "external",
15730
15978
  "security": [
15731
15979
  {
15732
15980
  "bearerAuth": []
15981
+ },
15982
+ {
15983
+ "apiKeyAuth": []
15733
15984
  }
15734
15985
  ],
15735
15986
  "requestBody": {
@@ -15738,17 +15989,17 @@
15738
15989
  "schema": {
15739
15990
  "type": "object",
15740
15991
  "properties": {
15741
- "collection_pi": {
15992
+ "collection_id": {
15742
15993
  "type": "string",
15743
- "description": "Single collection PI to search within"
15994
+ "description": "Single collection ID to search within"
15744
15995
  },
15745
- "collection_pis": {
15996
+ "collection_ids": {
15746
15997
  "type": "array",
15747
15998
  "items": {
15748
15999
  "type": "string"
15749
16000
  },
15750
16001
  "maxItems": 20,
15751
- "description": "Multiple collection PIs to search (max 20)"
16002
+ "description": "Multiple collection IDs to search (max 20)"
15752
16003
  },
15753
16004
  "query": {
15754
16005
  "type": "string",
@@ -15770,6 +16021,19 @@
15770
16021
  },
15771
16022
  "description": "Filter by entity types"
15772
16023
  },
16024
+ "filter": {
16025
+ "type": "object",
16026
+ "additionalProperties": {
16027
+ "nullable": true
16028
+ },
16029
+ "description": "Filter by indexed metadata properties.\n\n**Filterable Properties:**\nOnly underscore-prefixed properties (`_year`, `_class`, etc.) are indexed as filterable metadata.\n\n**Operators:**\n| Operator | Description | Example |\n|----------|-------------|---------|\n| `$eq` | Equals | `{ \"_year\": { \"$eq\": 1905 } }` |\n| `$ne` | Not equals | `{ \"_class\": { \"$ne\": \"draft\" } }` |\n| `$gt` | Greater than | `{ \"_year\": { \"$gt\": 1900 } }` |\n| `$gte` | Greater than or equal | `{ \"_year\": { \"$gte\": 1900 } }` |\n| `$lt` | Less than | `{ \"_year\": { \"$lt\": 2000 } }` |\n| `$lte` | Less than or equal | `{ \"_year\": { \"$lte\": 2000 } }` |\n| `$in` | In array | `{ \"_class\": { \"$in\": [\"letter\", \"memo\"] } }` |\n| `$nin` | Not in array | `{ \"_class\": { \"$nin\": [\"draft\"] } }` |\n| `$exists` | Property exists | `{ \"_ocr_text\": { \"$exists\": true } }` |\n\n**Logical Operators:**\n| Operator | Description | Example |\n|----------|-------------|---------|\n| `$and` | All conditions must match | `{ \"$and\": [{ \"_year\": { \"$gt\": 1900 } }, { \"_year\": { \"$lt\": 2000 } }] }` |\n| `$or` | Any condition must match | `{ \"$or\": [{ \"_class\": \"letter\" }, { \"_class\": \"memo\" }] }` |\n\n**Built-in Fields (always available):**\n- `type` - Entity type\n- `created_at` - ISO timestamp string\n- `updated_at` - ISO timestamp string\n\n**Example - Find letters from 1800-1900:**\n```json\n{\n \"$and\": [\n { \"type\": { \"$eq\": \"letter\" } },\n { \"_year\": { \"$gte\": 1800 } },\n { \"_year\": { \"$lte\": 1900 } }\n ]\n}\n```",
16030
+ "example": {
16031
+ "_year": {
16032
+ "$gt": 1800
16033
+ },
16034
+ "type": "letter"
16035
+ }
16036
+ },
15773
16037
  "per_collection_limit": {
15774
16038
  "type": "number",
15775
16039
  "minimum": 1,
@@ -15807,7 +16071,7 @@
15807
16071
  "items": {
15808
16072
  "type": "object",
15809
16073
  "properties": {
15810
- "pi": {
16074
+ "id": {
15811
16075
  "type": "string"
15812
16076
  },
15813
16077
  "label": {
@@ -15819,7 +16083,7 @@
15819
16083
  "score": {
15820
16084
  "type": "number"
15821
16085
  },
15822
- "collection_pi": {
16086
+ "collection_id": {
15823
16087
  "type": "string"
15824
16088
  },
15825
16089
  "created_at": {
@@ -15839,7 +16103,7 @@
15839
16103
  "id": "01KENTITY123456789ABCDEFGH",
15840
16104
  "type": "document",
15841
16105
  "label": "Research Findings Report",
15842
- "collection_pi": "01JCOLLECTION123456789AB",
16106
+ "collection_id": "01JCOLLECTION123456789AB",
15843
16107
  "description_preview": "Detailed analysis of experimental results...",
15844
16108
  "created_at": "2026-01-10T00:00:00.000Z",
15845
16109
  "updated_at": "2026-01-14T09:00:00.000Z"
@@ -15859,18 +16123,18 @@
15859
16123
  }
15860
16124
  },
15861
16125
  "required": [
15862
- "pi",
16126
+ "id",
15863
16127
  "label",
15864
16128
  "type",
15865
16129
  "score",
15866
- "collection_pi"
16130
+ "collection_id"
15867
16131
  ]
15868
16132
  }
15869
16133
  },
15870
16134
  "metadata": {
15871
16135
  "type": "object",
15872
16136
  "properties": {
15873
- "collection_pis": {
16137
+ "collection_ids": {
15874
16138
  "type": "array",
15875
16139
  "items": {
15876
16140
  "type": "string"
@@ -15887,7 +16151,7 @@
15887
16151
  }
15888
16152
  },
15889
16153
  "required": [
15890
- "collection_pis",
16154
+ "collection_ids",
15891
16155
  "query",
15892
16156
  "collections_searched",
15893
16157
  "result_count"
@@ -15958,6 +16222,9 @@
15958
16222
  "security": [
15959
16223
  {
15960
16224
  "bearerAuth": []
16225
+ },
16226
+ {
16227
+ "apiKeyAuth": []
15961
16228
  }
15962
16229
  ],
15963
16230
  "requestBody": {
@@ -15986,6 +16253,19 @@
15986
16253
  },
15987
16254
  "description": "Filter by entity types"
15988
16255
  },
16256
+ "filter": {
16257
+ "type": "object",
16258
+ "additionalProperties": {
16259
+ "nullable": true
16260
+ },
16261
+ "description": "Filter by indexed metadata properties.\n\n**Filterable Properties:**\nOnly underscore-prefixed properties (`_year`, `_class`, etc.) are indexed as filterable metadata.\n\n**Operators:**\n| Operator | Description | Example |\n|----------|-------------|---------|\n| `$eq` | Equals | `{ \"_year\": { \"$eq\": 1905 } }` |\n| `$ne` | Not equals | `{ \"_class\": { \"$ne\": \"draft\" } }` |\n| `$gt` | Greater than | `{ \"_year\": { \"$gt\": 1900 } }` |\n| `$gte` | Greater than or equal | `{ \"_year\": { \"$gte\": 1900 } }` |\n| `$lt` | Less than | `{ \"_year\": { \"$lt\": 2000 } }` |\n| `$lte` | Less than or equal | `{ \"_year\": { \"$lte\": 2000 } }` |\n| `$in` | In array | `{ \"_class\": { \"$in\": [\"letter\", \"memo\"] } }` |\n| `$nin` | Not in array | `{ \"_class\": { \"$nin\": [\"draft\"] } }` |\n| `$exists` | Property exists | `{ \"_ocr_text\": { \"$exists\": true } }` |\n\n**Logical Operators:**\n| Operator | Description | Example |\n|----------|-------------|---------|\n| `$and` | All conditions must match | `{ \"$and\": [{ \"_year\": { \"$gt\": 1900 } }, { \"_year\": { \"$lt\": 2000 } }] }` |\n| `$or` | Any condition must match | `{ \"$or\": [{ \"_class\": \"letter\" }, { \"_class\": \"memo\" }] }` |\n\n**Built-in Fields (always available):**\n- `type` - Entity type\n- `created_at` - ISO timestamp string\n- `updated_at` - ISO timestamp string\n\n**Example - Find letters from 1800-1900:**\n```json\n{\n \"$and\": [\n { \"type\": { \"$eq\": \"letter\" } },\n { \"_year\": { \"$gte\": 1800 } },\n { \"_year\": { \"$lte\": 1900 } }\n ]\n}\n```",
16262
+ "example": {
16263
+ "_year": {
16264
+ "$gt": 1800
16265
+ },
16266
+ "type": "letter"
16267
+ }
16268
+ },
15989
16269
  "collection_limit": {
15990
16270
  "type": "number",
15991
16271
  "minimum": 1,
@@ -16031,7 +16311,7 @@
16031
16311
  "items": {
16032
16312
  "type": "object",
16033
16313
  "properties": {
16034
- "pi": {
16314
+ "id": {
16035
16315
  "type": "string"
16036
16316
  },
16037
16317
  "label": {
@@ -16043,7 +16323,7 @@
16043
16323
  "score": {
16044
16324
  "type": "number"
16045
16325
  },
16046
- "collection_pi": {
16326
+ "collection_id": {
16047
16327
  "type": "string"
16048
16328
  },
16049
16329
  "created_at": {
@@ -16063,7 +16343,7 @@
16063
16343
  "id": "01KENTITY123456789ABCDEFGH",
16064
16344
  "type": "file",
16065
16345
  "label": "Discovered Document.pdf",
16066
- "collection_pi": "01JCOLLECTION123456789AB",
16346
+ "collection_id": "01JCOLLECTION123456789AB",
16067
16347
  "description_preview": "A document discovered through semantic search...",
16068
16348
  "created_at": "2026-01-08T00:00:00.000Z",
16069
16349
  "updated_at": "2026-01-12T14:00:00.000Z"
@@ -16083,11 +16363,11 @@
16083
16363
  }
16084
16364
  },
16085
16365
  "required": [
16086
- "pi",
16366
+ "id",
16087
16367
  "label",
16088
16368
  "type",
16089
16369
  "score",
16090
- "collection_pi"
16370
+ "collection_id"
16091
16371
  ]
16092
16372
  }
16093
16373
  },
@@ -16175,6 +16455,9 @@
16175
16455
  "security": [
16176
16456
  {
16177
16457
  "bearerAuth": []
16458
+ },
16459
+ {
16460
+ "apiKeyAuth": []
16178
16461
  }
16179
16462
  ],
16180
16463
  "requestBody": {
@@ -16260,6 +16543,9 @@
16260
16543
  "security": [
16261
16544
  {
16262
16545
  "bearerAuth": []
16546
+ },
16547
+ {
16548
+ "apiKeyAuth": []
16263
16549
  }
16264
16550
  ],
16265
16551
  "responses": {
@@ -16302,6 +16588,9 @@
16302
16588
  "security": [
16303
16589
  {
16304
16590
  "bearerAuth": []
16591
+ },
16592
+ {
16593
+ "apiKeyAuth": []
16305
16594
  }
16306
16595
  ],
16307
16596
  "responses": {
@@ -16368,6 +16657,9 @@
16368
16657
  "security": [
16369
16658
  {
16370
16659
  "bearerAuth": []
16660
+ },
16661
+ {
16662
+ "apiKeyAuth": []
16371
16663
  }
16372
16664
  ],
16373
16665
  "responses": {