@celigo/api-specs 0.2.1
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/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/account.yml +592 -0
- package/dist/agent.yml +908 -0
- package/dist/ai-agent.yml +5471 -0
- package/dist/api.yml +4140 -0
- package/dist/apim.yml +1286 -0
- package/dist/asynchelper.yml +3391 -0
- package/dist/audit.yml +2006 -0
- package/dist/connection.yml +8665 -0
- package/dist/connector.yml +1406 -0
- package/dist/ediprofile.yml +911 -0
- package/dist/editransaction.yml +1210 -0
- package/dist/enduser.yml +1724 -0
- package/dist/environment.yml +568 -0
- package/dist/eventreport.yml +692 -0
- package/dist/export.yml +17610 -0
- package/dist/filedefinition.yml +1396 -0
- package/dist/filestorage.yml +3102 -0
- package/dist/flow.yml +7928 -0
- package/dist/guardrail.yml +2763 -0
- package/dist/httpconnector.yml +2277 -0
- package/dist/httpconnectorendpoint.yml +722 -0
- package/dist/httpconnectorresource.yml +396 -0
- package/dist/iclient.yml +4452 -0
- package/dist/import.yml +15381 -0
- package/dist/integration.yml +4406 -0
- package/dist/job.yml +2014 -0
- package/dist/lookupcache.yml +1325 -0
- package/dist/marketplace.yml +685 -0
- package/dist/mcp-oauth-provider.yml +590 -0
- package/dist/mcp-server.yml +2656 -0
- package/dist/notification.yml +488 -0
- package/dist/processor.yml +1253 -0
- package/dist/profile.yml +455 -0
- package/dist/recyclebin.yml +768 -0
- package/dist/script.yml +1128 -0
- package/dist/stack.yml +1291 -0
- package/dist/state.yml +894 -0
- package/dist/subscription.yml +1405 -0
- package/dist/sync.yml +4857 -0
- package/dist/tag.yml +553 -0
- package/dist/template.yml +897 -0
- package/dist/tool.yml +33656 -0
- package/dist/tradingpartnerconnector.yml +1490 -0
- package/dist/user.yml +831 -0
- package/package.json +41 -0
- package/schemas.json +8420 -0
package/dist/api.yml
ADDED
|
@@ -0,0 +1,4140 @@
|
|
|
1
|
+
openapi: 3.2.0
|
|
2
|
+
info:
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
title: APIs
|
|
5
|
+
description: API for managing Celigo custom APIs — HTTP endpoints that expose integration logic to external systems.
|
|
6
|
+
x-celigo-ai-guidance:
|
|
7
|
+
- |-
|
|
8
|
+
API for managing APIs in Celigo. APIs allow you to expose integration logic as RESTful
|
|
9
|
+
endpoints that can be invoked by external systems or applications.
|
|
10
|
+
|
|
11
|
+
APIs can be configured in two modes:
|
|
12
|
+
- **Builder Mode**: Visual configuration with request/response mapping, transformations, and routing logic
|
|
13
|
+
- **Script Mode**: Custom JavaScript functions for complete control over API behavior
|
|
14
|
+
|
|
15
|
+
Builder mode APIs support:
|
|
16
|
+
- Custom HTTP methods (GET, POST, PUT, PATCH, DELETE)
|
|
17
|
+
- Path parameters, query parameters, headers, and request bodies
|
|
18
|
+
- Request transformations before processing
|
|
19
|
+
- Conditional response routing based on processing results
|
|
20
|
+
- Response mapping with lookups and transformations
|
|
21
|
+
- Multiple response configurations for different scenarios
|
|
22
|
+
- Mock requests and responses for testing
|
|
23
|
+
|
|
24
|
+
Script mode APIs provide:
|
|
25
|
+
- Direct access to request/response objects
|
|
26
|
+
- Full JavaScript flexibility for complex logic
|
|
27
|
+
- Integration with existing script libraries
|
|
28
|
+
servers:
|
|
29
|
+
- url: https://api.integrator.io
|
|
30
|
+
description: Production (US / default region)
|
|
31
|
+
- url: https://api.eu.integrator.io
|
|
32
|
+
description: Production (EU region)
|
|
33
|
+
- url: https://api.au.integrator.io
|
|
34
|
+
description: Production (AU region)
|
|
35
|
+
- url: https://api.ca.integrator.io
|
|
36
|
+
description: Production (CA region)
|
|
37
|
+
security:
|
|
38
|
+
- bearerAuth: []
|
|
39
|
+
tags:
|
|
40
|
+
- name: APIs
|
|
41
|
+
description: |-
|
|
42
|
+
APIs expose integration logic as HTTP endpoints that external systems can invoke.
|
|
43
|
+
|
|
44
|
+
Two modes:
|
|
45
|
+
- **Builder** — visual configuration with request/response mapping, routing, and transformations
|
|
46
|
+
- **Script** — custom JavaScript handler function for full control
|
|
47
|
+
|
|
48
|
+
Each API gets a public URL: `https://api.integrator.io/apis/{version}/{relativeURI}`
|
|
49
|
+
|
|
50
|
+
## API schema
|
|
51
|
+
|
|
52
|
+
{% openapi-schemas spec="api" schemas="API" grouped="true" %}
|
|
53
|
+
paths:
|
|
54
|
+
/v1/apis:
|
|
55
|
+
get:
|
|
56
|
+
x-internal: false
|
|
57
|
+
summary: List APIs
|
|
58
|
+
description: |-
|
|
59
|
+
Returns all APIs configured in the account. No pagination -- every API is returned in a single
|
|
60
|
+
response. Legacy script-mode APIs (created before the builder/script distinction) may omit
|
|
61
|
+
`type`, `version`, and `disabled`. A 204 response means the account has zero APIs.
|
|
62
|
+
operationId: listApis
|
|
63
|
+
tags:
|
|
64
|
+
- APIs
|
|
65
|
+
parameters:
|
|
66
|
+
- name: limit
|
|
67
|
+
in: query
|
|
68
|
+
description: Maximum number of records to return per page.
|
|
69
|
+
schema:
|
|
70
|
+
type: integer
|
|
71
|
+
minimum: 1
|
|
72
|
+
examples:
|
|
73
|
+
- 100
|
|
74
|
+
- name: name
|
|
75
|
+
in: query
|
|
76
|
+
description: |-
|
|
77
|
+
Filter by name — a substring match, not an exact match. An empty
|
|
78
|
+
value is ignored.
|
|
79
|
+
schema:
|
|
80
|
+
type: string
|
|
81
|
+
examples:
|
|
82
|
+
- Order
|
|
83
|
+
- name: disabled
|
|
84
|
+
in: query
|
|
85
|
+
description: Filter by the `disabled` flag.
|
|
86
|
+
schema:
|
|
87
|
+
type: boolean
|
|
88
|
+
- $ref: '#/components/parameters/After'
|
|
89
|
+
- $ref: '#/components/parameters/Include'
|
|
90
|
+
- $ref: '#/components/parameters/Exclude'
|
|
91
|
+
responses:
|
|
92
|
+
'200':
|
|
93
|
+
description: Successfully retrieved list of APIs.
|
|
94
|
+
headers:
|
|
95
|
+
Link:
|
|
96
|
+
description: |-
|
|
97
|
+
RFC-5988 pagination links. When more pages remain, includes a `<...>; rel="next"` entry;
|
|
98
|
+
absent on the final page.
|
|
99
|
+
schema:
|
|
100
|
+
type: string
|
|
101
|
+
content:
|
|
102
|
+
application/json:
|
|
103
|
+
schema:
|
|
104
|
+
type: array
|
|
105
|
+
items:
|
|
106
|
+
$ref: '#/components/schemas/API'
|
|
107
|
+
examples:
|
|
108
|
+
mixed:
|
|
109
|
+
summary: Builder and script APIs
|
|
110
|
+
value:
|
|
111
|
+
- _id: 68ae4264b5f755d2dd3796b4
|
|
112
|
+
name: Order Webhook
|
|
113
|
+
type: builder
|
|
114
|
+
version: v1
|
|
115
|
+
disabled: false
|
|
116
|
+
createdAt: '2025-08-26T23:25:24.107Z'
|
|
117
|
+
lastModified: '2026-04-07T03:48:20.795Z'
|
|
118
|
+
- _id: 689212abe5118c1cabfb43b3
|
|
119
|
+
name: Custom Handler
|
|
120
|
+
type: script
|
|
121
|
+
version: v1
|
|
122
|
+
disabled: false
|
|
123
|
+
_scriptId: 689212a2c42d988978e27a11
|
|
124
|
+
function: handleRequest
|
|
125
|
+
createdAt: '2025-08-05T14:18:19.583Z'
|
|
126
|
+
lastModified: '2025-08-05T14:18:42.626Z'
|
|
127
|
+
'204':
|
|
128
|
+
description: No APIs exist in the account.
|
|
129
|
+
'401':
|
|
130
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
131
|
+
x-celigo-ai-guidance:
|
|
132
|
+
- |-
|
|
133
|
+
Returns a list of all APIs configured in the account.
|
|
134
|
+
If no APIs exist in the account, a 204 response with no body will be returned.
|
|
135
|
+
post:
|
|
136
|
+
x-internal: false
|
|
137
|
+
summary: Create an API
|
|
138
|
+
description: |-
|
|
139
|
+
Creates a new API. For `script` mode, include `script._scriptId` and `script.function` (the
|
|
140
|
+
server also copies these to the top level in the response). For `builder` mode,
|
|
141
|
+
`builder.request` is required (at minimum `relativeURI` and `method`).
|
|
142
|
+
|
|
143
|
+
Builder-mode APIs are created with `logging: {"mode": "basic"}` when the account license
|
|
144
|
+
has logging enabled -- the request body cannot override this (`logging` is ignored on POST
|
|
145
|
+
and PUT; change it afterwards with `PATCH /v1/apis/{_id}`).
|
|
146
|
+
operationId: createApi
|
|
147
|
+
tags:
|
|
148
|
+
- APIs
|
|
149
|
+
requestBody:
|
|
150
|
+
required: true
|
|
151
|
+
content:
|
|
152
|
+
application/json:
|
|
153
|
+
schema:
|
|
154
|
+
$ref: '#/components/schemas/Request'
|
|
155
|
+
examples:
|
|
156
|
+
script:
|
|
157
|
+
summary: Script-mode API
|
|
158
|
+
value:
|
|
159
|
+
name: Custom Handler
|
|
160
|
+
type: script
|
|
161
|
+
script:
|
|
162
|
+
_scriptId: 689212a2c42d988978e27a11
|
|
163
|
+
function: handleRequest
|
|
164
|
+
builder:
|
|
165
|
+
summary: Builder-mode API
|
|
166
|
+
value:
|
|
167
|
+
name: Order Webhook
|
|
168
|
+
type: builder
|
|
169
|
+
builder:
|
|
170
|
+
request:
|
|
171
|
+
name: Receive Order
|
|
172
|
+
method: POST
|
|
173
|
+
relativeURI: /orders
|
|
174
|
+
responses:
|
|
175
|
+
- id: success
|
|
176
|
+
name: Success
|
|
177
|
+
type: success
|
|
178
|
+
statusCode: 200
|
|
179
|
+
- id: fail
|
|
180
|
+
name: Error
|
|
181
|
+
type: fail
|
|
182
|
+
statusCode: 500
|
|
183
|
+
responseRouter:
|
|
184
|
+
id: apiRouter
|
|
185
|
+
routeRecordsUsing: input_filters
|
|
186
|
+
responses:
|
|
187
|
+
'201':
|
|
188
|
+
description: API created successfully
|
|
189
|
+
content:
|
|
190
|
+
application/json:
|
|
191
|
+
schema:
|
|
192
|
+
$ref: '#/components/schemas/API'
|
|
193
|
+
examples:
|
|
194
|
+
script:
|
|
195
|
+
summary: Created script-mode API (server copies script config to top level)
|
|
196
|
+
value:
|
|
197
|
+
_id: 689212abe5118c1cabfb43b3
|
|
198
|
+
name: Custom Handler
|
|
199
|
+
type: script
|
|
200
|
+
version: v1
|
|
201
|
+
disabled: false
|
|
202
|
+
script:
|
|
203
|
+
_scriptId: 689212a2c42d988978e27a11
|
|
204
|
+
function: handleRequest
|
|
205
|
+
_scriptId: 689212a2c42d988978e27a11
|
|
206
|
+
function: handleRequest
|
|
207
|
+
createdAt: '2025-08-05T14:18:19.583Z'
|
|
208
|
+
lastModified: '2025-08-05T14:18:19.583Z'
|
|
209
|
+
'400':
|
|
210
|
+
$ref: '#/components/responses/400-bad-request'
|
|
211
|
+
'401':
|
|
212
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
213
|
+
'422':
|
|
214
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
215
|
+
/v1/apis/usage:
|
|
216
|
+
get:
|
|
217
|
+
x-internal: false
|
|
218
|
+
operationId: listApisUsage
|
|
219
|
+
tags:
|
|
220
|
+
- APIs
|
|
221
|
+
summary: List month-to-date API invocation counts
|
|
222
|
+
description: |-
|
|
223
|
+
Returns one invocation-counter record per resource + method + relativeURI in the current month.
|
|
224
|
+
Counts API-style invocations across every resource type that exposes an HTTP-callable endpoint:
|
|
225
|
+
custom APIs (builder and script), individual exports/imports called via `/invoke`, virtual
|
|
226
|
+
imports, and APIM-fronted invocations.
|
|
227
|
+
|
|
228
|
+
The endpoint aggregates -- it does not return one record per individual call. Each entry rolls
|
|
229
|
+
up every invocation of that (resource, method, URI) triple in the current month. Counters reset
|
|
230
|
+
on the 1st of each month; there is no pagination and no historical-months filter on this path.
|
|
231
|
+
|
|
232
|
+
`ioInvocationCount` bills against the Celigo subscription; `apimInvocationCount` is billed
|
|
233
|
+
separately for external APIM passthrough. To find the resource behind a row, read
|
|
234
|
+
`metadata._resourceId` (present for exports/imports) or parse the resource id out of
|
|
235
|
+
`relativeURI`.
|
|
236
|
+
parameters:
|
|
237
|
+
- $ref: '#/components/parameters/Include'
|
|
238
|
+
- $ref: '#/components/parameters/Exclude'
|
|
239
|
+
responses:
|
|
240
|
+
'200':
|
|
241
|
+
description: Usage breakdown for the current month. `usages[]` is empty when no endpoints have been invoked yet.
|
|
242
|
+
content:
|
|
243
|
+
application/json:
|
|
244
|
+
schema:
|
|
245
|
+
$ref: '#/components/schemas/ApisUsageResponse'
|
|
246
|
+
examples:
|
|
247
|
+
default:
|
|
248
|
+
value:
|
|
249
|
+
usages:
|
|
250
|
+
- _id: 69d054b9be4ce14fb4112827
|
|
251
|
+
method: POST
|
|
252
|
+
relativeURI: /v1/exports/6878f4a43bc01652c09cdccc/invoke
|
|
253
|
+
metadata:
|
|
254
|
+
_resourceId: 6878f4a43bc01652c09cdccc
|
|
255
|
+
name: Get Contacts
|
|
256
|
+
type: export
|
|
257
|
+
month: 4
|
|
258
|
+
year: 2026
|
|
259
|
+
ioInvocationCount: 29
|
|
260
|
+
apimInvocationCount: 0
|
|
261
|
+
createdAt: '2026-04-04T00:00:57.285Z'
|
|
262
|
+
'401':
|
|
263
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
264
|
+
/v1/apis/{_id}:
|
|
265
|
+
get:
|
|
266
|
+
x-internal: false
|
|
267
|
+
summary: Get an API
|
|
268
|
+
description: Returns the complete configuration of a specific API.
|
|
269
|
+
operationId: getApiById
|
|
270
|
+
tags:
|
|
271
|
+
- APIs
|
|
272
|
+
parameters:
|
|
273
|
+
- name: _id
|
|
274
|
+
in: path
|
|
275
|
+
description: The unique identifier of the API
|
|
276
|
+
required: true
|
|
277
|
+
schema:
|
|
278
|
+
type: string
|
|
279
|
+
format: objectId
|
|
280
|
+
x-celigo-refModel: apis
|
|
281
|
+
examples:
|
|
282
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
283
|
+
responses:
|
|
284
|
+
'200':
|
|
285
|
+
description: API retrieved successfully.
|
|
286
|
+
content:
|
|
287
|
+
application/json:
|
|
288
|
+
schema:
|
|
289
|
+
$ref: '#/components/schemas/API'
|
|
290
|
+
examples:
|
|
291
|
+
script:
|
|
292
|
+
summary: Script-mode API
|
|
293
|
+
value:
|
|
294
|
+
_id: 689212abe5118c1cabfb43b3
|
|
295
|
+
name: Custom Handler
|
|
296
|
+
type: script
|
|
297
|
+
version: v1
|
|
298
|
+
disabled: false
|
|
299
|
+
script:
|
|
300
|
+
_scriptId: 689212a2c42d988978e27a11
|
|
301
|
+
function: handleRequest
|
|
302
|
+
_scriptId: 689212a2c42d988978e27a11
|
|
303
|
+
function: handleRequest
|
|
304
|
+
createdAt: '2025-08-05T14:18:19.583Z'
|
|
305
|
+
lastModified: '2025-08-05T14:18:42.626Z'
|
|
306
|
+
'401':
|
|
307
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
308
|
+
'404':
|
|
309
|
+
$ref: '#/components/responses/404-not-found'
|
|
310
|
+
put:
|
|
311
|
+
x-internal: false
|
|
312
|
+
summary: Update an API
|
|
313
|
+
description: |-
|
|
314
|
+
Replaces the full API configuration. Send the complete object -- omitted fields revert to
|
|
315
|
+
defaults, not their prior values. Read-only fields (`_id`, `createdAt`, `lastModified`) in
|
|
316
|
+
the request body are ignored.
|
|
317
|
+
|
|
318
|
+
`logging` is also ignored -- silently: a PUT that includes `logging` succeeds with the
|
|
319
|
+
stored value unchanged, and no error reveals that the change was dropped. Use
|
|
320
|
+
`PATCH /v1/apis/{_id}` (paths `/logging/mode`, `/logging/debugUntil`) to change logging
|
|
321
|
+
settings.
|
|
322
|
+
operationId: updateApi
|
|
323
|
+
tags:
|
|
324
|
+
- APIs
|
|
325
|
+
parameters:
|
|
326
|
+
- name: _id
|
|
327
|
+
in: path
|
|
328
|
+
description: The unique identifier of the API
|
|
329
|
+
required: true
|
|
330
|
+
schema:
|
|
331
|
+
type: string
|
|
332
|
+
format: objectId
|
|
333
|
+
x-celigo-refModel: apis
|
|
334
|
+
examples:
|
|
335
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
336
|
+
requestBody:
|
|
337
|
+
required: true
|
|
338
|
+
content:
|
|
339
|
+
application/json:
|
|
340
|
+
schema:
|
|
341
|
+
$ref: '#/components/schemas/Request'
|
|
342
|
+
examples:
|
|
343
|
+
rename-script:
|
|
344
|
+
summary: Rename a script-mode API
|
|
345
|
+
value:
|
|
346
|
+
name: Custom Handler v2
|
|
347
|
+
type: script
|
|
348
|
+
script:
|
|
349
|
+
_scriptId: 689212a2c42d988978e27a11
|
|
350
|
+
function: handleRequest
|
|
351
|
+
responses:
|
|
352
|
+
'200':
|
|
353
|
+
description: API updated successfully
|
|
354
|
+
content:
|
|
355
|
+
application/json:
|
|
356
|
+
schema:
|
|
357
|
+
$ref: '#/components/schemas/API'
|
|
358
|
+
examples:
|
|
359
|
+
renamed:
|
|
360
|
+
summary: Script-mode API with updated name
|
|
361
|
+
value:
|
|
362
|
+
_id: 689212abe5118c1cabfb43b3
|
|
363
|
+
name: Custom Handler v2
|
|
364
|
+
type: script
|
|
365
|
+
version: v1
|
|
366
|
+
disabled: false
|
|
367
|
+
script:
|
|
368
|
+
_scriptId: 689212a2c42d988978e27a11
|
|
369
|
+
function: handleRequest
|
|
370
|
+
_scriptId: 689212a2c42d988978e27a11
|
|
371
|
+
function: handleRequest
|
|
372
|
+
createdAt: '2025-08-05T14:18:19.583Z'
|
|
373
|
+
lastModified: '2025-08-05T14:18:42.626Z'
|
|
374
|
+
'400':
|
|
375
|
+
$ref: '#/components/responses/400-bad-request'
|
|
376
|
+
'401':
|
|
377
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
378
|
+
'404':
|
|
379
|
+
$ref: '#/components/responses/404-not-found'
|
|
380
|
+
'422':
|
|
381
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
382
|
+
x-celigo-ai-guidance:
|
|
383
|
+
- |-
|
|
384
|
+
Updates an existing API with the provided configuration.
|
|
385
|
+
This is used for major updates to an API's structure or behavior.
|
|
386
|
+
patch:
|
|
387
|
+
x-internal: false
|
|
388
|
+
summary: Patch an API
|
|
389
|
+
description: |-
|
|
390
|
+
Partially updates an API using a JSON Patch document (RFC 6902).
|
|
391
|
+
The `replace` operation is supported on the following whitelisted
|
|
392
|
+
paths (`/logging/debugUntil` also accepts `remove`, which clears an
|
|
393
|
+
active debug window early):
|
|
394
|
+
|
|
395
|
+
| Path | Description |
|
|
396
|
+
|------|-------------|
|
|
397
|
+
| `/name` | API display name |
|
|
398
|
+
| `/description` | API description |
|
|
399
|
+
| `/disabled` | Enable or disable the API (boolean) |
|
|
400
|
+
| `/timeoutPeriod` | Request-timeout override in seconds |
|
|
401
|
+
| `/pagination/enabled` | Enable or disable the cursor-pagination envelope (boolean) |
|
|
402
|
+
| `/logging/mode` | Logging level for requests handled by this API |
|
|
403
|
+
| `/logging/debugUntil` | End of a temporary full-debug capture window |
|
|
404
|
+
| `/traceKeyTemplate` | Handlebars template that computes each request's trace key |
|
|
405
|
+
|
|
406
|
+
All other paths are rejected with `422`. This is the only way to change
|
|
407
|
+
`logging` -- PUT silently ignores that field.
|
|
408
|
+
|
|
409
|
+
Logging changes are validated against account entitlements: setting
|
|
410
|
+
`/logging/mode` to a payload-capturing mode (`standard`, `detailed`)
|
|
411
|
+
fails with `422` (code `payload_storage_required`) when the account
|
|
412
|
+
does not have payload storage enabled, and `/logging/debugUntil` has
|
|
413
|
+
the same payload-storage requirement. Accounts whose license does not
|
|
414
|
+
include logging, or whose license caps the maximum logging mode below
|
|
415
|
+
the requested one, are also rejected with `422`.
|
|
416
|
+
operationId: patchApi
|
|
417
|
+
tags:
|
|
418
|
+
- APIs
|
|
419
|
+
parameters:
|
|
420
|
+
- name: _id
|
|
421
|
+
in: path
|
|
422
|
+
description: The unique identifier of the API
|
|
423
|
+
required: true
|
|
424
|
+
schema:
|
|
425
|
+
type: string
|
|
426
|
+
format: objectId
|
|
427
|
+
x-celigo-refModel: apis
|
|
428
|
+
examples:
|
|
429
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
430
|
+
requestBody:
|
|
431
|
+
required: true
|
|
432
|
+
content:
|
|
433
|
+
application/json:
|
|
434
|
+
schema:
|
|
435
|
+
$ref: '#/components/schemas/JsonPatchRequest'
|
|
436
|
+
examples:
|
|
437
|
+
disable_api:
|
|
438
|
+
summary: Disable an API
|
|
439
|
+
value:
|
|
440
|
+
- op: replace
|
|
441
|
+
path: /disabled
|
|
442
|
+
value: true
|
|
443
|
+
rename:
|
|
444
|
+
summary: Rename an API
|
|
445
|
+
value:
|
|
446
|
+
- op: replace
|
|
447
|
+
path: /name
|
|
448
|
+
value: Order Webhook v2
|
|
449
|
+
responses:
|
|
450
|
+
'204':
|
|
451
|
+
description: API patched successfully
|
|
452
|
+
'401':
|
|
453
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
454
|
+
'404':
|
|
455
|
+
$ref: '#/components/responses/404-not-found'
|
|
456
|
+
'422':
|
|
457
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
458
|
+
delete:
|
|
459
|
+
x-internal: false
|
|
460
|
+
summary: Delete an API
|
|
461
|
+
description: |-
|
|
462
|
+
Deletes an API. Soft-deleted and retained in the recycle bin for 30 days. The public endpoint
|
|
463
|
+
stops responding immediately. The delete succeeds even with dependents, but those resources
|
|
464
|
+
will break -- check `GET /v1/apis/{_id}/dependencies` first.
|
|
465
|
+
operationId: deleteApi
|
|
466
|
+
tags:
|
|
467
|
+
- APIs
|
|
468
|
+
parameters:
|
|
469
|
+
- name: _id
|
|
470
|
+
in: path
|
|
471
|
+
description: The unique identifier of the API
|
|
472
|
+
required: true
|
|
473
|
+
schema:
|
|
474
|
+
type: string
|
|
475
|
+
format: objectId
|
|
476
|
+
x-celigo-refModel: apis
|
|
477
|
+
examples:
|
|
478
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
479
|
+
responses:
|
|
480
|
+
'204':
|
|
481
|
+
description: API deleted successfully
|
|
482
|
+
'401':
|
|
483
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
484
|
+
'404':
|
|
485
|
+
$ref: '#/components/responses/404-not-found'
|
|
486
|
+
x-celigo-ai-guidance:
|
|
487
|
+
- |-
|
|
488
|
+
Deletes an API configuration. This will remove the endpoint from the system and
|
|
489
|
+
it will no longer be accessible for invocation.
|
|
490
|
+
/v1/apis/schema:
|
|
491
|
+
put:
|
|
492
|
+
x-internal: false
|
|
493
|
+
operationId: convertJsonToSchema
|
|
494
|
+
tags:
|
|
495
|
+
- APIs
|
|
496
|
+
summary: Convert a JSON object to JSON Schema
|
|
497
|
+
description: |-
|
|
498
|
+
Accepts a sample JSON object and returns its inferred JSON Schema definition.
|
|
499
|
+
Useful for bootstrapping `bodySchema` in builder-mode APIs from real payload samples.
|
|
500
|
+
Input must be a non-empty JSON object -- arrays and primitives are rejected.
|
|
501
|
+
The generated schema is shallow (one level of `properties`); nested objects become
|
|
502
|
+
`type: "object"` without further property inference.
|
|
503
|
+
requestBody:
|
|
504
|
+
required: true
|
|
505
|
+
content:
|
|
506
|
+
application/json:
|
|
507
|
+
schema:
|
|
508
|
+
type: object
|
|
509
|
+
additionalProperties: true
|
|
510
|
+
description: Any sample JSON object to convert into JSON Schema.
|
|
511
|
+
example:
|
|
512
|
+
name: Acme Corp
|
|
513
|
+
active: true
|
|
514
|
+
count: 42
|
|
515
|
+
responses:
|
|
516
|
+
'200':
|
|
517
|
+
description: JSON Schema generated successfully.
|
|
518
|
+
content:
|
|
519
|
+
application/json:
|
|
520
|
+
schema:
|
|
521
|
+
type: object
|
|
522
|
+
properties:
|
|
523
|
+
type:
|
|
524
|
+
type: string
|
|
525
|
+
example: object
|
|
526
|
+
properties:
|
|
527
|
+
type: object
|
|
528
|
+
additionalProperties: true
|
|
529
|
+
additionalProperties: true
|
|
530
|
+
example:
|
|
531
|
+
type: object
|
|
532
|
+
properties:
|
|
533
|
+
name:
|
|
534
|
+
type: string
|
|
535
|
+
active:
|
|
536
|
+
type: boolean
|
|
537
|
+
count:
|
|
538
|
+
type: number
|
|
539
|
+
'400':
|
|
540
|
+
$ref: '#/components/responses/400-bad-request'
|
|
541
|
+
'401':
|
|
542
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
543
|
+
'422':
|
|
544
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
545
|
+
/v1/apis/updateApiGrouping:
|
|
546
|
+
put:
|
|
547
|
+
x-internal: false
|
|
548
|
+
operationId: updateApiGrouping
|
|
549
|
+
tags:
|
|
550
|
+
- APIs
|
|
551
|
+
summary: Update the grouping for one or more APIs
|
|
552
|
+
description: |-
|
|
553
|
+
Assigns or removes an API grouping for the specified API resources. Pass
|
|
554
|
+
`_apiGroupingId: null` to ungroup. Nonexistent API IDs are silently accepted.
|
|
555
|
+
requestBody:
|
|
556
|
+
required: true
|
|
557
|
+
content:
|
|
558
|
+
application/json:
|
|
559
|
+
schema:
|
|
560
|
+
type: object
|
|
561
|
+
required:
|
|
562
|
+
- _apiIds
|
|
563
|
+
properties:
|
|
564
|
+
_apiIds:
|
|
565
|
+
type: array
|
|
566
|
+
items:
|
|
567
|
+
type: string
|
|
568
|
+
format: objectId
|
|
569
|
+
x-celigo-refModel: apis
|
|
570
|
+
examples:
|
|
571
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
572
|
+
description: List of API resource IDs to update.
|
|
573
|
+
_apiGroupingId:
|
|
574
|
+
type:
|
|
575
|
+
- string
|
|
576
|
+
- 'null'
|
|
577
|
+
format: objectId
|
|
578
|
+
description: |-
|
|
579
|
+
The grouping ID to assign. Pass `null` or omit to remove the
|
|
580
|
+
current grouping from the specified APIs.
|
|
581
|
+
examples:
|
|
582
|
+
- 60a1b2c3d4e5f60012345678
|
|
583
|
+
example:
|
|
584
|
+
_apiIds:
|
|
585
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
586
|
+
- 5f8d43a1b9e5a80011a35f2d
|
|
587
|
+
_apiGroupingId: 60a1b2c3d4e5f60012345678
|
|
588
|
+
responses:
|
|
589
|
+
'204':
|
|
590
|
+
description: API grouping updated successfully (no body returned).
|
|
591
|
+
'400':
|
|
592
|
+
$ref: '#/components/responses/400-bad-request'
|
|
593
|
+
'401':
|
|
594
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
595
|
+
/v1/apis/{_id}/logs:
|
|
596
|
+
get:
|
|
597
|
+
x-internal: false
|
|
598
|
+
operationId: listApiLogs
|
|
599
|
+
tags:
|
|
600
|
+
- APIs
|
|
601
|
+
summary: List recent request/response logs for an API
|
|
602
|
+
description: |-
|
|
603
|
+
Returns the recent invocation traces captured for the named API. Each entry is a decoded
|
|
604
|
+
request/response pair — masked for credentials — that the runtime stored when the API was
|
|
605
|
+
called via its public endpoint. Use this to audit what the API has handled and to triage
|
|
606
|
+
errors without re-invoking the API.
|
|
607
|
+
|
|
608
|
+
Traces are **file-backed** with server-controlled retention and capture scope; an empty
|
|
609
|
+
`requests[]` simply means nothing is currently stored for this API. Two invocation sources do
|
|
610
|
+
**not** populate this log:
|
|
611
|
+
- Test-runs via `POST /v1/apis/{_id}/test/run` never surface here.
|
|
612
|
+
- Script-mode API invocations via `POST /v1/apis/{_id}/request` also do not surface here
|
|
613
|
+
despite counting toward `/v1/apis/usage`. Only **builder-mode** invocations against the
|
|
614
|
+
public endpoint (`https://api.integrator.io/apis/{version}{relativeURI}`) populate logs.
|
|
615
|
+
|
|
616
|
+
List entries are **summaries** (`key`, `time`, `method`, `statusCode`) — to see the decoded
|
|
617
|
+
request/response payload, follow up with `GET /v1/apis/{_id}/logs/{key}`.
|
|
618
|
+
|
|
619
|
+
`statusCode` is returned as a string in list entries but as an integer on the detail endpoint.
|
|
620
|
+
Credential values are masked as `********` before storage and are not recoverable.
|
|
621
|
+
parameters:
|
|
622
|
+
- name: _id
|
|
623
|
+
in: path
|
|
624
|
+
required: true
|
|
625
|
+
description: The API id.
|
|
626
|
+
schema:
|
|
627
|
+
type: string
|
|
628
|
+
format: objectId
|
|
629
|
+
x-celigo-refModel: apis
|
|
630
|
+
examples:
|
|
631
|
+
- 68ae4264b5f755d2dd3796b4
|
|
632
|
+
responses:
|
|
633
|
+
'200':
|
|
634
|
+
description: Trace envelope. `requests[]` is empty when no invocations are currently stored.
|
|
635
|
+
content:
|
|
636
|
+
application/json:
|
|
637
|
+
schema:
|
|
638
|
+
$ref: '#/components/schemas/ApiLogsResponse'
|
|
639
|
+
examples:
|
|
640
|
+
empty:
|
|
641
|
+
value:
|
|
642
|
+
requests: []
|
|
643
|
+
populated:
|
|
644
|
+
value:
|
|
645
|
+
requests:
|
|
646
|
+
- key: 5481201053696-a10af1ade8fe477a847771c1e3716e36-200-POST
|
|
647
|
+
time: 1776917346304
|
|
648
|
+
method: POST
|
|
649
|
+
statusCode: '200'
|
|
650
|
+
'401':
|
|
651
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
652
|
+
'404':
|
|
653
|
+
$ref: '#/components/responses/404-not-found'
|
|
654
|
+
/v1/apis/{_id}/logs/{key}:
|
|
655
|
+
get:
|
|
656
|
+
x-internal: false
|
|
657
|
+
operationId: getApiLogByKey
|
|
658
|
+
tags:
|
|
659
|
+
- APIs
|
|
660
|
+
summary: Get one request/response log entry by key
|
|
661
|
+
description: |-
|
|
662
|
+
Returns the full decoded request/response envelope for one API invocation, looked up by the
|
|
663
|
+
opaque `key` values surfaced in `GET /v1/apis/{_id}/logs`. Matches the exact entry whose key is
|
|
664
|
+
provided — there is no partial-match or range query on this endpoint.
|
|
665
|
+
|
|
666
|
+
Unlike the parent list (which only carries `{key, time, method, statusCode}`), this endpoint
|
|
667
|
+
returns the complete payload: request method/url/headers/body/queryParams/clientAddress,
|
|
668
|
+
response status/headers/body/responseTime, and (for builder-mode APIs) the
|
|
669
|
+
`inputToResponseBubble` snapshot of what the response-mapper saw. Sensitive header values
|
|
670
|
+
(`authorization`, OAuth bearer tokens) are masked as `********` before storage.
|
|
671
|
+
|
|
672
|
+
For builder APIs where the response mapper didn't produce the expected output, inspect
|
|
673
|
+
`inputToResponseBubble.sourceRecord` to see what the response stage actually received.
|
|
674
|
+
`response.statusCode` is an integer here but the sibling list endpoint returns it as a
|
|
675
|
+
string. A 404 `file_not_found` means the key has expired from retention or was never
|
|
676
|
+
captured.
|
|
677
|
+
parameters:
|
|
678
|
+
- name: _id
|
|
679
|
+
in: path
|
|
680
|
+
required: true
|
|
681
|
+
description: The API id.
|
|
682
|
+
schema:
|
|
683
|
+
type: string
|
|
684
|
+
format: objectId
|
|
685
|
+
x-celigo-refModel: apis
|
|
686
|
+
examples:
|
|
687
|
+
- 68ae4264b5f755d2dd3796b4
|
|
688
|
+
- name: key
|
|
689
|
+
in: path
|
|
690
|
+
required: true
|
|
691
|
+
description: |-
|
|
692
|
+
Opaque log key from the parent `GET /v1/apis/{_id}/logs` listing. Encodes status + method
|
|
693
|
+
(e.g. `…-200-POST`) — use the `key` exactly as returned; do not construct one manually.
|
|
694
|
+
schema:
|
|
695
|
+
type: string
|
|
696
|
+
examples:
|
|
697
|
+
- 5481201053696-a10af1ade8fe477a847771c1e3716e36-200-POST
|
|
698
|
+
responses:
|
|
699
|
+
'200':
|
|
700
|
+
description: The decoded request/response envelope.
|
|
701
|
+
content:
|
|
702
|
+
application/json:
|
|
703
|
+
schema:
|
|
704
|
+
$ref: '#/components/schemas/ApiLogDetail'
|
|
705
|
+
examples:
|
|
706
|
+
builder-success:
|
|
707
|
+
summary: Successful builder-mode invocation (credentials masked)
|
|
708
|
+
value:
|
|
709
|
+
time: 1776917346304
|
|
710
|
+
request:
|
|
711
|
+
method: POST
|
|
712
|
+
url: /apis/v1/orders
|
|
713
|
+
httpVersion: '1.1'
|
|
714
|
+
headers:
|
|
715
|
+
content-type: application/json
|
|
716
|
+
authorization: '********'
|
|
717
|
+
accept: application/json
|
|
718
|
+
host: api.integrator.io
|
|
719
|
+
queryParams: {}
|
|
720
|
+
body: '{"orderId":"SO-1042","total":129.99}'
|
|
721
|
+
clientAddress: ::ffff:127.0.0.6
|
|
722
|
+
size: 0
|
|
723
|
+
response:
|
|
724
|
+
statusCode: 200
|
|
725
|
+
statusMessage: OK
|
|
726
|
+
headers:
|
|
727
|
+
content-type: application/json
|
|
728
|
+
x-request-id: abc123def456
|
|
729
|
+
body: '{"orderId":"SO-1042"}'
|
|
730
|
+
size: 21
|
|
731
|
+
responseTime: 312
|
|
732
|
+
inputToResponseBubble:
|
|
733
|
+
sourceRecord:
|
|
734
|
+
- orderId: SO-1042
|
|
735
|
+
total: 129.99
|
|
736
|
+
executionErrors: []
|
|
737
|
+
configurationErrors: []
|
|
738
|
+
key: 5481201053696-a10af1ade8fe477a847771c1e3716e36-200-POST
|
|
739
|
+
id: a10af1ade8fe477a847771c1e3716e36
|
|
740
|
+
'401':
|
|
741
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
742
|
+
'404':
|
|
743
|
+
$ref: '#/components/responses/404-not-found'
|
|
744
|
+
/v1/apis/{_id}/requests:
|
|
745
|
+
get:
|
|
746
|
+
x-internal: false
|
|
747
|
+
operationId: listApiRequests
|
|
748
|
+
tags:
|
|
749
|
+
- APIs
|
|
750
|
+
summary: List API request run history (defaults to last 5 minutes)
|
|
751
|
+
description: |-
|
|
752
|
+
Returns the logged request executions for an API — one entry per inbound
|
|
753
|
+
request captured while the API's `logging.mode` was anything other than
|
|
754
|
+
`noLogging`. Distinct from `GET /v1/apis/{_id}/logs`, which returns the
|
|
755
|
+
legacy file-backed request/response envelopes: use `/requests` for run
|
|
756
|
+
history and trace drill-down, `/logs` for the raw decoded request and
|
|
757
|
+
response of a single call.
|
|
758
|
+
|
|
759
|
+
Whether requests are captured into run history depends on server-side
|
|
760
|
+
enablement of the capture pipeline, which is separate from this read
|
|
761
|
+
API. On accounts where capture is not active, this endpoint responds
|
|
762
|
+
normally (including filter validation) but `requests` is empty
|
|
763
|
+
regardless of the API's `logging.mode` — even for requests that the
|
|
764
|
+
legacy `GET /v1/apis/{_id}/logs` (an independent capture path) does
|
|
765
|
+
record.
|
|
766
|
+
|
|
767
|
+
Results are cursor-paginated (`next`/`prev`). When `time_gte` / `time_lte`
|
|
768
|
+
are omitted, only the last 5 minutes are returned — pass an explicit window
|
|
769
|
+
for a broader history. Use the `executionId` from a list entry with
|
|
770
|
+
`GET /v1/apis/{_id}/requests/{executionId}` to open the trace view for
|
|
771
|
+
requests logged in `detailed` or `debug` mode.
|
|
772
|
+
parameters:
|
|
773
|
+
- name: _id
|
|
774
|
+
in: path
|
|
775
|
+
required: true
|
|
776
|
+
description: The API id.
|
|
777
|
+
schema:
|
|
778
|
+
type: string
|
|
779
|
+
format: objectId
|
|
780
|
+
x-celigo-refModel: apis
|
|
781
|
+
examples:
|
|
782
|
+
- 685021eda02a61042cee80ab
|
|
783
|
+
- name: statusCode
|
|
784
|
+
in: query
|
|
785
|
+
description: |-
|
|
786
|
+
Filter by HTTP response status code — a single value or a
|
|
787
|
+
comma-separated list. Every value must be an integer.
|
|
788
|
+
schema:
|
|
789
|
+
type: string
|
|
790
|
+
pattern: ^\d+(,\d+)*$
|
|
791
|
+
examples:
|
|
792
|
+
- 200,404
|
|
793
|
+
- name: method
|
|
794
|
+
in: query
|
|
795
|
+
description: Filter by HTTP method (case-insensitive; normalized to uppercase).
|
|
796
|
+
schema:
|
|
797
|
+
type: string
|
|
798
|
+
enum:
|
|
799
|
+
- GET
|
|
800
|
+
- POST
|
|
801
|
+
- PUT
|
|
802
|
+
- PATCH
|
|
803
|
+
- DELETE
|
|
804
|
+
- HEAD
|
|
805
|
+
- OPTIONS
|
|
806
|
+
examples:
|
|
807
|
+
- GET
|
|
808
|
+
- name: traceKey
|
|
809
|
+
in: query
|
|
810
|
+
description: Prefix filter on the request trace key.
|
|
811
|
+
schema:
|
|
812
|
+
type: string
|
|
813
|
+
examples:
|
|
814
|
+
- trace-abc
|
|
815
|
+
- name: remoteIP
|
|
816
|
+
in: query
|
|
817
|
+
description: Prefix filter on the client IP address.
|
|
818
|
+
schema:
|
|
819
|
+
type: string
|
|
820
|
+
examples:
|
|
821
|
+
- 192.168.1.
|
|
822
|
+
- name: relativeURI
|
|
823
|
+
in: query
|
|
824
|
+
description: Prefix filter on the request relative URI.
|
|
825
|
+
schema:
|
|
826
|
+
type: string
|
|
827
|
+
examples:
|
|
828
|
+
- /orders
|
|
829
|
+
- name: searchKey
|
|
830
|
+
in: query
|
|
831
|
+
description: |-
|
|
832
|
+
Free-text search, OR-matched across `traceKey` (prefix), `remoteIP`
|
|
833
|
+
(prefix), and `relativeURI` (substring). When provided, the individual
|
|
834
|
+
`traceKey`/`remoteIP`/`relativeURI` filters are ignored. Values shorter
|
|
835
|
+
than 3 characters are rejected with 400.
|
|
836
|
+
schema:
|
|
837
|
+
type: string
|
|
838
|
+
minLength: 3
|
|
839
|
+
maxLength: 500
|
|
840
|
+
examples:
|
|
841
|
+
- order-123
|
|
842
|
+
- name: pageSize
|
|
843
|
+
in: query
|
|
844
|
+
description: |-
|
|
845
|
+
Number of entries per page. Values above the documented maximum are
|
|
846
|
+
not rejected — the server accepts them silently, so treat the
|
|
847
|
+
maximum as the supported contract rather than an enforced limit.
|
|
848
|
+
schema:
|
|
849
|
+
type: integer
|
|
850
|
+
minimum: 1
|
|
851
|
+
maximum: 100
|
|
852
|
+
default: 50
|
|
853
|
+
examples:
|
|
854
|
+
- 50
|
|
855
|
+
- name: sortOrder
|
|
856
|
+
in: query
|
|
857
|
+
description: Sort direction by request time.
|
|
858
|
+
schema:
|
|
859
|
+
type: string
|
|
860
|
+
enum:
|
|
861
|
+
- asc
|
|
862
|
+
- desc
|
|
863
|
+
x-enumDescriptions:
|
|
864
|
+
asc: Oldest requests first
|
|
865
|
+
desc: Newest requests first
|
|
866
|
+
default: desc
|
|
867
|
+
- name: next
|
|
868
|
+
in: query
|
|
869
|
+
description: |-
|
|
870
|
+
ISO 8601 timestamp cursor for the next page (from `nextPageUrl`).
|
|
871
|
+
Mutually exclusive with `prev`; requires `cursorExecutionId`.
|
|
872
|
+
schema:
|
|
873
|
+
type: string
|
|
874
|
+
format: date-time
|
|
875
|
+
- name: prev
|
|
876
|
+
in: query
|
|
877
|
+
description: |-
|
|
878
|
+
ISO 8601 timestamp cursor for the previous page (from `prevPageUrl`).
|
|
879
|
+
Mutually exclusive with `next`; requires `cursorExecutionId`.
|
|
880
|
+
schema:
|
|
881
|
+
type: string
|
|
882
|
+
format: date-time
|
|
883
|
+
- name: cursorExecutionId
|
|
884
|
+
in: query
|
|
885
|
+
description: Tie-breaker execution id, required when paging with `next`/`prev`.
|
|
886
|
+
schema:
|
|
887
|
+
type: string
|
|
888
|
+
- name: time_gte
|
|
889
|
+
in: query
|
|
890
|
+
description: Include requests at or after this ISO timestamp.
|
|
891
|
+
schema:
|
|
892
|
+
type: string
|
|
893
|
+
format: date-time
|
|
894
|
+
- name: time_lte
|
|
895
|
+
in: query
|
|
896
|
+
description: Include requests at or before this ISO timestamp.
|
|
897
|
+
schema:
|
|
898
|
+
type: string
|
|
899
|
+
format: date-time
|
|
900
|
+
responses:
|
|
901
|
+
'200':
|
|
902
|
+
description: Paginated run history. `requests[]` is empty when nothing matches.
|
|
903
|
+
content:
|
|
904
|
+
application/json:
|
|
905
|
+
schema:
|
|
906
|
+
$ref: '#/components/schemas/ApiRunHistoryResponse'
|
|
907
|
+
examples:
|
|
908
|
+
default:
|
|
909
|
+
value:
|
|
910
|
+
requests:
|
|
911
|
+
- executionId: a1b2c3d4e5f678901234
|
|
912
|
+
time: '2026-05-15T13:42:11.234Z'
|
|
913
|
+
method: POST
|
|
914
|
+
relativeURI: /orders
|
|
915
|
+
statusCode: 200
|
|
916
|
+
traceKey: trace-abc-123
|
|
917
|
+
remoteIP: 192.168.1.5
|
|
918
|
+
timeTaken: 142.7
|
|
919
|
+
logMode: detailed
|
|
920
|
+
nextPageUrl: null
|
|
921
|
+
prevPageUrl: null
|
|
922
|
+
'400':
|
|
923
|
+
$ref: '#/components/responses/400-bad-request'
|
|
924
|
+
'401':
|
|
925
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
926
|
+
'403':
|
|
927
|
+
$ref: '#/components/responses/403-forbidden'
|
|
928
|
+
'404':
|
|
929
|
+
$ref: '#/components/responses/404-not-found'
|
|
930
|
+
delete:
|
|
931
|
+
x-internal: false
|
|
932
|
+
operationId: deleteApiRequestLogs
|
|
933
|
+
tags:
|
|
934
|
+
- APIs
|
|
935
|
+
summary: Delete API request logs in a date range
|
|
936
|
+
description: |-
|
|
937
|
+
Queues asynchronous deletion of stored request log payloads for the API
|
|
938
|
+
within `[startedAt, endAt]`. Returns `202 Accepted`; cleanup runs in the
|
|
939
|
+
background. Requires manage access for log deletion — monitor-level users
|
|
940
|
+
receive `403`.
|
|
941
|
+
parameters:
|
|
942
|
+
- name: _id
|
|
943
|
+
in: path
|
|
944
|
+
required: true
|
|
945
|
+
description: The API id.
|
|
946
|
+
schema:
|
|
947
|
+
type: string
|
|
948
|
+
format: objectId
|
|
949
|
+
x-celigo-refModel: apis
|
|
950
|
+
examples:
|
|
951
|
+
- 685021eda02a61042cee80ab
|
|
952
|
+
- name: startedAt
|
|
953
|
+
in: query
|
|
954
|
+
required: true
|
|
955
|
+
description: Start of the deletion range, inclusive (ISO 8601). Must be before `endAt`.
|
|
956
|
+
schema:
|
|
957
|
+
type: string
|
|
958
|
+
format: date-time
|
|
959
|
+
examples:
|
|
960
|
+
- '2026-01-01T00:00:00.000Z'
|
|
961
|
+
- name: endAt
|
|
962
|
+
in: query
|
|
963
|
+
required: true
|
|
964
|
+
description: End of the deletion range, inclusive (ISO 8601). Must not be in the future.
|
|
965
|
+
schema:
|
|
966
|
+
type: string
|
|
967
|
+
format: date-time
|
|
968
|
+
examples:
|
|
969
|
+
- '2026-01-31T23:59:59.999Z'
|
|
970
|
+
responses:
|
|
971
|
+
'202':
|
|
972
|
+
description: Deletion request accepted for asynchronous processing.
|
|
973
|
+
'400':
|
|
974
|
+
$ref: '#/components/responses/400-bad-request'
|
|
975
|
+
'401':
|
|
976
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
977
|
+
'403':
|
|
978
|
+
$ref: '#/components/responses/403-forbidden'
|
|
979
|
+
'404':
|
|
980
|
+
$ref: '#/components/responses/404-not-found'
|
|
981
|
+
/v1/apis/{_id}/requests/{executionId}:
|
|
982
|
+
get:
|
|
983
|
+
x-internal: false
|
|
984
|
+
operationId: getApiRequestTrace
|
|
985
|
+
tags:
|
|
986
|
+
- APIs
|
|
987
|
+
summary: Get trace metadata for an API request execution
|
|
988
|
+
description: |-
|
|
989
|
+
Returns the top-level execution steps for the trace view of one API
|
|
990
|
+
request. Trace data is only available for requests that were logged in
|
|
991
|
+
`detailed` or `debug` mode (see `logMode` on the run-history entry), and
|
|
992
|
+
only when the run-history capture pipeline is active for the account
|
|
993
|
+
(see `GET /v1/apis/{_id}/requests`) — otherwise `steps` is empty for
|
|
994
|
+
every execution id.
|
|
995
|
+
|
|
996
|
+
A malformed `executionId` returns `422`; an unknown API `_id` returns `404`.
|
|
997
|
+
parameters:
|
|
998
|
+
- name: _id
|
|
999
|
+
in: path
|
|
1000
|
+
required: true
|
|
1001
|
+
description: The API id.
|
|
1002
|
+
schema:
|
|
1003
|
+
type: string
|
|
1004
|
+
format: objectId
|
|
1005
|
+
x-celigo-refModel: apis
|
|
1006
|
+
examples:
|
|
1007
|
+
- 685021eda02a61042cee80ab
|
|
1008
|
+
- name: executionId
|
|
1009
|
+
in: path
|
|
1010
|
+
required: true
|
|
1011
|
+
description: The execution id (20-character lowercase hex).
|
|
1012
|
+
schema:
|
|
1013
|
+
type: string
|
|
1014
|
+
pattern: ^[0-9a-f]{20}$
|
|
1015
|
+
examples:
|
|
1016
|
+
- a1b2c3d4e5f678901234
|
|
1017
|
+
responses:
|
|
1018
|
+
'200':
|
|
1019
|
+
description: Top-level trace steps for the request execution.
|
|
1020
|
+
content:
|
|
1021
|
+
application/json:
|
|
1022
|
+
schema:
|
|
1023
|
+
$ref: '#/components/schemas/ApiTraceMetadataResponse'
|
|
1024
|
+
examples:
|
|
1025
|
+
default:
|
|
1026
|
+
value:
|
|
1027
|
+
steps:
|
|
1028
|
+
- _expOrImpId: 67ee026136f4d1eeb529ad63
|
|
1029
|
+
status: success
|
|
1030
|
+
timeTaken: 142
|
|
1031
|
+
groupId: 6449f2
|
|
1032
|
+
recordId: 4a8e5c
|
|
1033
|
+
time: '2026-05-15T13:42:11.234Z'
|
|
1034
|
+
'400':
|
|
1035
|
+
$ref: '#/components/responses/400-bad-request'
|
|
1036
|
+
'401':
|
|
1037
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1038
|
+
'403':
|
|
1039
|
+
$ref: '#/components/responses/403-forbidden'
|
|
1040
|
+
'404':
|
|
1041
|
+
$ref: '#/components/responses/404-not-found'
|
|
1042
|
+
'422':
|
|
1043
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
1044
|
+
/v1/apis/{_id}/requests/{executionId}/{_expOrImpId}/logs/{parentRecordId}/children:
|
|
1045
|
+
get:
|
|
1046
|
+
x-internal: false
|
|
1047
|
+
operationId: listApiRequestChildren
|
|
1048
|
+
tags:
|
|
1049
|
+
- APIs
|
|
1050
|
+
summary: List child records under an API trace step
|
|
1051
|
+
description: |-
|
|
1052
|
+
Returns the child records under a parent record within an API request
|
|
1053
|
+
trace (lookup / one-to-many expansions). Results are cursor-paginated
|
|
1054
|
+
(`next`/`prev`).
|
|
1055
|
+
parameters:
|
|
1056
|
+
- name: _id
|
|
1057
|
+
in: path
|
|
1058
|
+
required: true
|
|
1059
|
+
description: The API id.
|
|
1060
|
+
schema:
|
|
1061
|
+
type: string
|
|
1062
|
+
format: objectId
|
|
1063
|
+
x-celigo-refModel: apis
|
|
1064
|
+
examples:
|
|
1065
|
+
- 685021eda02a61042cee80ab
|
|
1066
|
+
- name: executionId
|
|
1067
|
+
in: path
|
|
1068
|
+
required: true
|
|
1069
|
+
description: The execution id (20-character lowercase hex).
|
|
1070
|
+
schema:
|
|
1071
|
+
type: string
|
|
1072
|
+
pattern: ^[0-9a-f]{20}$
|
|
1073
|
+
examples:
|
|
1074
|
+
- a1b2c3d4e5f678901234
|
|
1075
|
+
- name: _expOrImpId
|
|
1076
|
+
in: path
|
|
1077
|
+
required: true
|
|
1078
|
+
description: Export, import, or builder resource-step identifier for the step.
|
|
1079
|
+
schema:
|
|
1080
|
+
type: string
|
|
1081
|
+
examples:
|
|
1082
|
+
- 67ee026136f4d1eeb529ad63
|
|
1083
|
+
- name: parentRecordId
|
|
1084
|
+
in: path
|
|
1085
|
+
required: true
|
|
1086
|
+
description: The parent record id whose children are returned.
|
|
1087
|
+
schema:
|
|
1088
|
+
type: string
|
|
1089
|
+
examples:
|
|
1090
|
+
- a1b2c3
|
|
1091
|
+
- name: status
|
|
1092
|
+
in: query
|
|
1093
|
+
description: |-
|
|
1094
|
+
Filter children by processing outcome — a single value or a
|
|
1095
|
+
comma-separated list of `success`, `error`, `ignore`.
|
|
1096
|
+
schema:
|
|
1097
|
+
type: string
|
|
1098
|
+
pattern: ^(success|error|ignore)(,(success|error|ignore))*$
|
|
1099
|
+
examples:
|
|
1100
|
+
- success,error
|
|
1101
|
+
- name: pageSize
|
|
1102
|
+
in: query
|
|
1103
|
+
description: Number of entries per page.
|
|
1104
|
+
schema:
|
|
1105
|
+
type: integer
|
|
1106
|
+
minimum: 1
|
|
1107
|
+
maximum: 100
|
|
1108
|
+
default: 50
|
|
1109
|
+
examples:
|
|
1110
|
+
- 50
|
|
1111
|
+
- name: sortOrder
|
|
1112
|
+
in: query
|
|
1113
|
+
description: Sort direction by step time.
|
|
1114
|
+
schema:
|
|
1115
|
+
type: string
|
|
1116
|
+
enum:
|
|
1117
|
+
- asc
|
|
1118
|
+
- desc
|
|
1119
|
+
x-enumDescriptions:
|
|
1120
|
+
asc: Oldest child records first
|
|
1121
|
+
desc: Newest child records first
|
|
1122
|
+
default: desc
|
|
1123
|
+
- name: next
|
|
1124
|
+
in: query
|
|
1125
|
+
description: |-
|
|
1126
|
+
ISO 8601 timestamp cursor for the next page (from `nextPageUrl`).
|
|
1127
|
+
Mutually exclusive with `prev`; requires `cursorRecordId`.
|
|
1128
|
+
schema:
|
|
1129
|
+
type: string
|
|
1130
|
+
format: date-time
|
|
1131
|
+
- name: prev
|
|
1132
|
+
in: query
|
|
1133
|
+
description: |-
|
|
1134
|
+
ISO 8601 timestamp cursor for the previous page (from `prevPageUrl`).
|
|
1135
|
+
Mutually exclusive with `next`; requires `cursorRecordId`.
|
|
1136
|
+
schema:
|
|
1137
|
+
type: string
|
|
1138
|
+
format: date-time
|
|
1139
|
+
- name: cursorRecordId
|
|
1140
|
+
in: query
|
|
1141
|
+
description: Tie-breaker record id, required when paging with `next`/`prev`.
|
|
1142
|
+
schema:
|
|
1143
|
+
type: string
|
|
1144
|
+
responses:
|
|
1145
|
+
'200':
|
|
1146
|
+
description: Paginated child step records.
|
|
1147
|
+
content:
|
|
1148
|
+
application/json:
|
|
1149
|
+
schema:
|
|
1150
|
+
$ref: '#/components/schemas/ApiRequestChildrenResponse'
|
|
1151
|
+
examples:
|
|
1152
|
+
default:
|
|
1153
|
+
value:
|
|
1154
|
+
children:
|
|
1155
|
+
- _expOrImpId: 67ee026136f4d1eeb529ad63
|
|
1156
|
+
status: success
|
|
1157
|
+
timeTaken: 12
|
|
1158
|
+
groupId: 6449f2
|
|
1159
|
+
recordId: child-1
|
|
1160
|
+
parentRecordId: a1b2c3
|
|
1161
|
+
time: '2026-05-15T13:42:11.234Z'
|
|
1162
|
+
nextPageUrl: null
|
|
1163
|
+
prevPageUrl: null
|
|
1164
|
+
'400':
|
|
1165
|
+
$ref: '#/components/responses/400-bad-request'
|
|
1166
|
+
'401':
|
|
1167
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1168
|
+
'403':
|
|
1169
|
+
$ref: '#/components/responses/403-forbidden'
|
|
1170
|
+
'404':
|
|
1171
|
+
$ref: '#/components/responses/404-not-found'
|
|
1172
|
+
'422':
|
|
1173
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
1174
|
+
/v1/apis/{_id}/requests/{executionId}/logs/data/query:
|
|
1175
|
+
post:
|
|
1176
|
+
x-internal: false
|
|
1177
|
+
operationId: queryApiRequestLogData
|
|
1178
|
+
tags:
|
|
1179
|
+
- APIs
|
|
1180
|
+
summary: Query decoded log data for an API trace step
|
|
1181
|
+
description: |-
|
|
1182
|
+
Returns the decoded request/response payload and error metadata for a
|
|
1183
|
+
record/stage within an API request execution, identified by
|
|
1184
|
+
`_expOrImpId`, `stage`, `groupId`, and `recordId`. If the log content
|
|
1185
|
+
exceeds inline limits or is stored externally, an `externalReference`
|
|
1186
|
+
with an S3 key (and optional byte range) is returned — download it via
|
|
1187
|
+
the signed-URL endpoint. The response may be gzip-compressed.
|
|
1188
|
+
parameters:
|
|
1189
|
+
- name: _id
|
|
1190
|
+
in: path
|
|
1191
|
+
required: true
|
|
1192
|
+
description: The API id.
|
|
1193
|
+
schema:
|
|
1194
|
+
type: string
|
|
1195
|
+
format: objectId
|
|
1196
|
+
x-celigo-refModel: apis
|
|
1197
|
+
examples:
|
|
1198
|
+
- 685021eda02a61042cee80ab
|
|
1199
|
+
- name: executionId
|
|
1200
|
+
in: path
|
|
1201
|
+
required: true
|
|
1202
|
+
description: The execution id (20-character lowercase hex).
|
|
1203
|
+
schema:
|
|
1204
|
+
type: string
|
|
1205
|
+
pattern: ^[0-9a-f]{20}$
|
|
1206
|
+
examples:
|
|
1207
|
+
- a1b2c3d4e5f678901234
|
|
1208
|
+
requestBody:
|
|
1209
|
+
required: true
|
|
1210
|
+
content:
|
|
1211
|
+
application/json:
|
|
1212
|
+
schema:
|
|
1213
|
+
$ref: '#/components/schemas/ApiLogDataRequest'
|
|
1214
|
+
examples:
|
|
1215
|
+
minimal:
|
|
1216
|
+
value:
|
|
1217
|
+
_expOrImpId: 67ee026136f4d1eeb529ad63
|
|
1218
|
+
stage: mapping
|
|
1219
|
+
groupId: grp-001
|
|
1220
|
+
recordId: rec-123
|
|
1221
|
+
responses:
|
|
1222
|
+
'200':
|
|
1223
|
+
description: Log data (and/or external references) plus error metadata.
|
|
1224
|
+
headers:
|
|
1225
|
+
Content-Encoding:
|
|
1226
|
+
description: May be `gzip` to reduce transfer time for large responses.
|
|
1227
|
+
schema:
|
|
1228
|
+
type: string
|
|
1229
|
+
enum:
|
|
1230
|
+
- gzip
|
|
1231
|
+
content:
|
|
1232
|
+
application/json:
|
|
1233
|
+
schema:
|
|
1234
|
+
$ref: '#/components/schemas/ApiLogDataResponse'
|
|
1235
|
+
examples:
|
|
1236
|
+
default:
|
|
1237
|
+
value:
|
|
1238
|
+
logs: []
|
|
1239
|
+
errors: []
|
|
1240
|
+
'400':
|
|
1241
|
+
$ref: '#/components/responses/400-bad-request'
|
|
1242
|
+
'401':
|
|
1243
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1244
|
+
'403':
|
|
1245
|
+
$ref: '#/components/responses/403-forbidden'
|
|
1246
|
+
'404':
|
|
1247
|
+
$ref: '#/components/responses/404-not-found'
|
|
1248
|
+
'422':
|
|
1249
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
1250
|
+
/v1/apis/{_id}/requests/{executionId}/logs/signedURL:
|
|
1251
|
+
get:
|
|
1252
|
+
x-internal: false
|
|
1253
|
+
operationId: getApiRequestLogSignedUrl
|
|
1254
|
+
tags:
|
|
1255
|
+
- APIs
|
|
1256
|
+
summary: Get a signed URL for a stored API request log payload
|
|
1257
|
+
description: |-
|
|
1258
|
+
Returns a short-lived signed S3 URL (about 120 seconds expiry) for the
|
|
1259
|
+
provided `s3Key` suffix, taken from an `externalReference` returned by the
|
|
1260
|
+
log-data query endpoint. The full S3 key is resolved under the execution's
|
|
1261
|
+
own log prefix, so callers can only access logs for this API and execution.
|
|
1262
|
+
parameters:
|
|
1263
|
+
- name: _id
|
|
1264
|
+
in: path
|
|
1265
|
+
required: true
|
|
1266
|
+
description: The API id.
|
|
1267
|
+
schema:
|
|
1268
|
+
type: string
|
|
1269
|
+
format: objectId
|
|
1270
|
+
x-celigo-refModel: apis
|
|
1271
|
+
examples:
|
|
1272
|
+
- 685021eda02a61042cee80ab
|
|
1273
|
+
- name: executionId
|
|
1274
|
+
in: path
|
|
1275
|
+
required: true
|
|
1276
|
+
description: The execution id (20-character lowercase hex).
|
|
1277
|
+
schema:
|
|
1278
|
+
type: string
|
|
1279
|
+
pattern: ^[0-9a-f]{20}$
|
|
1280
|
+
examples:
|
|
1281
|
+
- a1b2c3d4e5f678901234
|
|
1282
|
+
- name: s3Key
|
|
1283
|
+
in: query
|
|
1284
|
+
required: true
|
|
1285
|
+
description: |-
|
|
1286
|
+
S3 object key suffix relative to the execution's log prefix, typically
|
|
1287
|
+
returned in a prior log-data query `externalReference`.
|
|
1288
|
+
schema:
|
|
1289
|
+
type: string
|
|
1290
|
+
examples:
|
|
1291
|
+
- 67ee026136f4d1eeb529ad63/grp-001/part.log
|
|
1292
|
+
responses:
|
|
1293
|
+
'200':
|
|
1294
|
+
description: Signed URL for the requested object.
|
|
1295
|
+
content:
|
|
1296
|
+
application/json:
|
|
1297
|
+
schema:
|
|
1298
|
+
$ref: '#/components/schemas/ApiSignedUrlResponse'
|
|
1299
|
+
examples:
|
|
1300
|
+
default:
|
|
1301
|
+
value:
|
|
1302
|
+
signedURL: https://integrator-userdata-delete-30.s3.amazonaws.com/api-execution-logs/user/api/exec/group/file.log?Expires=1754046196&Signature=...
|
|
1303
|
+
'400':
|
|
1304
|
+
$ref: '#/components/responses/400-bad-request'
|
|
1305
|
+
'401':
|
|
1306
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1307
|
+
'403':
|
|
1308
|
+
$ref: '#/components/responses/403-forbidden'
|
|
1309
|
+
'404':
|
|
1310
|
+
$ref: '#/components/responses/404-not-found'
|
|
1311
|
+
'422':
|
|
1312
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
1313
|
+
/v1/apis/{_id}/dependencies:
|
|
1314
|
+
get:
|
|
1315
|
+
x-internal: false
|
|
1316
|
+
operationId: listApiDependencies
|
|
1317
|
+
tags:
|
|
1318
|
+
- APIs
|
|
1319
|
+
summary: List dependencies of an API
|
|
1320
|
+
description: |-
|
|
1321
|
+
Returns the set of resources that depend on the specified resource.
|
|
1322
|
+
The response is an object whose keys are dependent-resource types
|
|
1323
|
+
(e.g. `flows`, `imports`) and whose values are arrays of dependency
|
|
1324
|
+
entries. An empty object `{}` means no other resources depend on the
|
|
1325
|
+
target -- this is also returned for a well-formatted but nonexistent id.
|
|
1326
|
+
parameters:
|
|
1327
|
+
- name: _id
|
|
1328
|
+
in: path
|
|
1329
|
+
required: true
|
|
1330
|
+
description: Resource ID.
|
|
1331
|
+
schema:
|
|
1332
|
+
type: string
|
|
1333
|
+
format: objectId
|
|
1334
|
+
x-celigo-refModel: apis
|
|
1335
|
+
examples:
|
|
1336
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
1337
|
+
responses:
|
|
1338
|
+
'200':
|
|
1339
|
+
description: |
|
|
1340
|
+
Dependency map. Keys are resource-type strings; values are arrays
|
|
1341
|
+
of dependency entries. Returns `{}` when no dependents exist.
|
|
1342
|
+
content:
|
|
1343
|
+
application/json:
|
|
1344
|
+
schema:
|
|
1345
|
+
$ref: '#/components/schemas/DependencyResponse'
|
|
1346
|
+
examples:
|
|
1347
|
+
none:
|
|
1348
|
+
summary: No dependents (also returned for a nonexistent ID)
|
|
1349
|
+
value: {}
|
|
1350
|
+
'401':
|
|
1351
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1352
|
+
/v1/apis/{_id}/test/run:
|
|
1353
|
+
post:
|
|
1354
|
+
x-internal: false
|
|
1355
|
+
operationId: testRunApi
|
|
1356
|
+
tags:
|
|
1357
|
+
- APIs
|
|
1358
|
+
summary: Test-run an API
|
|
1359
|
+
description: |-
|
|
1360
|
+
Executes the API once in a sandboxed test harness without invoking its public endpoint, and
|
|
1361
|
+
returns the job tree produced by the run. Use this to validate a builder-mode API's request
|
|
1362
|
+
parsing, routing, and response mapping before exposing it externally.
|
|
1363
|
+
|
|
1364
|
+
The response carries a `metadata` map keyed by step id (each value is the ordered list of
|
|
1365
|
+
stage names that ran for that step), the parent `flowJob`, and the per-step `childJobs[]`.
|
|
1366
|
+
Inspect a specific step's stages with `GET /v1/apis/{_id}/test/run/{runId}/{_stepId}`, where
|
|
1367
|
+
`runId` is the parent `flowJob._id`.
|
|
1368
|
+
|
|
1369
|
+
Test-run invocations do **not** surface in `GET /v1/apis/{_id}/logs`.
|
|
1370
|
+
parameters:
|
|
1371
|
+
- name: _id
|
|
1372
|
+
in: path
|
|
1373
|
+
required: true
|
|
1374
|
+
description: The API id.
|
|
1375
|
+
schema:
|
|
1376
|
+
type: string
|
|
1377
|
+
format: objectId
|
|
1378
|
+
x-celigo-refModel: apis
|
|
1379
|
+
examples:
|
|
1380
|
+
- 68ae4264b5f755d2dd3796b4
|
|
1381
|
+
requestBody:
|
|
1382
|
+
required: false
|
|
1383
|
+
content:
|
|
1384
|
+
application/json:
|
|
1385
|
+
schema:
|
|
1386
|
+
type: object
|
|
1387
|
+
description: |-
|
|
1388
|
+
Optional test request for the run. When the body is empty or
|
|
1389
|
+
omitted, the run replays the API's saved
|
|
1390
|
+
`builder.request.mockRequest`.
|
|
1391
|
+
properties:
|
|
1392
|
+
mockRequest:
|
|
1393
|
+
type: object
|
|
1394
|
+
description: |-
|
|
1395
|
+
The simulated request to run instead of the saved
|
|
1396
|
+
`builder.request.mockRequest`.
|
|
1397
|
+
properties:
|
|
1398
|
+
body:
|
|
1399
|
+
type: object
|
|
1400
|
+
description: Request body for the simulated call.
|
|
1401
|
+
pathParams:
|
|
1402
|
+
type: object
|
|
1403
|
+
description: Path parameter values for the simulated call.
|
|
1404
|
+
queryParams:
|
|
1405
|
+
type: object
|
|
1406
|
+
description: Query parameter values for the simulated call.
|
|
1407
|
+
headers:
|
|
1408
|
+
type: object
|
|
1409
|
+
description: Request headers for the simulated call.
|
|
1410
|
+
additionalProperties: true
|
|
1411
|
+
x-celigo-ai-guidance:
|
|
1412
|
+
- Send explicit test input under the mockRequest key ({body, pathParams, queryParams, headers}); with no body the run replays the saved builder.request.mockRequest.
|
|
1413
|
+
examples:
|
|
1414
|
+
default:
|
|
1415
|
+
summary: Run with no overrides
|
|
1416
|
+
value: {}
|
|
1417
|
+
withMockRequest:
|
|
1418
|
+
summary: Run with an explicit test request
|
|
1419
|
+
value:
|
|
1420
|
+
mockRequest:
|
|
1421
|
+
queryParams:
|
|
1422
|
+
sku: SKU-001
|
|
1423
|
+
responses:
|
|
1424
|
+
'200':
|
|
1425
|
+
description: The job tree produced by the test run.
|
|
1426
|
+
content:
|
|
1427
|
+
application/json:
|
|
1428
|
+
schema:
|
|
1429
|
+
type: object
|
|
1430
|
+
properties:
|
|
1431
|
+
metadata:
|
|
1432
|
+
type: object
|
|
1433
|
+
description: |-
|
|
1434
|
+
Map keyed by step id; each value is the ordered list of stage names that ran for
|
|
1435
|
+
that step.
|
|
1436
|
+
additionalProperties:
|
|
1437
|
+
type: array
|
|
1438
|
+
items:
|
|
1439
|
+
type: string
|
|
1440
|
+
flowJob:
|
|
1441
|
+
type: object
|
|
1442
|
+
description: The parent job for the test run. Its `_id` is the `runId`.
|
|
1443
|
+
childJobs:
|
|
1444
|
+
type: array
|
|
1445
|
+
description: Per-step child jobs produced during the run.
|
|
1446
|
+
items:
|
|
1447
|
+
type: object
|
|
1448
|
+
examples:
|
|
1449
|
+
default:
|
|
1450
|
+
value:
|
|
1451
|
+
metadata:
|
|
1452
|
+
68ae4264b5f755d2dd3796b4:
|
|
1453
|
+
- request
|
|
1454
|
+
- parse
|
|
1455
|
+
main:
|
|
1456
|
+
- router
|
|
1457
|
+
flowJob:
|
|
1458
|
+
_id: 6a2e23bbcf5b64ca6b93b757
|
|
1459
|
+
type: flow
|
|
1460
|
+
_integrationId: 68ed772471086fb1a76686de
|
|
1461
|
+
status: completed
|
|
1462
|
+
numError: 1
|
|
1463
|
+
numSuccess: 1
|
|
1464
|
+
startedAt: '2026-06-14T03:44:59.577Z'
|
|
1465
|
+
endedAt: '2026-06-14T03:44:59.947Z'
|
|
1466
|
+
childJobs:
|
|
1467
|
+
- _id: 6a2e23bbcf5b64ca6b93b774
|
|
1468
|
+
type: export
|
|
1469
|
+
_parentJobId: 6a2e23bbcf5b64ca6b93b757
|
|
1470
|
+
status: completed
|
|
1471
|
+
numSuccess: 1
|
|
1472
|
+
'400':
|
|
1473
|
+
$ref: '#/components/responses/400-bad-request'
|
|
1474
|
+
'401':
|
|
1475
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1476
|
+
'404':
|
|
1477
|
+
$ref: '#/components/responses/404-not-found'
|
|
1478
|
+
'422':
|
|
1479
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
1480
|
+
/v1/apis/{_id}/test/run/{runId}/{_stepId}:
|
|
1481
|
+
get:
|
|
1482
|
+
x-internal: false
|
|
1483
|
+
operationId: getApiTestRunStep
|
|
1484
|
+
tags:
|
|
1485
|
+
- APIs
|
|
1486
|
+
summary: Get a step's stages from an API test run
|
|
1487
|
+
description: |-
|
|
1488
|
+
Returns the per-stage execution detail for a single step of a completed API test run. `runId`
|
|
1489
|
+
is the parent `flowJob._id` returned by `POST /v1/apis/{_id}/test/run`, and `_stepId` is the
|
|
1490
|
+
step id surfaced in that run's `metadata` map.
|
|
1491
|
+
|
|
1492
|
+
Each entry in `stages[]` carries the stage `name` (e.g. `request`, `parse`, `router`) plus its
|
|
1493
|
+
`input`, `output`, and `errors`. Stages that did not produce data for a given direction return
|
|
1494
|
+
`null` for that field. Top-level `errors` aggregates step-level errors.
|
|
1495
|
+
parameters:
|
|
1496
|
+
- name: _id
|
|
1497
|
+
in: path
|
|
1498
|
+
required: true
|
|
1499
|
+
description: The API id.
|
|
1500
|
+
schema:
|
|
1501
|
+
type: string
|
|
1502
|
+
format: objectId
|
|
1503
|
+
x-celigo-refModel: apis
|
|
1504
|
+
examples:
|
|
1505
|
+
- 68ae4264b5f755d2dd3796b4
|
|
1506
|
+
- name: runId
|
|
1507
|
+
in: path
|
|
1508
|
+
required: true
|
|
1509
|
+
description: The parent job id (`flowJob._id`) returned by the test-run request.
|
|
1510
|
+
schema:
|
|
1511
|
+
type: string
|
|
1512
|
+
examples:
|
|
1513
|
+
- 6a2e23bbcf5b64ca6b93b757
|
|
1514
|
+
- name: _stepId
|
|
1515
|
+
in: path
|
|
1516
|
+
required: true
|
|
1517
|
+
description: The step id, as surfaced in the test run's `metadata` map.
|
|
1518
|
+
schema:
|
|
1519
|
+
type: string
|
|
1520
|
+
examples:
|
|
1521
|
+
- 68ae4264b5f755d2dd3796b4
|
|
1522
|
+
responses:
|
|
1523
|
+
'200':
|
|
1524
|
+
description: Per-stage execution detail for the requested step.
|
|
1525
|
+
content:
|
|
1526
|
+
application/json:
|
|
1527
|
+
schema:
|
|
1528
|
+
type: object
|
|
1529
|
+
properties:
|
|
1530
|
+
stages:
|
|
1531
|
+
type: array
|
|
1532
|
+
description: Ordered stages that ran for this step.
|
|
1533
|
+
items:
|
|
1534
|
+
type: object
|
|
1535
|
+
properties:
|
|
1536
|
+
name:
|
|
1537
|
+
type: string
|
|
1538
|
+
description: Stage name (e.g. `request`, `parse`, `router`).
|
|
1539
|
+
errors:
|
|
1540
|
+
description: Stage-level errors, or `null` when none.
|
|
1541
|
+
input:
|
|
1542
|
+
description: Input records the stage received, or `null`.
|
|
1543
|
+
output:
|
|
1544
|
+
description: Output records the stage produced, or `null`.
|
|
1545
|
+
errors:
|
|
1546
|
+
type: array
|
|
1547
|
+
description: Aggregated step-level errors.
|
|
1548
|
+
items:
|
|
1549
|
+
type: object
|
|
1550
|
+
examples:
|
|
1551
|
+
default:
|
|
1552
|
+
value:
|
|
1553
|
+
stages:
|
|
1554
|
+
- name: request
|
|
1555
|
+
errors: null
|
|
1556
|
+
output: null
|
|
1557
|
+
input:
|
|
1558
|
+
- record:
|
|
1559
|
+
page:
|
|
1560
|
+
_userId: 624cb0346309dc3a543733a2
|
|
1561
|
+
data:
|
|
1562
|
+
- {}
|
|
1563
|
+
errors: []
|
|
1564
|
+
traceKey: null
|
|
1565
|
+
- name: parse
|
|
1566
|
+
errors: null
|
|
1567
|
+
input: null
|
|
1568
|
+
output:
|
|
1569
|
+
- record: {}
|
|
1570
|
+
errors: []
|
|
1571
|
+
traceKey: null
|
|
1572
|
+
errors: []
|
|
1573
|
+
'400':
|
|
1574
|
+
$ref: '#/components/responses/400-bad-request'
|
|
1575
|
+
'401':
|
|
1576
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1577
|
+
'404':
|
|
1578
|
+
$ref: '#/components/responses/404-not-found'
|
|
1579
|
+
/v1/apis/{_id}/test/run/{runId}/{_stepId}/logs/requestAndResponse:
|
|
1580
|
+
get:
|
|
1581
|
+
x-internal: false
|
|
1582
|
+
operationId: getApiTestRunStepLogs
|
|
1583
|
+
tags:
|
|
1584
|
+
- APIs
|
|
1585
|
+
summary: Get request/response captures for an API test-run step
|
|
1586
|
+
description: |-
|
|
1587
|
+
Returns the request/response captures recorded for a single export or import step of an API
|
|
1588
|
+
test run. `runId` is the parent `flowJob._id` from `POST /v1/apis/{_id}/test/run`, and
|
|
1589
|
+
`_stepId` is the step id from that run's `metadata` map.
|
|
1590
|
+
|
|
1591
|
+
Each entry in `requests[]` is a summary identified by an opaque `key`; fetch the full decoded
|
|
1592
|
+
request/response envelope with `GET /v1/apis/{_id}/{_stepId}/requests/{key}`. A step id that
|
|
1593
|
+
is not an export or import (such as a router) returns a 400 `invalid_ref`, and a step that
|
|
1594
|
+
captured no request/response data returns a 404 `req_res_logs_not_found`.
|
|
1595
|
+
parameters:
|
|
1596
|
+
- name: _id
|
|
1597
|
+
in: path
|
|
1598
|
+
required: true
|
|
1599
|
+
description: The API id.
|
|
1600
|
+
schema:
|
|
1601
|
+
type: string
|
|
1602
|
+
format: objectId
|
|
1603
|
+
x-celigo-refModel: apis
|
|
1604
|
+
examples:
|
|
1605
|
+
- 68ae4264b5f755d2dd3796b4
|
|
1606
|
+
- name: runId
|
|
1607
|
+
in: path
|
|
1608
|
+
required: true
|
|
1609
|
+
description: The parent job id (`flowJob._id`) returned by the test-run request.
|
|
1610
|
+
schema:
|
|
1611
|
+
type: string
|
|
1612
|
+
examples:
|
|
1613
|
+
- 6a2e23bbcf5b64ca6b93b757
|
|
1614
|
+
- name: _stepId
|
|
1615
|
+
in: path
|
|
1616
|
+
required: true
|
|
1617
|
+
description: The step id, as surfaced in the test run's `metadata` map. Must be an export or import step.
|
|
1618
|
+
schema:
|
|
1619
|
+
type: string
|
|
1620
|
+
examples:
|
|
1621
|
+
- 68ae434d5fcd3b761b24253a
|
|
1622
|
+
responses:
|
|
1623
|
+
'200':
|
|
1624
|
+
description: Request captures recorded for the step.
|
|
1625
|
+
content:
|
|
1626
|
+
application/json:
|
|
1627
|
+
schema:
|
|
1628
|
+
type: object
|
|
1629
|
+
properties:
|
|
1630
|
+
requests:
|
|
1631
|
+
type: array
|
|
1632
|
+
description: Captured request summaries for the step.
|
|
1633
|
+
items:
|
|
1634
|
+
type: object
|
|
1635
|
+
properties:
|
|
1636
|
+
key:
|
|
1637
|
+
type: string
|
|
1638
|
+
description: |-
|
|
1639
|
+
Opaque key for the capture. Resolve the full decoded request/response with
|
|
1640
|
+
`GET /v1/apis/{_id}/{_stepId}/requests/{key}`.
|
|
1641
|
+
time:
|
|
1642
|
+
type: integer
|
|
1643
|
+
description: Capture time, epoch milliseconds.
|
|
1644
|
+
method:
|
|
1645
|
+
type: string
|
|
1646
|
+
description: HTTP method of the captured request, or `undefined` when not applicable.
|
|
1647
|
+
statusCode:
|
|
1648
|
+
type: string
|
|
1649
|
+
description: Response status code, as a string.
|
|
1650
|
+
stage:
|
|
1651
|
+
type: string
|
|
1652
|
+
description: The stage that produced the capture (e.g. `import`).
|
|
1653
|
+
examples:
|
|
1654
|
+
populated:
|
|
1655
|
+
summary: One capture for an import step
|
|
1656
|
+
value:
|
|
1657
|
+
requests:
|
|
1658
|
+
- key: 5475338577473-6c43f93c1fa84b248d64e0d7be1f275f-200-undefined-import-testMode
|
|
1659
|
+
time: 1782779822527
|
|
1660
|
+
method: undefined
|
|
1661
|
+
statusCode: '200'
|
|
1662
|
+
stage: import
|
|
1663
|
+
'400':
|
|
1664
|
+
description: |-
|
|
1665
|
+
The `_stepId` does not resolve to an export or import step (for example, a router step
|
|
1666
|
+
or a malformed id). Use a step id that ran an outbound request.
|
|
1667
|
+
content:
|
|
1668
|
+
application/json:
|
|
1669
|
+
schema:
|
|
1670
|
+
$ref: '#/components/schemas/Error'
|
|
1671
|
+
examples:
|
|
1672
|
+
invalidStep:
|
|
1673
|
+
value:
|
|
1674
|
+
errors:
|
|
1675
|
+
- code: invalid_ref
|
|
1676
|
+
message: Please provide a valid _expOrImpId.
|
|
1677
|
+
'401':
|
|
1678
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1679
|
+
'404':
|
|
1680
|
+
description: |-
|
|
1681
|
+
No request/response data is stored for the requested step — it captured nothing, or the
|
|
1682
|
+
run/step id didn't resolve.
|
|
1683
|
+
content:
|
|
1684
|
+
application/json:
|
|
1685
|
+
schema:
|
|
1686
|
+
$ref: '#/components/schemas/Error'
|
|
1687
|
+
examples:
|
|
1688
|
+
noLogs:
|
|
1689
|
+
value:
|
|
1690
|
+
errors:
|
|
1691
|
+
- code: req_res_logs_not_found
|
|
1692
|
+
message: No request/response log data found.
|
|
1693
|
+
/v1/apis/{_id}/{_stepId}/requests:
|
|
1694
|
+
get:
|
|
1695
|
+
x-internal: false
|
|
1696
|
+
operationId: listApiStepRequests
|
|
1697
|
+
tags:
|
|
1698
|
+
- APIs
|
|
1699
|
+
summary: List captured requests for an API step
|
|
1700
|
+
description: |-
|
|
1701
|
+
Returns the set of requests captured for a single step of an API. `_stepId` identifies the
|
|
1702
|
+
step within the API's configuration. Each entry in `requests[]` is a captured request summary;
|
|
1703
|
+
follow up with `GET /v1/apis/{_id}/{_stepId}/requests/{key}` to retrieve one entry in full.
|
|
1704
|
+
|
|
1705
|
+
An empty `requests[]` simply means nothing is currently stored for this step.
|
|
1706
|
+
parameters:
|
|
1707
|
+
- name: _id
|
|
1708
|
+
in: path
|
|
1709
|
+
required: true
|
|
1710
|
+
description: The API id.
|
|
1711
|
+
schema:
|
|
1712
|
+
type: string
|
|
1713
|
+
format: objectId
|
|
1714
|
+
x-celigo-refModel: apis
|
|
1715
|
+
examples:
|
|
1716
|
+
- 68ae4264b5f755d2dd3796b4
|
|
1717
|
+
- name: _stepId
|
|
1718
|
+
in: path
|
|
1719
|
+
required: true
|
|
1720
|
+
description: The step id within the API's configuration.
|
|
1721
|
+
schema:
|
|
1722
|
+
type: string
|
|
1723
|
+
examples:
|
|
1724
|
+
- 68ae4264b5f755d2dd3796b4
|
|
1725
|
+
responses:
|
|
1726
|
+
'200':
|
|
1727
|
+
description: Captured requests for the step. `requests[]` is empty when nothing is stored.
|
|
1728
|
+
content:
|
|
1729
|
+
application/json:
|
|
1730
|
+
schema:
|
|
1731
|
+
type: object
|
|
1732
|
+
properties:
|
|
1733
|
+
requests:
|
|
1734
|
+
type: array
|
|
1735
|
+
description: Captured request entries for this step.
|
|
1736
|
+
items:
|
|
1737
|
+
type: object
|
|
1738
|
+
examples:
|
|
1739
|
+
empty:
|
|
1740
|
+
value:
|
|
1741
|
+
requests: []
|
|
1742
|
+
populated:
|
|
1743
|
+
value:
|
|
1744
|
+
requests:
|
|
1745
|
+
- key: 5481201053696-a10af1ade8fe477a847771c1e3716e36-200-POST
|
|
1746
|
+
time: 1776917346304
|
|
1747
|
+
method: POST
|
|
1748
|
+
statusCode: '200'
|
|
1749
|
+
'401':
|
|
1750
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1751
|
+
'404':
|
|
1752
|
+
$ref: '#/components/responses/404-not-found'
|
|
1753
|
+
/v1/apis/{_id}/{_stepId}/requests/{key}:
|
|
1754
|
+
get:
|
|
1755
|
+
x-internal: false
|
|
1756
|
+
operationId: getApiStepRequest
|
|
1757
|
+
tags:
|
|
1758
|
+
- APIs
|
|
1759
|
+
summary: Get one captured request for an API step by key
|
|
1760
|
+
description: |-
|
|
1761
|
+
Returns the full captured request/response envelope for one entry of an API step, looked up by
|
|
1762
|
+
the opaque `key` values surfaced in `GET /v1/apis/{_id}/{_stepId}/requests`. Matches the exact
|
|
1763
|
+
entry whose key is provided — there is no partial-match query on this endpoint.
|
|
1764
|
+
|
|
1765
|
+
Use the `key` exactly as returned by the parent listing; do not construct one manually. A 404
|
|
1766
|
+
means the key has expired from retention or was never captured.
|
|
1767
|
+
parameters:
|
|
1768
|
+
- name: _id
|
|
1769
|
+
in: path
|
|
1770
|
+
required: true
|
|
1771
|
+
description: The API id.
|
|
1772
|
+
schema:
|
|
1773
|
+
type: string
|
|
1774
|
+
format: objectId
|
|
1775
|
+
x-celigo-refModel: apis
|
|
1776
|
+
examples:
|
|
1777
|
+
- 68ae4264b5f755d2dd3796b4
|
|
1778
|
+
- name: _stepId
|
|
1779
|
+
in: path
|
|
1780
|
+
required: true
|
|
1781
|
+
description: The step id within the API's configuration.
|
|
1782
|
+
schema:
|
|
1783
|
+
type: string
|
|
1784
|
+
examples:
|
|
1785
|
+
- 68ae4264b5f755d2dd3796b4
|
|
1786
|
+
- name: key
|
|
1787
|
+
in: path
|
|
1788
|
+
required: true
|
|
1789
|
+
description: |-
|
|
1790
|
+
Opaque request key from the parent `GET /v1/apis/{_id}/{_stepId}/requests` listing. Use the
|
|
1791
|
+
`key` exactly as returned; do not construct one manually.
|
|
1792
|
+
schema:
|
|
1793
|
+
type: string
|
|
1794
|
+
examples:
|
|
1795
|
+
- 5481201053696-a10af1ade8fe477a847771c1e3716e36-200-POST
|
|
1796
|
+
responses:
|
|
1797
|
+
'200':
|
|
1798
|
+
description: The full captured request/response envelope for the entry.
|
|
1799
|
+
content:
|
|
1800
|
+
application/json:
|
|
1801
|
+
schema:
|
|
1802
|
+
type: object
|
|
1803
|
+
description: Decoded request/response envelope for the captured entry.
|
|
1804
|
+
examples:
|
|
1805
|
+
default:
|
|
1806
|
+
value:
|
|
1807
|
+
time: 1776917346304
|
|
1808
|
+
request:
|
|
1809
|
+
method: POST
|
|
1810
|
+
url: /apis/v1/orders
|
|
1811
|
+
headers:
|
|
1812
|
+
content-type: application/json
|
|
1813
|
+
body: '{"orderId":"SO-1042"}'
|
|
1814
|
+
response:
|
|
1815
|
+
statusCode: 200
|
|
1816
|
+
headers:
|
|
1817
|
+
content-type: application/json
|
|
1818
|
+
body: '{"orderId":"SO-1042"}'
|
|
1819
|
+
key: 5481201053696-a10af1ade8fe477a847771c1e3716e36-200-POST
|
|
1820
|
+
'401':
|
|
1821
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1822
|
+
'404':
|
|
1823
|
+
$ref: '#/components/responses/404-not-found'
|
|
1824
|
+
/v1/apis/{_id}/clone:
|
|
1825
|
+
post:
|
|
1826
|
+
x-internal: false
|
|
1827
|
+
operationId: cloneApi
|
|
1828
|
+
tags:
|
|
1829
|
+
- APIs
|
|
1830
|
+
summary: Clone an API
|
|
1831
|
+
description: |-
|
|
1832
|
+
Clones a builder-mode API along with the resources it depends on (such as its
|
|
1833
|
+
backing import) and returns a manifest of every resource created.
|
|
1834
|
+
|
|
1835
|
+
The request body is required: `version` must be supplied, and the cloned API's
|
|
1836
|
+
combination of `version`, `method`, and `relativeURI` must be unique. Reusing all
|
|
1837
|
+
three returns a 422 `clone_api_already_exists`. Pass `_integrationId` to create the
|
|
1838
|
+
clone inside an integration — when omitted, the clone is created standalone rather
|
|
1839
|
+
than inheriting the source API's integration.
|
|
1840
|
+
|
|
1841
|
+
Only **builder-type** APIs can be cloned — cloning any other API type returns a 400
|
|
1842
|
+
`clone_not_supported`.
|
|
1843
|
+
|
|
1844
|
+
To check for a version/method/relativeURI conflict without creating anything, call
|
|
1845
|
+
`POST /v1/apis/{_id}/clone/validate` first.
|
|
1846
|
+
parameters:
|
|
1847
|
+
- name: _id
|
|
1848
|
+
in: path
|
|
1849
|
+
required: true
|
|
1850
|
+
description: The id of the API to clone.
|
|
1851
|
+
schema:
|
|
1852
|
+
type: string
|
|
1853
|
+
format: objectId
|
|
1854
|
+
x-celigo-refModel: apis
|
|
1855
|
+
examples:
|
|
1856
|
+
- 68ae4264b5f755d2dd3796b4
|
|
1857
|
+
requestBody:
|
|
1858
|
+
required: true
|
|
1859
|
+
content:
|
|
1860
|
+
application/json:
|
|
1861
|
+
schema:
|
|
1862
|
+
type: object
|
|
1863
|
+
required:
|
|
1864
|
+
- version
|
|
1865
|
+
properties:
|
|
1866
|
+
version:
|
|
1867
|
+
type: string
|
|
1868
|
+
description: |-
|
|
1869
|
+
Version identifier for the cloned API. The cloned API's combination of
|
|
1870
|
+
`version`, `method`, and `relativeURI` must be unique — reusing all three
|
|
1871
|
+
returns a 422 `clone_api_already_exists`.
|
|
1872
|
+
examples:
|
|
1873
|
+
- v2
|
|
1874
|
+
name:
|
|
1875
|
+
type: string
|
|
1876
|
+
description: Name for the cloned API. Defaults to a copy of the source API's name when omitted.
|
|
1877
|
+
examples:
|
|
1878
|
+
- IDP (v2)
|
|
1879
|
+
_integrationId:
|
|
1880
|
+
type: string
|
|
1881
|
+
format: objectId
|
|
1882
|
+
x-celigo-refModel: integrations
|
|
1883
|
+
description: |-
|
|
1884
|
+
Integration the cloned API is created in. When omitted, the clone is created
|
|
1885
|
+
standalone — it does not inherit the source API's integration.
|
|
1886
|
+
examples:
|
|
1887
|
+
- 6a429af50547257e3301246c
|
|
1888
|
+
examples:
|
|
1889
|
+
default:
|
|
1890
|
+
summary: Clone to a new version
|
|
1891
|
+
value:
|
|
1892
|
+
version: v2
|
|
1893
|
+
name: IDP (v2)
|
|
1894
|
+
responses:
|
|
1895
|
+
'201':
|
|
1896
|
+
description: |-
|
|
1897
|
+
The clone was created. Returns a manifest of every resource the clone created —
|
|
1898
|
+
the new API plus any dependencies it copied (imports, scripts).
|
|
1899
|
+
content:
|
|
1900
|
+
application/json:
|
|
1901
|
+
schema:
|
|
1902
|
+
type: array
|
|
1903
|
+
description: Manifest of resources created by the clone.
|
|
1904
|
+
items:
|
|
1905
|
+
type: object
|
|
1906
|
+
properties:
|
|
1907
|
+
model:
|
|
1908
|
+
type: string
|
|
1909
|
+
description: Model name of the created resource (e.g. `Api`, `Import`).
|
|
1910
|
+
examples:
|
|
1911
|
+
- Api
|
|
1912
|
+
_id:
|
|
1913
|
+
type: string
|
|
1914
|
+
format: objectId
|
|
1915
|
+
description: Unique id of the created resource.
|
|
1916
|
+
examples:
|
|
1917
|
+
- 6a2e23bbcf5b64ca6b93b757
|
|
1918
|
+
examples:
|
|
1919
|
+
default:
|
|
1920
|
+
summary: Clone created an API and its backing import
|
|
1921
|
+
value:
|
|
1922
|
+
- model: Import
|
|
1923
|
+
_id: 6a2e23bbcf5b64ca6b93b73d
|
|
1924
|
+
- model: Api
|
|
1925
|
+
_id: 6a2e23bbcf5b64ca6b93b757
|
|
1926
|
+
'400':
|
|
1927
|
+
description: |-
|
|
1928
|
+
The request was rejected. Common causes: the body omits the required `version`
|
|
1929
|
+
field (`required_field_missing`), or the target API is not a builder-type API
|
|
1930
|
+
(`clone_not_supported` — only builder APIs can be cloned).
|
|
1931
|
+
content:
|
|
1932
|
+
application/json:
|
|
1933
|
+
schema:
|
|
1934
|
+
$ref: '#/components/schemas/Error'
|
|
1935
|
+
examples:
|
|
1936
|
+
missingVersion:
|
|
1937
|
+
summary: Required version field missing
|
|
1938
|
+
value:
|
|
1939
|
+
errors:
|
|
1940
|
+
- code: required_field_missing
|
|
1941
|
+
message: 'required field: version is missing'
|
|
1942
|
+
notBuilder:
|
|
1943
|
+
summary: API is not builder-type
|
|
1944
|
+
value:
|
|
1945
|
+
errors:
|
|
1946
|
+
- code: clone_not_supported
|
|
1947
|
+
message: Cloning is supported only for builder type API documents.
|
|
1948
|
+
'401':
|
|
1949
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1950
|
+
'404':
|
|
1951
|
+
$ref: '#/components/responses/404-not-found'
|
|
1952
|
+
'422':
|
|
1953
|
+
description: |-
|
|
1954
|
+
An API with the same `version`, `method`, and `relativeURI` already exists. Clone
|
|
1955
|
+
with a different `version` (or change the method/URI) to create a distinct API.
|
|
1956
|
+
content:
|
|
1957
|
+
application/json:
|
|
1958
|
+
schema:
|
|
1959
|
+
$ref: '#/components/schemas/Error'
|
|
1960
|
+
examples:
|
|
1961
|
+
alreadyExists:
|
|
1962
|
+
value:
|
|
1963
|
+
errors:
|
|
1964
|
+
- code: clone_api_already_exists
|
|
1965
|
+
message: The clone API already exists with the same version, method and relative uri.
|
|
1966
|
+
/v1/apis/{_id}/clone/validate:
|
|
1967
|
+
post:
|
|
1968
|
+
x-internal: false
|
|
1969
|
+
operationId: validateApiClone
|
|
1970
|
+
tags:
|
|
1971
|
+
- APIs
|
|
1972
|
+
summary: Validate an API clone
|
|
1973
|
+
description: |-
|
|
1974
|
+
Dry-run check for `POST /v1/apis/{_id}/clone`. Verifies that cloning the
|
|
1975
|
+
API to the target `version` would not collide with an existing API route
|
|
1976
|
+
— the clone keeps the source API's `method` and `relativeURI`, so the
|
|
1977
|
+
target `version` + `method` + `relativeURI` combination must not conflict
|
|
1978
|
+
with an API that is already registered in the account. Nothing is created
|
|
1979
|
+
or modified.
|
|
1980
|
+
|
|
1981
|
+
Returns `canClone: true` when the route is free, `false` when it
|
|
1982
|
+
conflicts — pick a different `version` before calling
|
|
1983
|
+
`POST /v1/apis/{_id}/clone`. Only **builder-type** APIs can be validated;
|
|
1984
|
+
a script-type API returns 404, the same as an unknown id.
|
|
1985
|
+
parameters:
|
|
1986
|
+
- name: _id
|
|
1987
|
+
in: path
|
|
1988
|
+
required: true
|
|
1989
|
+
description: The id of the API to validate cloning for.
|
|
1990
|
+
schema:
|
|
1991
|
+
type: string
|
|
1992
|
+
format: objectId
|
|
1993
|
+
x-celigo-refModel: apis
|
|
1994
|
+
examples:
|
|
1995
|
+
- 68ae4264b5f755d2dd3796b4
|
|
1996
|
+
requestBody:
|
|
1997
|
+
required: true
|
|
1998
|
+
content:
|
|
1999
|
+
application/json:
|
|
2000
|
+
schema:
|
|
2001
|
+
type: object
|
|
2002
|
+
required:
|
|
2003
|
+
- version
|
|
2004
|
+
properties:
|
|
2005
|
+
version:
|
|
2006
|
+
type: string
|
|
2007
|
+
description: |-
|
|
2008
|
+
Version identifier the clone would be created under. Omitting
|
|
2009
|
+
it returns a 400 `required_field_missing`.
|
|
2010
|
+
examples:
|
|
2011
|
+
- v2
|
|
2012
|
+
examples:
|
|
2013
|
+
default:
|
|
2014
|
+
summary: Validate cloning to a new version
|
|
2015
|
+
value:
|
|
2016
|
+
version: v2
|
|
2017
|
+
responses:
|
|
2018
|
+
'200':
|
|
2019
|
+
description: Validation result. Returned for both outcomes — check `canClone`.
|
|
2020
|
+
content:
|
|
2021
|
+
application/json:
|
|
2022
|
+
schema:
|
|
2023
|
+
type: object
|
|
2024
|
+
properties:
|
|
2025
|
+
canClone:
|
|
2026
|
+
type: boolean
|
|
2027
|
+
description: |-
|
|
2028
|
+
When true, the target `version` + `method` + `relativeURI`
|
|
2029
|
+
route is free and the clone can be created. When false, the
|
|
2030
|
+
route conflicts with an existing API — choose a different
|
|
2031
|
+
`version`.
|
|
2032
|
+
examples:
|
|
2033
|
+
free:
|
|
2034
|
+
summary: Route is free — safe to clone
|
|
2035
|
+
value:
|
|
2036
|
+
canClone: true
|
|
2037
|
+
conflict:
|
|
2038
|
+
summary: Version/method/relativeURI already taken
|
|
2039
|
+
value:
|
|
2040
|
+
canClone: false
|
|
2041
|
+
'400':
|
|
2042
|
+
description: The body omits the required `version` field.
|
|
2043
|
+
content:
|
|
2044
|
+
application/json:
|
|
2045
|
+
schema:
|
|
2046
|
+
$ref: '#/components/schemas/Error'
|
|
2047
|
+
examples:
|
|
2048
|
+
missingVersion:
|
|
2049
|
+
summary: Required version field missing
|
|
2050
|
+
value:
|
|
2051
|
+
errors:
|
|
2052
|
+
- code: required_field_missing
|
|
2053
|
+
message: 'required field: version is missing'
|
|
2054
|
+
'401':
|
|
2055
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
2056
|
+
'404':
|
|
2057
|
+
description: |-
|
|
2058
|
+
The API does not exist, is not visible to the caller, or is not a
|
|
2059
|
+
builder-type API.
|
|
2060
|
+
content:
|
|
2061
|
+
application/json:
|
|
2062
|
+
schema:
|
|
2063
|
+
$ref: '#/components/schemas/Error'
|
|
2064
|
+
examples:
|
|
2065
|
+
notFound:
|
|
2066
|
+
summary: Unknown id or script-type API
|
|
2067
|
+
value:
|
|
2068
|
+
errors:
|
|
2069
|
+
- code: source_builder_api_not_found
|
|
2070
|
+
message: Source API of builder type could not be found.
|
|
2071
|
+
/v1/apis/{_id}/template:
|
|
2072
|
+
get:
|
|
2073
|
+
x-internal: false
|
|
2074
|
+
operationId: getApiTemplate
|
|
2075
|
+
tags:
|
|
2076
|
+
- APIs
|
|
2077
|
+
summary: Get a downloadable template for an API
|
|
2078
|
+
description: |-
|
|
2079
|
+
Packages a builder-mode API as an installable template and returns a
|
|
2080
|
+
signed S3 URL where the template `.zip` can be downloaded. The URL is
|
|
2081
|
+
pre-signed and short-lived (approximately 15 minutes), so fetch the file
|
|
2082
|
+
promptly; call the endpoint again for a fresh URL.
|
|
2083
|
+
|
|
2084
|
+
The `.zip` contains the API definition plus every resource it references
|
|
2085
|
+
— imports, exports, connections, and scripts — grouped into one folder
|
|
2086
|
+
per resource type, with an `integration.json` manifest at the root.
|
|
2087
|
+
|
|
2088
|
+
Only **builder-type** APIs can be exported — requesting a script-type
|
|
2089
|
+
API returns 404, the same as an unknown id. Requires the
|
|
2090
|
+
`create:api:template` permission.
|
|
2091
|
+
parameters:
|
|
2092
|
+
- name: _id
|
|
2093
|
+
in: path
|
|
2094
|
+
required: true
|
|
2095
|
+
description: The id of the API to export.
|
|
2096
|
+
schema:
|
|
2097
|
+
type: string
|
|
2098
|
+
format: objectId
|
|
2099
|
+
x-celigo-refModel: apis
|
|
2100
|
+
examples:
|
|
2101
|
+
- 68ae4264b5f755d2dd3796b4
|
|
2102
|
+
responses:
|
|
2103
|
+
'200':
|
|
2104
|
+
description: Signed download URL for the API template zip.
|
|
2105
|
+
content:
|
|
2106
|
+
application/json:
|
|
2107
|
+
schema:
|
|
2108
|
+
type: object
|
|
2109
|
+
properties:
|
|
2110
|
+
signedURL:
|
|
2111
|
+
type: string
|
|
2112
|
+
format: uri
|
|
2113
|
+
description: Pre-signed, short-lived S3 URL to download the template `.zip`.
|
|
2114
|
+
examples:
|
|
2115
|
+
- https://integrator-templates.s3.us-east-1.amazonaws.com/68ae4264b5f755d2dd3796b4.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=b117bf598b5535ed024cdbdfec756172f386fd39ad4e4536e40e5efbbf4ff52a
|
|
2116
|
+
key:
|
|
2117
|
+
type: string
|
|
2118
|
+
description: S3 object key for the generated template `.zip`, named `<apiId>.zip`.
|
|
2119
|
+
examples:
|
|
2120
|
+
- 68ae4264b5f755d2dd3796b4.zip
|
|
2121
|
+
examples:
|
|
2122
|
+
default:
|
|
2123
|
+
summary: Signed template download URL
|
|
2124
|
+
value:
|
|
2125
|
+
signedURL: https://integrator-templates.s3.us-east-1.amazonaws.com/68ae4264b5f755d2dd3796b4.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=b117bf598b5535ed024cdbdfec756172f386fd39ad4e4536e40e5efbbf4ff52a
|
|
2126
|
+
key: 68ae4264b5f755d2dd3796b4.zip
|
|
2127
|
+
'401':
|
|
2128
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
2129
|
+
'404':
|
|
2130
|
+
description: |-
|
|
2131
|
+
The API does not exist, is not visible to the caller, or is not a
|
|
2132
|
+
builder-type API (script-type APIs cannot be exported as templates).
|
|
2133
|
+
content:
|
|
2134
|
+
application/json:
|
|
2135
|
+
schema:
|
|
2136
|
+
$ref: '#/components/schemas/Error'
|
|
2137
|
+
examples:
|
|
2138
|
+
notFound:
|
|
2139
|
+
summary: Unknown id or script-type API
|
|
2140
|
+
value:
|
|
2141
|
+
errors:
|
|
2142
|
+
- code: invalid_ref
|
|
2143
|
+
message: Api not found.
|
|
2144
|
+
components:
|
|
2145
|
+
securitySchemes:
|
|
2146
|
+
bearerAuth:
|
|
2147
|
+
type: http
|
|
2148
|
+
scheme: bearer
|
|
2149
|
+
parameters:
|
|
2150
|
+
After:
|
|
2151
|
+
name: after
|
|
2152
|
+
in: query
|
|
2153
|
+
required: false
|
|
2154
|
+
description: |-
|
|
2155
|
+
Opaque cursor for forward pagination. Pass the value from the `Link`
|
|
2156
|
+
response header (`rel="next"`) to fetch the next page.
|
|
2157
|
+
schema:
|
|
2158
|
+
type: string
|
|
2159
|
+
Include:
|
|
2160
|
+
name: include
|
|
2161
|
+
in: query
|
|
2162
|
+
required: false
|
|
2163
|
+
description: |-
|
|
2164
|
+
Comma-separated list of fields to project into each returned record.
|
|
2165
|
+
Triggers summary projection: the response contains a minimal identity
|
|
2166
|
+
set (`_id`, `name`, plus resource-specific fields) with the requested
|
|
2167
|
+
fields added on top. Supports dot notation for nested fields.
|
|
2168
|
+
Mutually exclusive with `exclude`.
|
|
2169
|
+
schema:
|
|
2170
|
+
type: string
|
|
2171
|
+
example: _integrationId,disabled,lastModified
|
|
2172
|
+
Exclude:
|
|
2173
|
+
name: exclude
|
|
2174
|
+
in: query
|
|
2175
|
+
required: false
|
|
2176
|
+
description: |-
|
|
2177
|
+
Comma-separated list of fields to strip from the default response.
|
|
2178
|
+
Unlike `include`, does not trigger summary projection — returns the
|
|
2179
|
+
full record with the named fields removed. Protected identity fields
|
|
2180
|
+
(e.g. `name`) cannot be stripped. Mutually exclusive with `include`.
|
|
2181
|
+
schema:
|
|
2182
|
+
type: string
|
|
2183
|
+
example: createdAt,lastModified
|
|
2184
|
+
schemas:
|
|
2185
|
+
Script:
|
|
2186
|
+
type: object
|
|
2187
|
+
description: |-
|
|
2188
|
+
Script-mode configuration. The referenced function receives the request object
|
|
2189
|
+
and must return a response with `statusCode`, `headers`, and `body`.
|
|
2190
|
+
properties:
|
|
2191
|
+
_scriptId:
|
|
2192
|
+
type: string
|
|
2193
|
+
format: objectId
|
|
2194
|
+
x-celigo-refModel: scripts
|
|
2195
|
+
description: Reference to the script resource containing the handler function.
|
|
2196
|
+
examples:
|
|
2197
|
+
- 60a2c4e6f321d800129a1a3c
|
|
2198
|
+
function:
|
|
2199
|
+
type: string
|
|
2200
|
+
description: Name of the function to invoke within the script.
|
|
2201
|
+
examples:
|
|
2202
|
+
- handleRequest
|
|
2203
|
+
- processOrder
|
|
2204
|
+
required:
|
|
2205
|
+
- _scriptId
|
|
2206
|
+
- function
|
|
2207
|
+
x-celigo-ai-guidance:
|
|
2208
|
+
- |-
|
|
2209
|
+
In script mode, you provide a custom JavaScript function that receives the request
|
|
2210
|
+
object and returns the response. This gives you complete control over the API behavior.
|
|
2211
|
+
ApiRequest:
|
|
2212
|
+
type: object
|
|
2213
|
+
description: Request configuration for a builder-mode API endpoint.
|
|
2214
|
+
properties:
|
|
2215
|
+
name:
|
|
2216
|
+
type: string
|
|
2217
|
+
maxLength: 200
|
|
2218
|
+
description: Display name.
|
|
2219
|
+
examples:
|
|
2220
|
+
- Get Customer
|
|
2221
|
+
- Create Order
|
|
2222
|
+
description:
|
|
2223
|
+
type: string
|
|
2224
|
+
maxLength: 10240
|
|
2225
|
+
description: Optional description.
|
|
2226
|
+
examples:
|
|
2227
|
+
- Retrieves customer information by ID
|
|
2228
|
+
relativeURI:
|
|
2229
|
+
type: string
|
|
2230
|
+
maxLength: 131072
|
|
2231
|
+
pattern: ^\/[a-zA-Z0-9:_*\/\-\.]*$
|
|
2232
|
+
description: |-
|
|
2233
|
+
URI path relative to the version. Full endpoint becomes
|
|
2234
|
+
`/{version}{relativeURI}`. Use colon notation for path params: `/customers/:id`.
|
|
2235
|
+
examples:
|
|
2236
|
+
- /customers/:id
|
|
2237
|
+
- /orders
|
|
2238
|
+
- /products/:productId/variants/:variantId
|
|
2239
|
+
x-celigo-ai-guidance:
|
|
2240
|
+
- |-
|
|
2241
|
+
Full endpoint URL will be: `/{version}{relativeURI}`
|
|
2242
|
+
Can include path parameters using colon notation: `/customers/:id`
|
|
2243
|
+
First path segment must be alphanumeric, dash, or underscore only.
|
|
2244
|
+
method:
|
|
2245
|
+
type: string
|
|
2246
|
+
enum:
|
|
2247
|
+
- GET
|
|
2248
|
+
- POST
|
|
2249
|
+
- PUT
|
|
2250
|
+
- PATCH
|
|
2251
|
+
- DELETE
|
|
2252
|
+
x-enumDescriptions:
|
|
2253
|
+
GET: Retrieve data from the endpoint.
|
|
2254
|
+
POST: Submit data to the endpoint.
|
|
2255
|
+
PUT: Replace data at the endpoint.
|
|
2256
|
+
PATCH: Partially update data at the endpoint.
|
|
2257
|
+
DELETE: Remove data at the endpoint.
|
|
2258
|
+
description: HTTP method for the API endpoint.
|
|
2259
|
+
examples:
|
|
2260
|
+
- GET
|
|
2261
|
+
- POST
|
|
2262
|
+
headers:
|
|
2263
|
+
type: array
|
|
2264
|
+
description: Expected request headers.
|
|
2265
|
+
items:
|
|
2266
|
+
type: object
|
|
2267
|
+
properties:
|
|
2268
|
+
key:
|
|
2269
|
+
type: string
|
|
2270
|
+
maxLength: 256
|
|
2271
|
+
pattern: ^[a-zA-Z0-9_-]+$
|
|
2272
|
+
description: Header name
|
|
2273
|
+
examples:
|
|
2274
|
+
- Content-Type
|
|
2275
|
+
- X-API-Key
|
|
2276
|
+
description:
|
|
2277
|
+
type: string
|
|
2278
|
+
maxLength: 10240
|
|
2279
|
+
description: Description of the header's purpose
|
|
2280
|
+
examples:
|
|
2281
|
+
- API key for authentication
|
|
2282
|
+
x-celigo-ai-guidance:
|
|
2283
|
+
- |-
|
|
2284
|
+
Documents headers that clients should send. Headers are optional by default.
|
|
2285
|
+
Only alphanumeric characters, hyphens, and underscores are allowed in header names.
|
|
2286
|
+
pathParams:
|
|
2287
|
+
type: array
|
|
2288
|
+
description: Path parameters defined in the `relativeURI`.
|
|
2289
|
+
items:
|
|
2290
|
+
type: object
|
|
2291
|
+
properties:
|
|
2292
|
+
key:
|
|
2293
|
+
type: string
|
|
2294
|
+
maxLength: 256
|
|
2295
|
+
description: Parameter name (without the colon prefix)
|
|
2296
|
+
examples:
|
|
2297
|
+
- id
|
|
2298
|
+
- customerId
|
|
2299
|
+
description:
|
|
2300
|
+
type: string
|
|
2301
|
+
maxLength: 10240
|
|
2302
|
+
description: Description of the parameter
|
|
2303
|
+
examples:
|
|
2304
|
+
- Unique identifier of the customer
|
|
2305
|
+
x-celigo-ai-guidance:
|
|
2306
|
+
- |-
|
|
2307
|
+
Documents the parameters that are part of the URL path (e.g., :id, :customerId).
|
|
2308
|
+
These should match the parameters defined in the relativeURI.
|
|
2309
|
+
queryParams:
|
|
2310
|
+
type: array
|
|
2311
|
+
description: Expected query string parameters.
|
|
2312
|
+
items:
|
|
2313
|
+
type: object
|
|
2314
|
+
properties:
|
|
2315
|
+
key:
|
|
2316
|
+
type: string
|
|
2317
|
+
maxLength: 256
|
|
2318
|
+
pattern: ^[a-zA-Z0-9_\-:\/]*$
|
|
2319
|
+
description: Query parameter name
|
|
2320
|
+
examples:
|
|
2321
|
+
- limit
|
|
2322
|
+
- offset
|
|
2323
|
+
- filter
|
|
2324
|
+
dataType:
|
|
2325
|
+
type: string
|
|
2326
|
+
enum:
|
|
2327
|
+
- string
|
|
2328
|
+
- number
|
|
2329
|
+
- boolean
|
|
2330
|
+
x-enumDescriptions:
|
|
2331
|
+
string: Parameter value is a text string.
|
|
2332
|
+
number: Parameter value is a numeric value.
|
|
2333
|
+
boolean: Parameter value is true or false.
|
|
2334
|
+
description: Expected data type of the parameter
|
|
2335
|
+
examples:
|
|
2336
|
+
- string
|
|
2337
|
+
description:
|
|
2338
|
+
type: string
|
|
2339
|
+
maxLength: 10240
|
|
2340
|
+
description: Description of the parameter
|
|
2341
|
+
examples:
|
|
2342
|
+
- Maximum number of records to return
|
|
2343
|
+
bodySchema:
|
|
2344
|
+
type: object
|
|
2345
|
+
description: |-
|
|
2346
|
+
JSON Schema describing the expected request body structure. Every
|
|
2347
|
+
object-typed schema node must declare at least one property for the
|
|
2348
|
+
API Builder to render it; omit this field when the endpoint has no
|
|
2349
|
+
body contract.
|
|
2350
|
+
additionalProperties: true
|
|
2351
|
+
examples:
|
|
2352
|
+
- type: object
|
|
2353
|
+
properties:
|
|
2354
|
+
name:
|
|
2355
|
+
type: string
|
|
2356
|
+
email:
|
|
2357
|
+
type: string
|
|
2358
|
+
format: email
|
|
2359
|
+
x-celigo-ai-guidance:
|
|
2360
|
+
- |-
|
|
2361
|
+
Every object-typed schema node — the root, a nested property, or an
|
|
2362
|
+
array's `items` — must carry a non-empty `properties` map. The API
|
|
2363
|
+
persists a property-less object node without error, but the API
|
|
2364
|
+
Builder editor crashes rendering it ("Cannot convert undefined or
|
|
2365
|
+
null to object"), so the mistake only surfaces when the editor opens.
|
|
2366
|
+
- |-
|
|
2367
|
+
When the endpoint has no body contract (e.g. the source spec declares
|
|
2368
|
+
an empty request body), omit `bodySchema` entirely — absent renders
|
|
2369
|
+
fine. Do not substitute a catch-all `{"type": "object"}`, and do not
|
|
2370
|
+
pre-fill `properties: {}` — the API strips empty objects on save, so
|
|
2371
|
+
the empty map never survives the round-trip.
|
|
2372
|
+
mockRequest:
|
|
2373
|
+
type: object
|
|
2374
|
+
description: Mock request data for testing the API without live calls.
|
|
2375
|
+
properties:
|
|
2376
|
+
body:
|
|
2377
|
+
type: object
|
|
2378
|
+
description: Sample request body
|
|
2379
|
+
headers:
|
|
2380
|
+
type: object
|
|
2381
|
+
description: Sample headers
|
|
2382
|
+
pathParams:
|
|
2383
|
+
type: object
|
|
2384
|
+
description: Sample path parameters
|
|
2385
|
+
queryParams:
|
|
2386
|
+
type: object
|
|
2387
|
+
description: Sample query parameters
|
|
2388
|
+
additionalProperties: false
|
|
2389
|
+
x-celigo-ai-guidance:
|
|
2390
|
+
- |-
|
|
2391
|
+
Provides sample data to test the API without making actual calls.
|
|
2392
|
+
Can include body, headers, pathParams, and queryParams.
|
|
2393
|
+
transform:
|
|
2394
|
+
type: object
|
|
2395
|
+
description: Optional transformation applied to the incoming request before processing.
|
|
2396
|
+
properties:
|
|
2397
|
+
_scriptId:
|
|
2398
|
+
type: string
|
|
2399
|
+
format: objectId
|
|
2400
|
+
x-celigo-refModel: scripts
|
|
2401
|
+
description: Reference to a script for custom transformation logic.
|
|
2402
|
+
examples:
|
|
2403
|
+
- 689212a2c42d988978e27a11
|
|
2404
|
+
function:
|
|
2405
|
+
type: string
|
|
2406
|
+
description: Function name in the script to execute.
|
|
2407
|
+
examples:
|
|
2408
|
+
- transformRequest
|
|
2409
|
+
x-celigo-ai-guidance:
|
|
2410
|
+
- |-
|
|
2411
|
+
Transforms the request data before it is processed by routers or responses.
|
|
2412
|
+
Useful for normalizing data or extracting specific fields.
|
|
2413
|
+
required:
|
|
2414
|
+
- relativeURI
|
|
2415
|
+
- method
|
|
2416
|
+
x-celigo-ai-guidance:
|
|
2417
|
+
- |-
|
|
2418
|
+
Defines how the API endpoint receives data:
|
|
2419
|
+
- HTTP method and URI path
|
|
2420
|
+
- Expected parameters (path, query, headers)
|
|
2421
|
+
- Request body schema
|
|
2422
|
+
- Optional request transformation logic
|
|
2423
|
+
Router:
|
|
2424
|
+
type: object
|
|
2425
|
+
description: |-
|
|
2426
|
+
Conditional routing within a builder-mode API. Unlike flows, APIs only
|
|
2427
|
+
support `first_matching_branch` routing.
|
|
2428
|
+
properties:
|
|
2429
|
+
id:
|
|
2430
|
+
type: string
|
|
2431
|
+
description: Unique identifier for this router within the API.
|
|
2432
|
+
examples:
|
|
2433
|
+
- router_001
|
|
2434
|
+
- validation_router
|
|
2435
|
+
name:
|
|
2436
|
+
type: string
|
|
2437
|
+
description: Display name.
|
|
2438
|
+
examples:
|
|
2439
|
+
- Customer Type Router
|
|
2440
|
+
- Validation Router
|
|
2441
|
+
routeRecordsTo:
|
|
2442
|
+
type: string
|
|
2443
|
+
enum:
|
|
2444
|
+
- first_matching_branch
|
|
2445
|
+
x-enumDescriptions:
|
|
2446
|
+
first_matching_branch: Routes the request to the first branch whose criteria match.
|
|
2447
|
+
description: Routing strategy. APIs only support `first_matching_branch`.
|
|
2448
|
+
default: first_matching_branch
|
|
2449
|
+
examples:
|
|
2450
|
+
- first_matching_branch
|
|
2451
|
+
routeRecordsUsing:
|
|
2452
|
+
type: string
|
|
2453
|
+
enum:
|
|
2454
|
+
- input_filters
|
|
2455
|
+
- script
|
|
2456
|
+
x-enumDescriptions:
|
|
2457
|
+
input_filters: Evaluate routing criteria using declarative filter expressions.
|
|
2458
|
+
script: Evaluate routing criteria using a custom JavaScript function.
|
|
2459
|
+
description: Method used to evaluate routing criteria.
|
|
2460
|
+
default: input_filters
|
|
2461
|
+
examples:
|
|
2462
|
+
- input_filters
|
|
2463
|
+
script:
|
|
2464
|
+
type: object
|
|
2465
|
+
description: |
|
|
2466
|
+
Script configuration when routeRecordsUsing="script".
|
|
2467
|
+
properties:
|
|
2468
|
+
_scriptId:
|
|
2469
|
+
type: string
|
|
2470
|
+
format: objectId
|
|
2471
|
+
x-celigo-refModel: scripts
|
|
2472
|
+
description: Reference to the script resource.
|
|
2473
|
+
examples:
|
|
2474
|
+
- 60a2c4e6f321d800129a1a3c
|
|
2475
|
+
function:
|
|
2476
|
+
type: string
|
|
2477
|
+
description: Function name that returns the branch name.
|
|
2478
|
+
examples:
|
|
2479
|
+
- routeRequest
|
|
2480
|
+
- determineBranch
|
|
2481
|
+
branches:
|
|
2482
|
+
type: array
|
|
2483
|
+
description: Processing branches, evaluated in order.
|
|
2484
|
+
items:
|
|
2485
|
+
type: object
|
|
2486
|
+
properties:
|
|
2487
|
+
name:
|
|
2488
|
+
type: string
|
|
2489
|
+
description: Branch name
|
|
2490
|
+
examples:
|
|
2491
|
+
- Premium customers
|
|
2492
|
+
inputFilter:
|
|
2493
|
+
type: object
|
|
2494
|
+
description: Filter criteria for branch selection.
|
|
2495
|
+
properties:
|
|
2496
|
+
version:
|
|
2497
|
+
type: string
|
|
2498
|
+
enum:
|
|
2499
|
+
- '1'
|
|
2500
|
+
x-enumDescriptions:
|
|
2501
|
+
'1': Version 1 of the Celigo expression-based filter format.
|
|
2502
|
+
description: Version of the filter format used by `rules`.
|
|
2503
|
+
rules:
|
|
2504
|
+
type: array
|
|
2505
|
+
description: Celigo expression-based filter rules.
|
|
2506
|
+
items: {}
|
|
2507
|
+
examples:
|
|
2508
|
+
- - equals
|
|
2509
|
+
- - get
|
|
2510
|
+
- customerType
|
|
2511
|
+
- premium
|
|
2512
|
+
- - and
|
|
2513
|
+
- - exists
|
|
2514
|
+
- - get
|
|
2515
|
+
- orderId
|
|
2516
|
+
- - greaterThan
|
|
2517
|
+
- - get
|
|
2518
|
+
- amount
|
|
2519
|
+
- 1000
|
|
2520
|
+
x-celigo-ai-guidance:
|
|
2521
|
+
- |-
|
|
2522
|
+
Array-based DSL where the first element is an operator (e.g., "equals", "and", "or"),
|
|
2523
|
+
followed by operands which can be nested expressions.
|
|
2524
|
+
nextRouterId:
|
|
2525
|
+
type: string
|
|
2526
|
+
description: Next router to chain to (or "apiRouter" for final routing)
|
|
2527
|
+
examples:
|
|
2528
|
+
- apiRouter
|
|
2529
|
+
pageProcessors:
|
|
2530
|
+
type: array
|
|
2531
|
+
description: Processing steps to execute in this branch
|
|
2532
|
+
items:
|
|
2533
|
+
type: object
|
|
2534
|
+
properties:
|
|
2535
|
+
type:
|
|
2536
|
+
type: string
|
|
2537
|
+
enum:
|
|
2538
|
+
- export
|
|
2539
|
+
- import
|
|
2540
|
+
x-enumDescriptions:
|
|
2541
|
+
export: Uses an export resource for data lookup or enrichment.
|
|
2542
|
+
import: Uses an import resource to send data to a destination system.
|
|
2543
|
+
description: Type of processor
|
|
2544
|
+
_exportId:
|
|
2545
|
+
type: string
|
|
2546
|
+
format: objectId
|
|
2547
|
+
x-celigo-refModel: exports
|
|
2548
|
+
description: Export resource reference (when type="export").
|
|
2549
|
+
examples:
|
|
2550
|
+
- 6878f4a43bc01652c09cdccc
|
|
2551
|
+
_importId:
|
|
2552
|
+
type: string
|
|
2553
|
+
format: objectId
|
|
2554
|
+
x-celigo-refModel: imports
|
|
2555
|
+
description: Import resource reference (when type="import").
|
|
2556
|
+
examples:
|
|
2557
|
+
- 6878f4a43bc01652c09cddee
|
|
2558
|
+
hooks:
|
|
2559
|
+
type: object
|
|
2560
|
+
description: Custom scripts for processing
|
|
2561
|
+
x-celigo-ai-guidance:
|
|
2562
|
+
- |-
|
|
2563
|
+
Each branch has its own criteria and processing steps. Requests are
|
|
2564
|
+
evaluated against branch criteria in the order defined.
|
|
2565
|
+
required:
|
|
2566
|
+
- branches
|
|
2567
|
+
x-celigo-ai-guidance:
|
|
2568
|
+
- |-
|
|
2569
|
+
Routers evaluate the request and route it to different processing branches.
|
|
2570
|
+
This enables complex business logic and conditional processing within your API.
|
|
2571
|
+
ResponseRouter:
|
|
2572
|
+
type: object
|
|
2573
|
+
description: |-
|
|
2574
|
+
Final routing step that selects which response configuration to return.
|
|
2575
|
+
Must have `id: "apiRouter"`.
|
|
2576
|
+
properties:
|
|
2577
|
+
id:
|
|
2578
|
+
type: string
|
|
2579
|
+
enum:
|
|
2580
|
+
- apiRouter
|
|
2581
|
+
x-enumDescriptions:
|
|
2582
|
+
apiRouter: Identifies this as the final router that determines which API response to return.
|
|
2583
|
+
description: Must be `"apiRouter"`.
|
|
2584
|
+
examples:
|
|
2585
|
+
- apiRouter
|
|
2586
|
+
x-celigo-ai-guidance:
|
|
2587
|
+
- |-
|
|
2588
|
+
Must be "apiRouter" to indicate this is the final router before
|
|
2589
|
+
returning the API response.
|
|
2590
|
+
routeRecordsUsing:
|
|
2591
|
+
type: string
|
|
2592
|
+
enum:
|
|
2593
|
+
- input_filters
|
|
2594
|
+
- script
|
|
2595
|
+
x-enumDescriptions:
|
|
2596
|
+
input_filters: Evaluate routing criteria using declarative filter expressions.
|
|
2597
|
+
script: Evaluate routing criteria using a custom JavaScript function.
|
|
2598
|
+
description: Method used to determine which response to use.
|
|
2599
|
+
examples:
|
|
2600
|
+
- input_filters
|
|
2601
|
+
x-celigo-ai-guidance:
|
|
2602
|
+
- |-
|
|
2603
|
+
- **input_filters**: Use declarative filter expressions on each response
|
|
2604
|
+
- **script**: Use custom JavaScript to return the response id
|
|
2605
|
+
script:
|
|
2606
|
+
type: object
|
|
2607
|
+
description: Script configuration when `routeRecordsUsing` is `"script"`.
|
|
2608
|
+
properties:
|
|
2609
|
+
_scriptId:
|
|
2610
|
+
type: string
|
|
2611
|
+
format: objectId
|
|
2612
|
+
x-celigo-refModel: scripts
|
|
2613
|
+
description: Reference to the script resource.
|
|
2614
|
+
examples:
|
|
2615
|
+
- 60a2c4e6f321d800129a1a3c
|
|
2616
|
+
function:
|
|
2617
|
+
type: string
|
|
2618
|
+
description: Function name that returns the response id.
|
|
2619
|
+
examples:
|
|
2620
|
+
- determineResponse
|
|
2621
|
+
- routeToResponse
|
|
2622
|
+
x-celigo-ai-guidance:
|
|
2623
|
+
- |-
|
|
2624
|
+
The response router determines which response configuration to use based on
|
|
2625
|
+
the processing results. This allows you to return different responses based
|
|
2626
|
+
on different conditions or outcomes.
|
|
2627
|
+
ApiResponse:
|
|
2628
|
+
type: object
|
|
2629
|
+
description: |-
|
|
2630
|
+
Response configuration in a builder-mode API. Each API requires exactly one
|
|
2631
|
+
`success` and one `fail` response; additional `custom` responses are optional.
|
|
2632
|
+
properties:
|
|
2633
|
+
id:
|
|
2634
|
+
type: string
|
|
2635
|
+
description: Unique identifier for this response, referenced by the response router.
|
|
2636
|
+
examples:
|
|
2637
|
+
- success_response
|
|
2638
|
+
- error_response
|
|
2639
|
+
- custom_validation_response
|
|
2640
|
+
name:
|
|
2641
|
+
type: string
|
|
2642
|
+
maxLength: 200
|
|
2643
|
+
description: Display name.
|
|
2644
|
+
examples:
|
|
2645
|
+
- Success Response
|
|
2646
|
+
- Error Response
|
|
2647
|
+
- Validation Error
|
|
2648
|
+
description:
|
|
2649
|
+
type: string
|
|
2650
|
+
maxLength: 10240
|
|
2651
|
+
description: Optional description of when this response is used.
|
|
2652
|
+
examples:
|
|
2653
|
+
- Returned when customer is successfully created
|
|
2654
|
+
type:
|
|
2655
|
+
type: string
|
|
2656
|
+
enum:
|
|
2657
|
+
- success
|
|
2658
|
+
- fail
|
|
2659
|
+
- custom
|
|
2660
|
+
x-enumDescriptions:
|
|
2661
|
+
success: Default response returned when the API operation completes successfully.
|
|
2662
|
+
fail: Default response returned when the API operation encounters an error.
|
|
2663
|
+
custom: Additional response for specific scenarios, routed via the response router.
|
|
2664
|
+
description: Response type.
|
|
2665
|
+
examples:
|
|
2666
|
+
- success
|
|
2667
|
+
x-celigo-ai-guidance:
|
|
2668
|
+
- |-
|
|
2669
|
+
- **success**: Default response for successful operations (required, exactly one)
|
|
2670
|
+
- **fail**: Default response for errors (required, exactly one)
|
|
2671
|
+
- **custom**: Additional responses for specific scenarios (optional, multiple allowed)
|
|
2672
|
+
statusCode:
|
|
2673
|
+
type: integer
|
|
2674
|
+
minimum: 100
|
|
2675
|
+
maximum: 599
|
|
2676
|
+
description: HTTP status code to return.
|
|
2677
|
+
examples:
|
|
2678
|
+
- 200
|
|
2679
|
+
- 201
|
|
2680
|
+
- 400
|
|
2681
|
+
- 404
|
|
2682
|
+
- 500
|
|
2683
|
+
headers:
|
|
2684
|
+
type: array
|
|
2685
|
+
description: Response headers to include.
|
|
2686
|
+
items:
|
|
2687
|
+
type: object
|
|
2688
|
+
properties:
|
|
2689
|
+
key:
|
|
2690
|
+
type: string
|
|
2691
|
+
maxLength: 256
|
|
2692
|
+
pattern: ^[a-zA-Z0-9_-]+$
|
|
2693
|
+
description: Header name
|
|
2694
|
+
examples:
|
|
2695
|
+
- Content-Type
|
|
2696
|
+
- X-Request-Id
|
|
2697
|
+
value:
|
|
2698
|
+
type: string
|
|
2699
|
+
maxLength: 256
|
|
2700
|
+
description: Header value (can include handlebars templates)
|
|
2701
|
+
examples:
|
|
2702
|
+
- application/json
|
|
2703
|
+
- '{{requestId}}'
|
|
2704
|
+
description:
|
|
2705
|
+
type: string
|
|
2706
|
+
maxLength: 10240
|
|
2707
|
+
description: Description of the header
|
|
2708
|
+
examples:
|
|
2709
|
+
- Content type of the response body
|
|
2710
|
+
inputFilter:
|
|
2711
|
+
type: object
|
|
2712
|
+
description: Filter criteria for response selection by the response router.
|
|
2713
|
+
properties:
|
|
2714
|
+
version:
|
|
2715
|
+
type: string
|
|
2716
|
+
enum:
|
|
2717
|
+
- '1'
|
|
2718
|
+
x-enumDescriptions:
|
|
2719
|
+
'1': Version 1 of the Celigo expression-based filter format.
|
|
2720
|
+
description: Version of the filter format used by `rules`.
|
|
2721
|
+
rules:
|
|
2722
|
+
type: array
|
|
2723
|
+
description: Celigo expression-based filter rules.
|
|
2724
|
+
items: {}
|
|
2725
|
+
examples:
|
|
2726
|
+
- - equals
|
|
2727
|
+
- - boolean
|
|
2728
|
+
- - context
|
|
2729
|
+
- success
|
|
2730
|
+
- true
|
|
2731
|
+
- - and
|
|
2732
|
+
- - equals
|
|
2733
|
+
- - get
|
|
2734
|
+
- statusCode
|
|
2735
|
+
- 200
|
|
2736
|
+
- - exists
|
|
2737
|
+
- - get
|
|
2738
|
+
- data
|
|
2739
|
+
x-celigo-ai-guidance:
|
|
2740
|
+
- |-
|
|
2741
|
+
Array-based DSL where the first element is an operator (e.g., "equals", "and", "or"),
|
|
2742
|
+
followed by operands which can be nested expressions.
|
|
2743
|
+
bodySchema:
|
|
2744
|
+
type: object
|
|
2745
|
+
description: |-
|
|
2746
|
+
JSON Schema describing the response body structure. Every object-typed
|
|
2747
|
+
schema node must declare at least one property for the API Builder to
|
|
2748
|
+
render it; omit this field when the response body has no defined shape.
|
|
2749
|
+
additionalProperties: true
|
|
2750
|
+
examples:
|
|
2751
|
+
- type: object
|
|
2752
|
+
properties:
|
|
2753
|
+
id:
|
|
2754
|
+
type: string
|
|
2755
|
+
name:
|
|
2756
|
+
type: string
|
|
2757
|
+
createdAt:
|
|
2758
|
+
type: string
|
|
2759
|
+
format: date-time
|
|
2760
|
+
x-celigo-ai-guidance:
|
|
2761
|
+
- |-
|
|
2762
|
+
Every object-typed schema node — the root, a nested property, or an
|
|
2763
|
+
array's `items` — must carry a non-empty `properties` map. The API
|
|
2764
|
+
persists a property-less object node without error, but the API
|
|
2765
|
+
Builder editor crashes rendering it ("Cannot convert undefined or
|
|
2766
|
+
null to object"), so the mistake only surfaces when the editor opens.
|
|
2767
|
+
- |-
|
|
2768
|
+
When copying a schema from an external spec, prune property-less
|
|
2769
|
+
object nodes (e.g. an array's `items` that is a bare
|
|
2770
|
+
`{"type": "object"}`) instead of reproducing them. Array-typed roots
|
|
2771
|
+
(which carry `items`, not `properties`) and type-less nullable
|
|
2772
|
+
leaves render fine. Do not pre-fill `properties: {}` — the API
|
|
2773
|
+
strips empty objects on save.
|
|
2774
|
+
mockInput:
|
|
2775
|
+
type:
|
|
2776
|
+
- object
|
|
2777
|
+
- string
|
|
2778
|
+
maxLength: 0
|
|
2779
|
+
description: |-
|
|
2780
|
+
Mock data for testing this response, in the integrator.io canonical
|
|
2781
|
+
record-page format: `{"page_of_records": [{"record": {...}}, ...]}`.
|
|
2782
|
+
The server rejects any other object shape and any non-empty string
|
|
2783
|
+
with a 422; the empty string `""` (a UI draft artifact) is accepted
|
|
2784
|
+
and stored verbatim.
|
|
2785
|
+
required:
|
|
2786
|
+
- page_of_records
|
|
2787
|
+
properties:
|
|
2788
|
+
page_of_records:
|
|
2789
|
+
type: array
|
|
2790
|
+
description: Pages of mock records fed to this response's mappings.
|
|
2791
|
+
items:
|
|
2792
|
+
type: object
|
|
2793
|
+
required:
|
|
2794
|
+
- record
|
|
2795
|
+
properties:
|
|
2796
|
+
record:
|
|
2797
|
+
type: object
|
|
2798
|
+
description: One mock input record (freeform payload).
|
|
2799
|
+
success:
|
|
2800
|
+
type: boolean
|
|
2801
|
+
description: When true, the mock record follows the success path.
|
|
2802
|
+
testMode:
|
|
2803
|
+
type: boolean
|
|
2804
|
+
description: When true, the mock record is treated as a test-mode record.
|
|
2805
|
+
additionalProperties: true
|
|
2806
|
+
mappings:
|
|
2807
|
+
type: array
|
|
2808
|
+
description: Field mappings to transform processing results into the response body.
|
|
2809
|
+
items:
|
|
2810
|
+
type: object
|
|
2811
|
+
required:
|
|
2812
|
+
- dataType
|
|
2813
|
+
properties:
|
|
2814
|
+
generate:
|
|
2815
|
+
type: string
|
|
2816
|
+
description: Target field path in the response
|
|
2817
|
+
examples:
|
|
2818
|
+
- data.customerId
|
|
2819
|
+
dataType:
|
|
2820
|
+
type: string
|
|
2821
|
+
enum:
|
|
2822
|
+
- string
|
|
2823
|
+
- number
|
|
2824
|
+
- boolean
|
|
2825
|
+
- object
|
|
2826
|
+
- stringarray
|
|
2827
|
+
- numberarray
|
|
2828
|
+
- booleanarray
|
|
2829
|
+
- objectarray
|
|
2830
|
+
- arrayarray
|
|
2831
|
+
x-lowercase: true
|
|
2832
|
+
x-enumDescriptions:
|
|
2833
|
+
string: Single string value
|
|
2834
|
+
number: Single numeric value
|
|
2835
|
+
boolean: Single boolean value
|
|
2836
|
+
object: Nested object value
|
|
2837
|
+
stringarray: Array of strings
|
|
2838
|
+
numberarray: Array of numbers
|
|
2839
|
+
booleanarray: Array of booleans
|
|
2840
|
+
objectarray: Array of objects
|
|
2841
|
+
arrayarray: Array of arrays
|
|
2842
|
+
description: Data type of the value this mapping writes into the response body.
|
|
2843
|
+
examples:
|
|
2844
|
+
- string
|
|
2845
|
+
x-celigo-ai-guidance:
|
|
2846
|
+
- |-
|
|
2847
|
+
Validator-enforced on every mapping entry: writes fail with
|
|
2848
|
+
`422` ("Path 'dataType' is required."), repeated once per
|
|
2849
|
+
entry that omits it.
|
|
2850
|
+
extract:
|
|
2851
|
+
type: string
|
|
2852
|
+
description: Source field path from input data
|
|
2853
|
+
examples:
|
|
2854
|
+
- record.id
|
|
2855
|
+
hardCodedValue:
|
|
2856
|
+
type: string
|
|
2857
|
+
description: |-
|
|
2858
|
+
Static value written to the target field instead of extracting
|
|
2859
|
+
from input data.
|
|
2860
|
+
x-celigo-ai-guidance:
|
|
2861
|
+
- |-
|
|
2862
|
+
The field name is exactly `hardCodedValue` (capital C). The
|
|
2863
|
+
server does not reject unknown mapping keys: a mapping sent
|
|
2864
|
+
with `hardcodedValue` saves successfully with the value
|
|
2865
|
+
silently dropped — no error, and the target field is then
|
|
2866
|
+
simply absent from the API's responses.
|
|
2867
|
+
lookups:
|
|
2868
|
+
type: array
|
|
2869
|
+
description: Static key-value lookup tables for value transformation.
|
|
2870
|
+
items:
|
|
2871
|
+
type: object
|
|
2872
|
+
properties:
|
|
2873
|
+
name:
|
|
2874
|
+
type: string
|
|
2875
|
+
description: Name of the lookup
|
|
2876
|
+
examples:
|
|
2877
|
+
- statusCodeMap
|
|
2878
|
+
map:
|
|
2879
|
+
type: object
|
|
2880
|
+
description: Key-value mapping object
|
|
2881
|
+
default:
|
|
2882
|
+
type: string
|
|
2883
|
+
description: Default value if key not found
|
|
2884
|
+
examples:
|
|
2885
|
+
- unknown
|
|
2886
|
+
allowFailures:
|
|
2887
|
+
type: boolean
|
|
2888
|
+
description: When true, processing continues even if this lookup fails.
|
|
2889
|
+
hooks:
|
|
2890
|
+
type: object
|
|
2891
|
+
description: Custom scripts to run during response processing.
|
|
2892
|
+
properties:
|
|
2893
|
+
preMap:
|
|
2894
|
+
type: object
|
|
2895
|
+
description: Script to run before applying mappings.
|
|
2896
|
+
properties:
|
|
2897
|
+
_scriptId:
|
|
2898
|
+
type: string
|
|
2899
|
+
format: objectId
|
|
2900
|
+
x-celigo-refModel: scripts
|
|
2901
|
+
description: Reference to the script resource.
|
|
2902
|
+
examples:
|
|
2903
|
+
- 689212a2c42d988978e27a11
|
|
2904
|
+
function:
|
|
2905
|
+
type: string
|
|
2906
|
+
description: Function name to execute.
|
|
2907
|
+
examples:
|
|
2908
|
+
- preMapResponse
|
|
2909
|
+
postMap:
|
|
2910
|
+
type: object
|
|
2911
|
+
description: Script to run after applying mappings.
|
|
2912
|
+
properties:
|
|
2913
|
+
_scriptId:
|
|
2914
|
+
type: string
|
|
2915
|
+
format: objectId
|
|
2916
|
+
x-celigo-refModel: scripts
|
|
2917
|
+
description: Reference to the script resource.
|
|
2918
|
+
examples:
|
|
2919
|
+
- 689212a2c42d988978e27a11
|
|
2920
|
+
function:
|
|
2921
|
+
type: string
|
|
2922
|
+
description: Function name to execute.
|
|
2923
|
+
examples:
|
|
2924
|
+
- postMapResponse
|
|
2925
|
+
x-celigo-ai-guidance:
|
|
2926
|
+
- |-
|
|
2927
|
+
Defines how to format and return data to the caller. Each API must have:
|
|
2928
|
+
- Exactly one 'success' response (for successful operations)
|
|
2929
|
+
- Exactly one 'fail' response (for errors)
|
|
2930
|
+
- Zero or more 'custom' responses (for specific scenarios)
|
|
2931
|
+
Builder:
|
|
2932
|
+
type: object
|
|
2933
|
+
description: Builder-mode configuration defining request structure, routing, and response mapping.
|
|
2934
|
+
properties:
|
|
2935
|
+
request:
|
|
2936
|
+
$ref: '#/components/schemas/ApiRequest'
|
|
2937
|
+
routers:
|
|
2938
|
+
type: array
|
|
2939
|
+
description: Optional routers for conditional processing before the response stage.
|
|
2940
|
+
items:
|
|
2941
|
+
$ref: '#/components/schemas/Router'
|
|
2942
|
+
x-celigo-ai-guidance:
|
|
2943
|
+
- |-
|
|
2944
|
+
Routers allow you to direct requests to different processing branches
|
|
2945
|
+
based on criteria. This enables complex business logic within the API.
|
|
2946
|
+
responseRouter:
|
|
2947
|
+
$ref: '#/components/schemas/ResponseRouter'
|
|
2948
|
+
responses:
|
|
2949
|
+
type: array
|
|
2950
|
+
description: |-
|
|
2951
|
+
Response configurations. Must include exactly one `success` and one `fail`
|
|
2952
|
+
response; additional `custom` responses are optional.
|
|
2953
|
+
items:
|
|
2954
|
+
$ref: '#/components/schemas/ApiResponse'
|
|
2955
|
+
x-celigo-ai-guidance:
|
|
2956
|
+
- |-
|
|
2957
|
+
Must include exactly one 'success' response and one 'fail' response.
|
|
2958
|
+
Additional custom responses can be added for specific scenarios.
|
|
2959
|
+
x-celigo-ai-guidance:
|
|
2960
|
+
- |-
|
|
2961
|
+
The builder mode allows you to define your API using visual configuration:
|
|
2962
|
+
- Define the request structure (method, path, parameters)
|
|
2963
|
+
- Transform incoming requests
|
|
2964
|
+
- Route requests through processing logic
|
|
2965
|
+
- Map and transform responses
|
|
2966
|
+
Shipworks:
|
|
2967
|
+
type: object
|
|
2968
|
+
description: ShipWorks shipping-management credentials. Legacy feature.
|
|
2969
|
+
properties:
|
|
2970
|
+
username:
|
|
2971
|
+
type: string
|
|
2972
|
+
description: ShipWorks username.
|
|
2973
|
+
examples:
|
|
2974
|
+
- shipworks_user
|
|
2975
|
+
password:
|
|
2976
|
+
type: string
|
|
2977
|
+
description: ShipWorks password. Masked as `"******"` in GET responses.
|
|
2978
|
+
examples:
|
|
2979
|
+
- '******'
|
|
2980
|
+
x-celigo-ai-guidance:
|
|
2981
|
+
- |-
|
|
2982
|
+
When retrieving, this will be masked as "******" if a password is set.
|
|
2983
|
+
When creating/updating, provide the actual password value.
|
|
2984
|
+
required:
|
|
2985
|
+
- username
|
|
2986
|
+
- password
|
|
2987
|
+
x-celigo-ai-guidance:
|
|
2988
|
+
- |-
|
|
2989
|
+
ShipWorks is a shipping management platform. This configuration stores
|
|
2990
|
+
authentication credentials for ShipWorks-specific API integrations.
|
|
2991
|
+
APIBase:
|
|
2992
|
+
type: object
|
|
2993
|
+
description: Writable fields shared by the request and response schemas.
|
|
2994
|
+
properties:
|
|
2995
|
+
name:
|
|
2996
|
+
type: string
|
|
2997
|
+
minLength: 1
|
|
2998
|
+
maxLength: 100
|
|
2999
|
+
description: Display name.
|
|
3000
|
+
examples:
|
|
3001
|
+
- Customer API
|
|
3002
|
+
- Order Management API
|
|
3003
|
+
_integrationId:
|
|
3004
|
+
type: string
|
|
3005
|
+
format: objectId
|
|
3006
|
+
x-celigo-refModel: integrations
|
|
3007
|
+
description: Integration this API belongs to. Omitted for standalone APIs (an API can be created without an integration).
|
|
3008
|
+
examples:
|
|
3009
|
+
- 5e9a8f7c6b3d2a0011c4e5f6
|
|
3010
|
+
x-celigo-ai-guidance:
|
|
3011
|
+
- To move the API to a different integration, PUT with a changed _integrationId; the platform registers the API's step connections in the target integration on save.
|
|
3012
|
+
description:
|
|
3013
|
+
type: string
|
|
3014
|
+
description: Optional description of the API's purpose.
|
|
3015
|
+
examples:
|
|
3016
|
+
- API for managing customer records in Salesforce
|
|
3017
|
+
x-celigo-ai-guidance:
|
|
3018
|
+
- Use this to document the API's purpose, expected inputs/outputs, and any special considerations.
|
|
3019
|
+
type:
|
|
3020
|
+
type: string
|
|
3021
|
+
enum:
|
|
3022
|
+
- builder
|
|
3023
|
+
- script
|
|
3024
|
+
default: script
|
|
3025
|
+
x-enumDescriptions:
|
|
3026
|
+
builder: Visual configuration with request/response mapping and transformations.
|
|
3027
|
+
script: Custom JavaScript function for complete control over API behavior.
|
|
3028
|
+
description: |-
|
|
3029
|
+
API mode. Cannot be changed after creation. Defaults to `script` when
|
|
3030
|
+
omitted on create; legacy script APIs created before builder mode may
|
|
3031
|
+
omit it on reads as well.
|
|
3032
|
+
examples:
|
|
3033
|
+
- builder
|
|
3034
|
+
version:
|
|
3035
|
+
type: string
|
|
3036
|
+
default: v1
|
|
3037
|
+
pattern: ^[a-zA-Z0-9\-_\.]+$
|
|
3038
|
+
description: Version segment of the public URL (`/{version}/{relativeURI}`).
|
|
3039
|
+
examples:
|
|
3040
|
+
- v1
|
|
3041
|
+
- v2
|
|
3042
|
+
- v1.0
|
|
3043
|
+
disabled:
|
|
3044
|
+
type: boolean
|
|
3045
|
+
default: false
|
|
3046
|
+
description: When true, the API rejects all incoming requests.
|
|
3047
|
+
examples:
|
|
3048
|
+
- false
|
|
3049
|
+
timeoutPeriod:
|
|
3050
|
+
type: integer
|
|
3051
|
+
minimum: 0
|
|
3052
|
+
maximum: 120
|
|
3053
|
+
description: |-
|
|
3054
|
+
Request-timeout override in seconds (1–120). `0` is a sentinel meaning "use the
|
|
3055
|
+
120-second default" — the server rewrites it on write, so a stored value is never 0.
|
|
3056
|
+
examples:
|
|
3057
|
+
- 120
|
|
3058
|
+
- 30
|
|
3059
|
+
logging:
|
|
3060
|
+
type: object
|
|
3061
|
+
description: |-
|
|
3062
|
+
Execution-logging settings for the API. Builder-mode APIs are
|
|
3063
|
+
initialized to `{"mode": "basic"}` at creation (when the account
|
|
3064
|
+
license has logging enabled), so the field is present on responses
|
|
3065
|
+
from the start.
|
|
3066
|
+
|
|
3067
|
+
POST and PUT bodies cannot set or change this field — the server
|
|
3068
|
+
ignores it silently (the write succeeds and the stored value is
|
|
3069
|
+
untouched). `PATCH /v1/apis/{_id}` with the `/logging/mode` and
|
|
3070
|
+
`/logging/debugUntil` paths is the only way to change it.
|
|
3071
|
+
x-celigo-ai-guidance:
|
|
3072
|
+
- |-
|
|
3073
|
+
Never send logging changes via PUT: the request returns 200 with
|
|
3074
|
+
the stored value unchanged — no error, nothing persisted. PATCH
|
|
3075
|
+
`/logging/mode` and `/logging/debugUntil` are the only writers.
|
|
3076
|
+
properties:
|
|
3077
|
+
mode:
|
|
3078
|
+
type: string
|
|
3079
|
+
enum:
|
|
3080
|
+
- basic
|
|
3081
|
+
- standard
|
|
3082
|
+
- detailed
|
|
3083
|
+
- accountLevel
|
|
3084
|
+
- noLogging
|
|
3085
|
+
x-enumDescriptions:
|
|
3086
|
+
basic: Log request metadata (method, URI, status, timing) only.
|
|
3087
|
+
standard: Log request metadata plus headers and summary step information.
|
|
3088
|
+
detailed: Full capture including per-step trace logs, viewable in the run-history trace view.
|
|
3089
|
+
accountLevel: Defer to the account's logging settings.
|
|
3090
|
+
noLogging: Disable request logging entirely — no run-history entries are produced.
|
|
3091
|
+
description: |-
|
|
3092
|
+
Which logging level applies to requests handled by this API. Only
|
|
3093
|
+
`detailed` (or a temporary debug window) produces the per-step
|
|
3094
|
+
trace data used by `GET /v1/apis/{_id}/requests/{executionId}`.
|
|
3095
|
+
Payload-capturing modes (`standard`, `detailed`) require payload
|
|
3096
|
+
storage to be enabled for the account — without it, changing the
|
|
3097
|
+
mode fails with `422` (code `payload_storage_required`).
|
|
3098
|
+
debugUntil:
|
|
3099
|
+
type: string
|
|
3100
|
+
format: date-time
|
|
3101
|
+
description: |-
|
|
3102
|
+
While this timestamp is in the future, requests are captured in
|
|
3103
|
+
full debug mode regardless of `mode`. Clears itself once the
|
|
3104
|
+
window passes. Setting it requires payload storage to be enabled
|
|
3105
|
+
for the account.
|
|
3106
|
+
examples:
|
|
3107
|
+
- '2026-05-15T14:00:00.000Z'
|
|
3108
|
+
traceKeyTemplate:
|
|
3109
|
+
type: string
|
|
3110
|
+
maxLength: 1024
|
|
3111
|
+
description: |-
|
|
3112
|
+
Handlebars template that computes each request's trace key from the
|
|
3113
|
+
request payload, used to correlate run-history entries with source
|
|
3114
|
+
records. Absent from responses until set.
|
|
3115
|
+
examples:
|
|
3116
|
+
- '{{record.orderId}}'
|
|
3117
|
+
pagination:
|
|
3118
|
+
type: object
|
|
3119
|
+
description: |-
|
|
3120
|
+
Cursor pagination for builder-mode APIs whose volume-driver lookup
|
|
3121
|
+
supports paging. When enabled, API responses are wrapped in a
|
|
3122
|
+
`{data, pagination: {has_more, next_cursor}}` envelope; consumers
|
|
3123
|
+
resume by sending `next_cursor` in the POST body (or the
|
|
3124
|
+
`Celigo-Next-Cursor` header on GET) until `has_more` is false.
|
|
3125
|
+
Invalid or mismatched cursors fail with `invalid_cursor_format`,
|
|
3126
|
+
`cursor_version_unsupported`, `cursor_signature_invalid`,
|
|
3127
|
+
`cursor_api_mismatch`, `cursor_filter_mismatch`, or
|
|
3128
|
+
`cursor_not_supported_for_api`. Absent from responses until set.
|
|
3129
|
+
properties:
|
|
3130
|
+
enabled:
|
|
3131
|
+
type: boolean
|
|
3132
|
+
description: When true, the pagination envelope and cursor contract are active for this API.
|
|
3133
|
+
script:
|
|
3134
|
+
$ref: '#/components/schemas/Script'
|
|
3135
|
+
builder:
|
|
3136
|
+
$ref: '#/components/schemas/Builder'
|
|
3137
|
+
shipworks:
|
|
3138
|
+
$ref: '#/components/schemas/Shipworks'
|
|
3139
|
+
draft:
|
|
3140
|
+
type: boolean
|
|
3141
|
+
description: |-
|
|
3142
|
+
When true, this API is a draft that auto-deletes when its expiry passes
|
|
3143
|
+
(`draftExpiresAt` in the response). Set at creation; an update can clear the
|
|
3144
|
+
flag but never set it.
|
|
3145
|
+
x-celigo-ai-guidance:
|
|
3146
|
+
- |-
|
|
3147
|
+
POST with `draft: true` arms the draft TTL (the server computes `draftExpiresAt`).
|
|
3148
|
+
PUT with `draft: false` clears the flag and the expiry, promoting the draft to a
|
|
3149
|
+
permanent API. PUT with `draft: true` on a non-draft API is silently ignored, and
|
|
3150
|
+
a PUT that omits the field leaves an existing draft flag unchanged.
|
|
3151
|
+
Apim:
|
|
3152
|
+
type: array
|
|
3153
|
+
readOnly: true
|
|
3154
|
+
description: Publication status of this API in external API management systems.
|
|
3155
|
+
items:
|
|
3156
|
+
type: object
|
|
3157
|
+
properties:
|
|
3158
|
+
apiId:
|
|
3159
|
+
type: string
|
|
3160
|
+
description: Identifier assigned by the external API management system (a UUID, not a Celigo API _id).
|
|
3161
|
+
examples:
|
|
3162
|
+
- 44754dc4-15fa-4f52-b54d-c415fa5f525c
|
|
3163
|
+
flowId:
|
|
3164
|
+
type: string
|
|
3165
|
+
description: Associated flow identifier in the external API management system (a UUID, not a Celigo flow _id). Empty when no flow is associated.
|
|
3166
|
+
examples:
|
|
3167
|
+
- 14b8def5-143e-4598-b8de-f5143e559832
|
|
3168
|
+
status:
|
|
3169
|
+
type: string
|
|
3170
|
+
enum:
|
|
3171
|
+
- oaspending
|
|
3172
|
+
- published
|
|
3173
|
+
x-enumDescriptions:
|
|
3174
|
+
oaspending: OpenAPI spec generation or update is pending for this API.
|
|
3175
|
+
published: The API has been published to the external API management system.
|
|
3176
|
+
description: Publication status.
|
|
3177
|
+
definitionVersion:
|
|
3178
|
+
type: string
|
|
3179
|
+
enum:
|
|
3180
|
+
- v4
|
|
3181
|
+
x-enumDescriptions:
|
|
3182
|
+
v4: Version 4 of the API definition format used by the management system.
|
|
3183
|
+
description: API definition format version.
|
|
3184
|
+
x-celigo-ai-guidance:
|
|
3185
|
+
- |-
|
|
3186
|
+
Tracks the publication status of this API to external API management systems
|
|
3187
|
+
and portals. Used for generating and syncing OpenAPI specifications.
|
|
3188
|
+
API:
|
|
3189
|
+
required:
|
|
3190
|
+
- _id
|
|
3191
|
+
- name
|
|
3192
|
+
- createdAt
|
|
3193
|
+
- lastModified
|
|
3194
|
+
description: |-
|
|
3195
|
+
API resource. Shape varies by mode: builder-mode APIs carry `type`, `version`,
|
|
3196
|
+
`disabled`, and `builder`; script-mode APIs additionally carry `script` plus
|
|
3197
|
+
top-level `_scriptId` / `function` copies. Legacy script APIs (pre-builder era)
|
|
3198
|
+
omit `type`, `version`, `disabled`, and `builder` entirely.
|
|
3199
|
+
allOf:
|
|
3200
|
+
- $ref: '#/components/schemas/APIBase'
|
|
3201
|
+
- type: object
|
|
3202
|
+
properties:
|
|
3203
|
+
_id:
|
|
3204
|
+
type: string
|
|
3205
|
+
format: objectId
|
|
3206
|
+
readOnly: true
|
|
3207
|
+
x-celigo-refModel: apis
|
|
3208
|
+
description: Unique identifier for the API.
|
|
3209
|
+
examples:
|
|
3210
|
+
- 68ae4264b5f755d2dd3796b4
|
|
3211
|
+
_apiGroupingId:
|
|
3212
|
+
type:
|
|
3213
|
+
- string
|
|
3214
|
+
- 'null'
|
|
3215
|
+
format: objectId
|
|
3216
|
+
readOnly: true
|
|
3217
|
+
description: |-
|
|
3218
|
+
API grouping this API belongs to. Set only via
|
|
3219
|
+
`PUT /apis/grouping`; the server ignores this field in POST/PUT
|
|
3220
|
+
bodies on this resource. May be `null` after ungrouping.
|
|
3221
|
+
examples:
|
|
3222
|
+
- 60a1b2c3d4e5f60012345678
|
|
3223
|
+
_scriptId:
|
|
3224
|
+
type: string
|
|
3225
|
+
format: objectId
|
|
3226
|
+
readOnly: true
|
|
3227
|
+
x-celigo-refModel: scripts
|
|
3228
|
+
description: |-
|
|
3229
|
+
Top-level copy of `script._scriptId`. Present on script-mode and legacy
|
|
3230
|
+
script APIs for backward compatibility.
|
|
3231
|
+
examples:
|
|
3232
|
+
- 689212a2c42d988978e27a11
|
|
3233
|
+
function:
|
|
3234
|
+
type: string
|
|
3235
|
+
readOnly: true
|
|
3236
|
+
description: |-
|
|
3237
|
+
Top-level copy of `script.function`. Present on script-mode and legacy
|
|
3238
|
+
script APIs for backward compatibility.
|
|
3239
|
+
examples:
|
|
3240
|
+
- handleRequest
|
|
3241
|
+
createdAt:
|
|
3242
|
+
type: string
|
|
3243
|
+
format: date-time
|
|
3244
|
+
readOnly: true
|
|
3245
|
+
description: Timestamp when the API was created.
|
|
3246
|
+
examples:
|
|
3247
|
+
- '2025-08-26T23:25:24.107Z'
|
|
3248
|
+
lastModified:
|
|
3249
|
+
type: string
|
|
3250
|
+
format: date-time
|
|
3251
|
+
readOnly: true
|
|
3252
|
+
description: Timestamp when the API was last modified.
|
|
3253
|
+
examples:
|
|
3254
|
+
- '2026-04-07T03:48:20.795Z'
|
|
3255
|
+
_templateId:
|
|
3256
|
+
type: string
|
|
3257
|
+
format: objectId
|
|
3258
|
+
readOnly: true
|
|
3259
|
+
x-celigo-refModel: templates
|
|
3260
|
+
description: Template this API was created from. Present only on template-installed APIs.
|
|
3261
|
+
examples:
|
|
3262
|
+
- 60a2c4e6f321d800129a1a3c
|
|
3263
|
+
draftExpiresAt:
|
|
3264
|
+
type: string
|
|
3265
|
+
format: date-time
|
|
3266
|
+
readOnly: true
|
|
3267
|
+
description: |-
|
|
3268
|
+
Timestamp when a draft API auto-deletes. Server-computed when `draft` is set at
|
|
3269
|
+
creation.
|
|
3270
|
+
examples:
|
|
3271
|
+
- '2026-01-15T09:30:00.000Z'
|
|
3272
|
+
apim:
|
|
3273
|
+
$ref: '#/components/schemas/Apim'
|
|
3274
|
+
x-celigo-ai-guidance:
|
|
3275
|
+
- |-
|
|
3276
|
+
Contains the complete API configuration including metadata, script/builder settings,
|
|
3277
|
+
and integration-specific configurations.
|
|
3278
|
+
Request:
|
|
3279
|
+
type: object
|
|
3280
|
+
description: |-
|
|
3281
|
+
Request body for creating or updating an API.
|
|
3282
|
+
|
|
3283
|
+
For builder-mode APIs, populate the `builder` object (at minimum
|
|
3284
|
+
`builder.request.relativeURI` and `builder.request.method`); the `script`
|
|
3285
|
+
field is ignored. For script-mode APIs, populate `script` with `_scriptId`
|
|
3286
|
+
and `function`; the `builder` field is ignored. On PUT, send the complete
|
|
3287
|
+
object — omitted fields revert to defaults.
|
|
3288
|
+
|
|
3289
|
+
Set `type` explicitly to `builder` or `script`. The server infers `script`
|
|
3290
|
+
when `type` is omitted, but new APIs must declare it.
|
|
3291
|
+
required:
|
|
3292
|
+
- name
|
|
3293
|
+
- type
|
|
3294
|
+
allOf:
|
|
3295
|
+
- $ref: '#/components/schemas/APIBase'
|
|
3296
|
+
Error:
|
|
3297
|
+
type: object
|
|
3298
|
+
description: Standard error response envelope returned by integrator.io APIs.
|
|
3299
|
+
properties:
|
|
3300
|
+
errors:
|
|
3301
|
+
type: array
|
|
3302
|
+
description: List of errors that occurred while processing the request.
|
|
3303
|
+
items:
|
|
3304
|
+
type: object
|
|
3305
|
+
properties:
|
|
3306
|
+
code:
|
|
3307
|
+
oneOf:
|
|
3308
|
+
- type: string
|
|
3309
|
+
- type: integer
|
|
3310
|
+
description: |-
|
|
3311
|
+
Machine-readable error code. Usually a string like
|
|
3312
|
+
`invalid_ref`, `missing_required_field`, or `unauthorized`;
|
|
3313
|
+
may be an **integer** when the error mirrors an upstream HTTP
|
|
3314
|
+
status (e.g. `500`) — most commonly returned by connection-ping
|
|
3315
|
+
and adaptor-proxy responses.
|
|
3316
|
+
message:
|
|
3317
|
+
type: string
|
|
3318
|
+
description: Human-readable description of the error.
|
|
3319
|
+
field:
|
|
3320
|
+
type: string
|
|
3321
|
+
description: |-
|
|
3322
|
+
Optional pointer to the document field that caused the error.
|
|
3323
|
+
Used by structural validation errors (`missing_required_field`,
|
|
3324
|
+
`invalid_ref`) to indicate which field is at fault
|
|
3325
|
+
(e.g. `_id`, `type`, `http.baseURI`).
|
|
3326
|
+
source:
|
|
3327
|
+
type: string
|
|
3328
|
+
description: |-
|
|
3329
|
+
Optional origin layer for the error — e.g. `application` when
|
|
3330
|
+
the error came from the remote system the adaptor called,
|
|
3331
|
+
`connector` when the adaptor itself rejected the request.
|
|
3332
|
+
required:
|
|
3333
|
+
- message
|
|
3334
|
+
required:
|
|
3335
|
+
- errors
|
|
3336
|
+
ApisUsageEntry:
|
|
3337
|
+
type: object
|
|
3338
|
+
description: |-
|
|
3339
|
+
One month's invocation record for a single API-callable endpoint. Keyed by the
|
|
3340
|
+
resource + HTTP method + relativeURI combination — the same export invoked via two HTTP methods
|
|
3341
|
+
produces two separate entries.
|
|
3342
|
+
properties:
|
|
3343
|
+
_id:
|
|
3344
|
+
type: string
|
|
3345
|
+
format: objectId
|
|
3346
|
+
description: Unique id of this usage record (not the resource id — see `metadata._resourceId`).
|
|
3347
|
+
examples:
|
|
3348
|
+
- 69d054b9be4ce14fb4112827
|
|
3349
|
+
method:
|
|
3350
|
+
type: string
|
|
3351
|
+
enum:
|
|
3352
|
+
- GET
|
|
3353
|
+
- POST
|
|
3354
|
+
- PUT
|
|
3355
|
+
- PATCH
|
|
3356
|
+
- DELETE
|
|
3357
|
+
x-enumDescriptions:
|
|
3358
|
+
GET: Retrieve data from the endpoint.
|
|
3359
|
+
POST: Submit data to the endpoint.
|
|
3360
|
+
PUT: Replace data at the endpoint.
|
|
3361
|
+
PATCH: Partially update data at the endpoint.
|
|
3362
|
+
DELETE: Remove data at the endpoint.
|
|
3363
|
+
description: HTTP method the endpoint was called with.
|
|
3364
|
+
relativeURI:
|
|
3365
|
+
type: string
|
|
3366
|
+
description: |-
|
|
3367
|
+
The endpoint path (relative to `https://api.integrator.io`) that was invoked. Common shapes:
|
|
3368
|
+
`/v1/exports/{_exportId}/invoke`, `/v1/imports/{_importId}/invoke`,
|
|
3369
|
+
`/v1/connections/{_connectionId}/import` for virtual imports,
|
|
3370
|
+
`/v1/apis/{_apiId}/request` for script-mode APIs, and
|
|
3371
|
+
`/apis/v1/<relativeURI>` for builder-mode APIs.
|
|
3372
|
+
examples:
|
|
3373
|
+
- /v1/exports/6878f4a43bc01652c09cdccc/invoke
|
|
3374
|
+
metadata:
|
|
3375
|
+
type: object
|
|
3376
|
+
description: Human-readable labeling of the resource behind this usage record.
|
|
3377
|
+
properties:
|
|
3378
|
+
_resourceId:
|
|
3379
|
+
type: string
|
|
3380
|
+
format: objectId
|
|
3381
|
+
description: |-
|
|
3382
|
+
Id of the underlying export, import, or API resource. Omitted for some resource types
|
|
3383
|
+
(e.g. connection-scoped virtual imports) where the URL itself fully identifies the target.
|
|
3384
|
+
examples:
|
|
3385
|
+
- 6878f4a43bc01652c09cdccc
|
|
3386
|
+
name:
|
|
3387
|
+
type: string
|
|
3388
|
+
description: Display name of the resource at the time of invocation.
|
|
3389
|
+
examples:
|
|
3390
|
+
- Get Contacts
|
|
3391
|
+
type:
|
|
3392
|
+
type: string
|
|
3393
|
+
enum:
|
|
3394
|
+
- export
|
|
3395
|
+
- import
|
|
3396
|
+
- virtualImport
|
|
3397
|
+
- script
|
|
3398
|
+
- apiBuilder
|
|
3399
|
+
x-enumDescriptions:
|
|
3400
|
+
export: A standard export resource invoked as an API endpoint.
|
|
3401
|
+
import: A standard import resource invoked as an API endpoint.
|
|
3402
|
+
virtualImport: A connection-scoped import embedded in a connector.
|
|
3403
|
+
script: A script-mode API driven by custom JavaScript.
|
|
3404
|
+
apiBuilder: A builder-mode API configured visually with request/response mappings.
|
|
3405
|
+
description: |-
|
|
3406
|
+
Resource flavor. `virtualImport` is a connection-scoped import (connector-embedded).
|
|
3407
|
+
`script` is a script-mode API. `apiBuilder` is a builder-mode API.
|
|
3408
|
+
month:
|
|
3409
|
+
type: integer
|
|
3410
|
+
minimum: 1
|
|
3411
|
+
maximum: 12
|
|
3412
|
+
description: Calendar month (1 = January) the counters cover.
|
|
3413
|
+
examples:
|
|
3414
|
+
- 4
|
|
3415
|
+
year:
|
|
3416
|
+
type: integer
|
|
3417
|
+
description: Four-digit year the counters cover.
|
|
3418
|
+
examples:
|
|
3419
|
+
- 2026
|
|
3420
|
+
ioInvocationCount:
|
|
3421
|
+
type: integer
|
|
3422
|
+
description: |-
|
|
3423
|
+
Number of times the endpoint was invoked through integrator.io's own API front door. This is
|
|
3424
|
+
the counter that bills against the subscription's API invocation entitlement.
|
|
3425
|
+
examples:
|
|
3426
|
+
- 29
|
|
3427
|
+
apimInvocationCount:
|
|
3428
|
+
type: integer
|
|
3429
|
+
description: |-
|
|
3430
|
+
Number of times the endpoint was invoked through an external API Management layer (APIM) in
|
|
3431
|
+
front of integrator.io. Billed separately from `ioInvocationCount`.
|
|
3432
|
+
examples:
|
|
3433
|
+
- 0
|
|
3434
|
+
createdAt:
|
|
3435
|
+
type: string
|
|
3436
|
+
format: date-time
|
|
3437
|
+
description: When this monthly counter record was first created (the first invocation of the month).
|
|
3438
|
+
examples:
|
|
3439
|
+
- '2026-04-04T00:00:57.285Z'
|
|
3440
|
+
ApisUsageResponse:
|
|
3441
|
+
type: object
|
|
3442
|
+
description: |-
|
|
3443
|
+
Month-to-date invocation counters for every API endpoint that has been called in the account.
|
|
3444
|
+
Returned by `GET /v1/apis/usage`. Each entry in `usages[]` represents one resource + method +
|
|
3445
|
+
relativeURI triple — the same export or import invoked via two different methods yields two
|
|
3446
|
+
entries. Counters are cumulative for the month named in `month` / `year` and reset on the 1st.
|
|
3447
|
+
properties:
|
|
3448
|
+
usages:
|
|
3449
|
+
type: array
|
|
3450
|
+
description: |-
|
|
3451
|
+
Per-endpoint invocation records. Empty array when the account hasn't invoked any API endpoints
|
|
3452
|
+
this month. Includes entries for every resource that can be invoked as an API —
|
|
3453
|
+
custom APIs, individual exports/imports (`/v1/exports/{id}/invoke`, `/v1/imports/{id}/invoke`),
|
|
3454
|
+
virtual imports, and script APIs.
|
|
3455
|
+
items:
|
|
3456
|
+
$ref: '#/components/schemas/ApisUsageEntry'
|
|
3457
|
+
externalApimCount:
|
|
3458
|
+
type: integer
|
|
3459
|
+
description: |-
|
|
3460
|
+
Account-wide count of invocations that arrived through an external API Management layer
|
|
3461
|
+
(APIM) in front of integrator.io for the current month. Aggregate counterpart to the
|
|
3462
|
+
per-endpoint `apimInvocationCount` values in `usages[]`. Absent on some responses when the
|
|
3463
|
+
account has never been routed through an external APIM.
|
|
3464
|
+
examples:
|
|
3465
|
+
- 0
|
|
3466
|
+
JsonPatchOperation:
|
|
3467
|
+
type: object
|
|
3468
|
+
description: A single JSON Patch operation (RFC 6902).
|
|
3469
|
+
required:
|
|
3470
|
+
- op
|
|
3471
|
+
- path
|
|
3472
|
+
properties:
|
|
3473
|
+
op:
|
|
3474
|
+
type: string
|
|
3475
|
+
enum:
|
|
3476
|
+
- replace
|
|
3477
|
+
- add
|
|
3478
|
+
- remove
|
|
3479
|
+
x-enumDescriptions:
|
|
3480
|
+
replace: Replaces the value at the specified path.
|
|
3481
|
+
add: Sets the value at the specified path.
|
|
3482
|
+
remove: Removes the value at the specified path.
|
|
3483
|
+
description: The operation to perform.
|
|
3484
|
+
path:
|
|
3485
|
+
type: string
|
|
3486
|
+
description: |-
|
|
3487
|
+
JSON Pointer (RFC 6901) to the field to patch. Only
|
|
3488
|
+
whitelisted paths are accepted — unlisted paths return
|
|
3489
|
+
`422` with `"<path> is not a whitelisted property"`.
|
|
3490
|
+
value:
|
|
3491
|
+
description: The new value to set. Required for `replace` and `add`, omit for `remove`.
|
|
3492
|
+
JsonPatchRequest:
|
|
3493
|
+
type: array
|
|
3494
|
+
description: |-
|
|
3495
|
+
A JSON Patch document (RFC 6902). Send an array of patch
|
|
3496
|
+
operations on whitelisted fields — all other paths are rejected
|
|
3497
|
+
with 422.
|
|
3498
|
+
minItems: 1
|
|
3499
|
+
items:
|
|
3500
|
+
$ref: '#/components/schemas/JsonPatchOperation'
|
|
3501
|
+
ApiLogEntry:
|
|
3502
|
+
type: object
|
|
3503
|
+
description: |-
|
|
3504
|
+
Summary row returned in the `GET /v1/apis/{_id}/logs` listing. Carries just enough to identify
|
|
3505
|
+
each invocation (when it ran, how it ended) so the caller can pick which ones to inspect in
|
|
3506
|
+
full via `GET /v1/apis/{_id}/logs/{key}`. Full request/response payloads are **not** in the
|
|
3507
|
+
list — only in the detail fetch.
|
|
3508
|
+
properties:
|
|
3509
|
+
key:
|
|
3510
|
+
type: string
|
|
3511
|
+
description: |-
|
|
3512
|
+
Opaque log key. Pass to `GET /v1/apis/{_id}/logs/{key}` to retrieve the full decoded
|
|
3513
|
+
transaction. Structure is `<seq>-<id>-<status>-<method>` (e.g.
|
|
3514
|
+
`5481201053696-a10af1ade8fe477a847771c1e3716e36-200-POST`). The embedded `<id>` also
|
|
3515
|
+
appears as `id` on the detail response.
|
|
3516
|
+
examples:
|
|
3517
|
+
- 5481201053696-a10af1ade8fe477a847771c1e3716e36-200-POST
|
|
3518
|
+
time:
|
|
3519
|
+
type: integer
|
|
3520
|
+
format: int64
|
|
3521
|
+
description: Epoch milliseconds when the invocation was handled.
|
|
3522
|
+
examples:
|
|
3523
|
+
- 1776917346304
|
|
3524
|
+
method:
|
|
3525
|
+
type: string
|
|
3526
|
+
description: HTTP method of the inbound request (`GET`, `POST`, ...).
|
|
3527
|
+
examples:
|
|
3528
|
+
- POST
|
|
3529
|
+
statusCode:
|
|
3530
|
+
type: string
|
|
3531
|
+
description: |-
|
|
3532
|
+
HTTP status code the API returned to the caller, as a **string** (e.g. `"200"`). Note: on
|
|
3533
|
+
the detail endpoint this same value is exposed as an integer under `response.statusCode` —
|
|
3534
|
+
the list surfaces it as a string.
|
|
3535
|
+
examples:
|
|
3536
|
+
- '200'
|
|
3537
|
+
ApiLogsResponse:
|
|
3538
|
+
type: object
|
|
3539
|
+
description: |-
|
|
3540
|
+
Request log envelope returned by `GET /v1/apis/{_id}/logs`. Contains the recent API invocation
|
|
3541
|
+
traces for the API identified by `_id`. The `requests[]` array is empty when no invocations
|
|
3542
|
+
have been logged — either the API has never been called, or debug capture is off, or the
|
|
3543
|
+
retention window has elapsed. Each entry is a full decoded request/response pair.
|
|
3544
|
+
properties:
|
|
3545
|
+
requests:
|
|
3546
|
+
type: array
|
|
3547
|
+
description: |-
|
|
3548
|
+
Invocation summaries, newest first. Each entry has just `{key, time, method, statusCode}`;
|
|
3549
|
+
the decoded request/response payload lives behind `GET /v1/apis/{_id}/logs/{key}`.
|
|
3550
|
+
items:
|
|
3551
|
+
$ref: '#/components/schemas/ApiLogEntry'
|
|
3552
|
+
ApiLogDetail:
|
|
3553
|
+
type: object
|
|
3554
|
+
description: |-
|
|
3555
|
+
Full decoded request/response envelope for one API invocation, returned by
|
|
3556
|
+
`GET /v1/apis/{_id}/logs/{key}`. Sensitive header values (`authorization`, OAuth bearer tokens,
|
|
3557
|
+
and similar) are masked with `********` before storage — the originals are not recoverable.
|
|
3558
|
+
The `inputToResponseBubble` block reveals the Celigo-internal state handed to the
|
|
3559
|
+
response-mapping stage; it's absent for script-mode APIs and pre-mapping failures.
|
|
3560
|
+
properties:
|
|
3561
|
+
time:
|
|
3562
|
+
type: integer
|
|
3563
|
+
format: int64
|
|
3564
|
+
description: Epoch milliseconds when the invocation was handled.
|
|
3565
|
+
examples:
|
|
3566
|
+
- 1776917346304
|
|
3567
|
+
request:
|
|
3568
|
+
type: object
|
|
3569
|
+
description: The inbound HTTP request the API received, as decoded by the runtime.
|
|
3570
|
+
properties:
|
|
3571
|
+
method:
|
|
3572
|
+
type: string
|
|
3573
|
+
description: HTTP method of the inbound request.
|
|
3574
|
+
examples:
|
|
3575
|
+
- POST
|
|
3576
|
+
url:
|
|
3577
|
+
type: string
|
|
3578
|
+
description: |-
|
|
3579
|
+
The path the caller hit, relative to `https://api.integrator.io`. Includes the API
|
|
3580
|
+
`{version}` and the API's configured `relativeURI` (e.g. `/apis/v1/hubspot`).
|
|
3581
|
+
Query-string credentials are masked before storage.
|
|
3582
|
+
examples:
|
|
3583
|
+
- /apis/v1/orders
|
|
3584
|
+
httpVersion:
|
|
3585
|
+
type: string
|
|
3586
|
+
description: HTTP protocol version the caller negotiated (e.g. `1.1`, `2`).
|
|
3587
|
+
examples:
|
|
3588
|
+
- '1.1'
|
|
3589
|
+
headers:
|
|
3590
|
+
type: object
|
|
3591
|
+
description: Inbound headers. The `authorization` header (and other credential headers) are masked.
|
|
3592
|
+
additionalProperties:
|
|
3593
|
+
type: string
|
|
3594
|
+
example:
|
|
3595
|
+
content-type: application/json
|
|
3596
|
+
authorization: '********'
|
|
3597
|
+
accept: application/json
|
|
3598
|
+
host: api.integrator.io
|
|
3599
|
+
queryParams:
|
|
3600
|
+
type: object
|
|
3601
|
+
description: Parsed query-string parameters. Empty object when none were sent.
|
|
3602
|
+
additionalProperties: true
|
|
3603
|
+
body:
|
|
3604
|
+
type: string
|
|
3605
|
+
description: |-
|
|
3606
|
+
Request body as received, verbatim string (JSON payloads arrive already serialized —
|
|
3607
|
+
parse with `JSON.parse` when you need structured data). Empty string for bodyless
|
|
3608
|
+
methods.
|
|
3609
|
+
examples:
|
|
3610
|
+
- '{"orderId":"SO-1042","total":129.99}'
|
|
3611
|
+
clientAddress:
|
|
3612
|
+
type: string
|
|
3613
|
+
description: |-
|
|
3614
|
+
IP the request arrived from, as the Celigo edge saw it. IPv6 format; may be a
|
|
3615
|
+
private/loopback address (e.g. `::ffff:127.0.0.6`) when routed through an internal
|
|
3616
|
+
proxy rather than the public internet.
|
|
3617
|
+
examples:
|
|
3618
|
+
- ::ffff:127.0.0.6
|
|
3619
|
+
size:
|
|
3620
|
+
type: integer
|
|
3621
|
+
description: Byte size the runtime recorded for the request. Often `0` — this field is not consistently populated.
|
|
3622
|
+
examples:
|
|
3623
|
+
- 0
|
|
3624
|
+
response:
|
|
3625
|
+
type: object
|
|
3626
|
+
description: The outbound HTTP response the API produced.
|
|
3627
|
+
properties:
|
|
3628
|
+
statusCode:
|
|
3629
|
+
type: integer
|
|
3630
|
+
description: |-
|
|
3631
|
+
HTTP status code returned to the caller, as an **integer** here. Note the list endpoint
|
|
3632
|
+
(`GET /v1/apis/{_id}/logs`) exposes the same value as a string.
|
|
3633
|
+
examples:
|
|
3634
|
+
- 200
|
|
3635
|
+
statusMessage:
|
|
3636
|
+
type: string
|
|
3637
|
+
description: HTTP status reason phrase (`OK`, `Bad Request`, ...).
|
|
3638
|
+
examples:
|
|
3639
|
+
- OK
|
|
3640
|
+
headers:
|
|
3641
|
+
type: object
|
|
3642
|
+
description: Response headers sent to the caller.
|
|
3643
|
+
additionalProperties:
|
|
3644
|
+
type: string
|
|
3645
|
+
example:
|
|
3646
|
+
content-type: application/json
|
|
3647
|
+
x-request-id: abc123def456
|
|
3648
|
+
body:
|
|
3649
|
+
type: string
|
|
3650
|
+
description: Response body as sent. String form; parse as JSON/XML per the `content-type` header.
|
|
3651
|
+
examples:
|
|
3652
|
+
- '{"orderId":"SO-1042"}'
|
|
3653
|
+
size:
|
|
3654
|
+
type: integer
|
|
3655
|
+
description: Byte size of the serialized response body.
|
|
3656
|
+
examples:
|
|
3657
|
+
- 21
|
|
3658
|
+
responseTime:
|
|
3659
|
+
type: integer
|
|
3660
|
+
description: Total time in milliseconds from request arrival to response flush.
|
|
3661
|
+
examples:
|
|
3662
|
+
- 312
|
|
3663
|
+
inputToResponseBubble:
|
|
3664
|
+
type: object
|
|
3665
|
+
description: |-
|
|
3666
|
+
Builder-mode APIs only. Snapshot of the state handed to the response-mapping stage — the
|
|
3667
|
+
parsed input records plus any execution/configuration errors collected along the pipeline.
|
|
3668
|
+
Use this to debug response-mapping issues ("what did the mapper actually see?"). Absent on
|
|
3669
|
+
script-mode APIs.
|
|
3670
|
+
properties:
|
|
3671
|
+
sourceRecord:
|
|
3672
|
+
description: Array of records (or single-record object) that the response-mapper was given as input.
|
|
3673
|
+
executionErrors:
|
|
3674
|
+
type: array
|
|
3675
|
+
description: Runtime errors raised during processing (e.g. script exceptions, lookup failures).
|
|
3676
|
+
items:
|
|
3677
|
+
type: object
|
|
3678
|
+
additionalProperties: true
|
|
3679
|
+
configurationErrors:
|
|
3680
|
+
type: array
|
|
3681
|
+
description: Configuration errors detected before execution (e.g. missing required mapping fields).
|
|
3682
|
+
items:
|
|
3683
|
+
type: object
|
|
3684
|
+
additionalProperties: true
|
|
3685
|
+
key:
|
|
3686
|
+
type: string
|
|
3687
|
+
description: Echoes the `key` path parameter. Same structure as in the list (`<seq>-<id>-<status>-<method>`).
|
|
3688
|
+
examples:
|
|
3689
|
+
- 5481201053696-a10af1ade8fe477a847771c1e3716e36-200-POST
|
|
3690
|
+
id:
|
|
3691
|
+
type: string
|
|
3692
|
+
description: |-
|
|
3693
|
+
Shorter internal id for this log record. Appears embedded in the `key` string as the second
|
|
3694
|
+
segment. Not independently useful to the caller, but handy for correlating with audit or
|
|
3695
|
+
monitoring logs that reference only the short id.
|
|
3696
|
+
examples:
|
|
3697
|
+
- a10af1ade8fe477a847771c1e3716e36
|
|
3698
|
+
ApiRequestLogEntry:
|
|
3699
|
+
type: object
|
|
3700
|
+
description: One logged API request execution in the run history.
|
|
3701
|
+
required:
|
|
3702
|
+
- executionId
|
|
3703
|
+
- time
|
|
3704
|
+
- method
|
|
3705
|
+
- relativeURI
|
|
3706
|
+
- statusCode
|
|
3707
|
+
- timeTaken
|
|
3708
|
+
- logMode
|
|
3709
|
+
properties:
|
|
3710
|
+
executionId:
|
|
3711
|
+
type: string
|
|
3712
|
+
description: |-
|
|
3713
|
+
Identifier of this request execution (20-character lowercase hex).
|
|
3714
|
+
Pass it to `GET /v1/apis/{_id}/requests/{executionId}` to open the
|
|
3715
|
+
trace view when `logMode` is `detailed` or `debug`.
|
|
3716
|
+
examples:
|
|
3717
|
+
- a1b2c3d4e5f678901234
|
|
3718
|
+
time:
|
|
3719
|
+
type: string
|
|
3720
|
+
format: date-time
|
|
3721
|
+
description: When the request was received (UTC).
|
|
3722
|
+
examples:
|
|
3723
|
+
- '2026-05-15T13:42:11.234Z'
|
|
3724
|
+
method:
|
|
3725
|
+
type: string
|
|
3726
|
+
description: HTTP method of the request.
|
|
3727
|
+
examples:
|
|
3728
|
+
- POST
|
|
3729
|
+
relativeURI:
|
|
3730
|
+
type: string
|
|
3731
|
+
description: Path of the request, without scheme or host.
|
|
3732
|
+
examples:
|
|
3733
|
+
- /orders
|
|
3734
|
+
statusCode:
|
|
3735
|
+
type: integer
|
|
3736
|
+
description: HTTP status code the API responded with.
|
|
3737
|
+
examples:
|
|
3738
|
+
- 200
|
|
3739
|
+
traceKey:
|
|
3740
|
+
type: string
|
|
3741
|
+
description: Correlation/trace key resolved for this request.
|
|
3742
|
+
examples:
|
|
3743
|
+
- trace-abc-123
|
|
3744
|
+
remoteIP:
|
|
3745
|
+
type: string
|
|
3746
|
+
description: Client IP address the request came from.
|
|
3747
|
+
examples:
|
|
3748
|
+
- 192.168.1.5
|
|
3749
|
+
timeTaken:
|
|
3750
|
+
type: number
|
|
3751
|
+
description: Processing time in milliseconds.
|
|
3752
|
+
examples:
|
|
3753
|
+
- 142.7
|
|
3754
|
+
logMode:
|
|
3755
|
+
type: string
|
|
3756
|
+
enum:
|
|
3757
|
+
- basic
|
|
3758
|
+
- standard
|
|
3759
|
+
- detailed
|
|
3760
|
+
- debug
|
|
3761
|
+
x-enumDescriptions:
|
|
3762
|
+
basic: Request metadata only — no per-step trace data.
|
|
3763
|
+
standard: Request metadata plus summary step information.
|
|
3764
|
+
detailed: Full per-step trace logs, queryable via the trace view.
|
|
3765
|
+
debug: Temporary full-capture mode active while `logging.debugUntil` is in the future.
|
|
3766
|
+
description: |-
|
|
3767
|
+
Logging mode that was active when this request was processed.
|
|
3768
|
+
Determines trace availability — only `detailed` and `debug` produce
|
|
3769
|
+
per-step trace logs. Requests processed with `no_logging` produce no
|
|
3770
|
+
run-history rows at all.
|
|
3771
|
+
examples:
|
|
3772
|
+
- detailed
|
|
3773
|
+
ApiRunHistoryResponse:
|
|
3774
|
+
type: object
|
|
3775
|
+
description: Paginated API request run history.
|
|
3776
|
+
required:
|
|
3777
|
+
- requests
|
|
3778
|
+
properties:
|
|
3779
|
+
requests:
|
|
3780
|
+
type: array
|
|
3781
|
+
description: Logged request executions, newest first by default.
|
|
3782
|
+
items:
|
|
3783
|
+
$ref: '#/components/schemas/ApiRequestLogEntry'
|
|
3784
|
+
nextPageUrl:
|
|
3785
|
+
type:
|
|
3786
|
+
- string
|
|
3787
|
+
- 'null'
|
|
3788
|
+
description: |-
|
|
3789
|
+
URL to fetch the next page (carries the `next` cursor and
|
|
3790
|
+
`cursorExecutionId` tie-breaker); null when there is no next page.
|
|
3791
|
+
examples:
|
|
3792
|
+
- https://api.integrator.io/v1/apis/685021eda02a61042cee80ab/requests?pageSize=50&next=2026-05-15T13:42:11.234Z&cursorExecutionId=a1b2c3d4e5f678901234
|
|
3793
|
+
prevPageUrl:
|
|
3794
|
+
type:
|
|
3795
|
+
- string
|
|
3796
|
+
- 'null'
|
|
3797
|
+
description: URL to fetch the previous page; null when there is no previous page.
|
|
3798
|
+
ApiRequestTraceStep:
|
|
3799
|
+
type: object
|
|
3800
|
+
description: A step within an API request execution trace.
|
|
3801
|
+
required:
|
|
3802
|
+
- status
|
|
3803
|
+
- timeTaken
|
|
3804
|
+
- groupId
|
|
3805
|
+
- recordId
|
|
3806
|
+
- time
|
|
3807
|
+
properties:
|
|
3808
|
+
_expOrImpId:
|
|
3809
|
+
type: string
|
|
3810
|
+
description: |-
|
|
3811
|
+
Export, import, or builder resource-step identifier (`resStepId`) for
|
|
3812
|
+
the step. Builder bubble stages use the resource-step identifier
|
|
3813
|
+
rather than a MongoDB ObjectId.
|
|
3814
|
+
examples:
|
|
3815
|
+
- 67ee026136f4d1eeb529ad63
|
|
3816
|
+
status:
|
|
3817
|
+
type: string
|
|
3818
|
+
enum:
|
|
3819
|
+
- success
|
|
3820
|
+
- error
|
|
3821
|
+
- ignore
|
|
3822
|
+
x-enumDescriptions:
|
|
3823
|
+
success: Record processed successfully
|
|
3824
|
+
error: Record failed processing
|
|
3825
|
+
ignore: Record was skipped during processing
|
|
3826
|
+
description: Outcome status of the step.
|
|
3827
|
+
examples:
|
|
3828
|
+
- success
|
|
3829
|
+
stage:
|
|
3830
|
+
type: string
|
|
3831
|
+
description: Processing stage; present when `status` is `error` or `ignore`.
|
|
3832
|
+
examples:
|
|
3833
|
+
- mapping
|
|
3834
|
+
timeTaken:
|
|
3835
|
+
type: number
|
|
3836
|
+
description: Step processing time in milliseconds.
|
|
3837
|
+
examples:
|
|
3838
|
+
- 142
|
|
3839
|
+
groupId:
|
|
3840
|
+
type: string
|
|
3841
|
+
description: Group identifier for the step's records.
|
|
3842
|
+
examples:
|
|
3843
|
+
- 6449f2
|
|
3844
|
+
recordId:
|
|
3845
|
+
type: string
|
|
3846
|
+
description: Identifier of this record.
|
|
3847
|
+
examples:
|
|
3848
|
+
- 4a8e5c
|
|
3849
|
+
parentRecordId:
|
|
3850
|
+
type: string
|
|
3851
|
+
description: Identifier of the parent record when this step is a child row.
|
|
3852
|
+
examples:
|
|
3853
|
+
- a1b2c3
|
|
3854
|
+
time:
|
|
3855
|
+
type: string
|
|
3856
|
+
format: date-time
|
|
3857
|
+
description: Timestamp when the step ran (UTC).
|
|
3858
|
+
examples:
|
|
3859
|
+
- '2026-05-15T13:42:11.234Z'
|
|
3860
|
+
additionalProperties: true
|
|
3861
|
+
ApiTraceMetadataResponse:
|
|
3862
|
+
type: object
|
|
3863
|
+
description: Top-level execution steps for the trace view of an API request.
|
|
3864
|
+
required:
|
|
3865
|
+
- steps
|
|
3866
|
+
properties:
|
|
3867
|
+
steps:
|
|
3868
|
+
type: array
|
|
3869
|
+
description: Top-level execution steps for the trace view.
|
|
3870
|
+
items:
|
|
3871
|
+
$ref: '#/components/schemas/ApiRequestTraceStep'
|
|
3872
|
+
ApiRequestChildrenResponse:
|
|
3873
|
+
type: object
|
|
3874
|
+
description: Paginated child records under a parent record in an API request trace.
|
|
3875
|
+
required:
|
|
3876
|
+
- children
|
|
3877
|
+
properties:
|
|
3878
|
+
children:
|
|
3879
|
+
type: array
|
|
3880
|
+
description: Child step records (lookup / one-to-many expansions).
|
|
3881
|
+
items:
|
|
3882
|
+
$ref: '#/components/schemas/ApiRequestTraceStep'
|
|
3883
|
+
nextPageUrl:
|
|
3884
|
+
type:
|
|
3885
|
+
- string
|
|
3886
|
+
- 'null'
|
|
3887
|
+
description: URL to fetch the next page; null when there is no next page.
|
|
3888
|
+
prevPageUrl:
|
|
3889
|
+
type:
|
|
3890
|
+
- string
|
|
3891
|
+
- 'null'
|
|
3892
|
+
description: URL to fetch the previous page; null when there is no previous page.
|
|
3893
|
+
ApiLogDataRequest:
|
|
3894
|
+
type: object
|
|
3895
|
+
description: |-
|
|
3896
|
+
Query payload for retrieving decoded log data for a step within an API
|
|
3897
|
+
request execution. Same shape as the flow log-data query; for API Builder
|
|
3898
|
+
steps, `_expOrImpId` may be a MongoDB ObjectId or a builder resource-step
|
|
3899
|
+
identifier (`resStepId`).
|
|
3900
|
+
required:
|
|
3901
|
+
- _expOrImpId
|
|
3902
|
+
- stage
|
|
3903
|
+
- groupId
|
|
3904
|
+
- recordId
|
|
3905
|
+
properties:
|
|
3906
|
+
_expOrImpId:
|
|
3907
|
+
type: string
|
|
3908
|
+
description: Export, import, or builder resource-step identifier for the step.
|
|
3909
|
+
examples:
|
|
3910
|
+
- 67ee026136f4d1eeb529ad63
|
|
3911
|
+
stage:
|
|
3912
|
+
type: string
|
|
3913
|
+
description: Processing stage to fetch data for.
|
|
3914
|
+
examples:
|
|
3915
|
+
- mapping
|
|
3916
|
+
groupId:
|
|
3917
|
+
type: string
|
|
3918
|
+
description: Group identifier for the step's records.
|
|
3919
|
+
examples:
|
|
3920
|
+
- grp-001
|
|
3921
|
+
recordId:
|
|
3922
|
+
type: string
|
|
3923
|
+
description: Identifier of the record to fetch.
|
|
3924
|
+
examples:
|
|
3925
|
+
- rec-123
|
|
3926
|
+
ApiLogDataResponse:
|
|
3927
|
+
type: object
|
|
3928
|
+
description: Decoded log payload for a step, plus any collected error metadata.
|
|
3929
|
+
required:
|
|
3930
|
+
- logs
|
|
3931
|
+
- errors
|
|
3932
|
+
properties:
|
|
3933
|
+
logs:
|
|
3934
|
+
type: array
|
|
3935
|
+
description: |-
|
|
3936
|
+
Decoded log payload entries for the step. Large payloads are not inlined —
|
|
3937
|
+
such an entry carries an `externalReference[]`, each with a `source.s3Key`;
|
|
3938
|
+
pass that key to `GET /v1/apis/{_id}/requests/{executionId}/logs/signedURL`
|
|
3939
|
+
to download the full content.
|
|
3940
|
+
items:
|
|
3941
|
+
type: object
|
|
3942
|
+
properties:
|
|
3943
|
+
externalReference:
|
|
3944
|
+
type: array
|
|
3945
|
+
description: References to externally stored payload content, present for large payloads.
|
|
3946
|
+
items:
|
|
3947
|
+
type: object
|
|
3948
|
+
properties:
|
|
3949
|
+
source:
|
|
3950
|
+
type: object
|
|
3951
|
+
description: Location of the externally stored content.
|
|
3952
|
+
properties:
|
|
3953
|
+
s3Key:
|
|
3954
|
+
type: string
|
|
3955
|
+
description: Relative key to pass to the signed-URL endpoint.
|
|
3956
|
+
additionalProperties: true
|
|
3957
|
+
additionalProperties: true
|
|
3958
|
+
additionalProperties: true
|
|
3959
|
+
errors:
|
|
3960
|
+
type: array
|
|
3961
|
+
description: Error metadata collected while resolving the payload.
|
|
3962
|
+
items:
|
|
3963
|
+
type: object
|
|
3964
|
+
additionalProperties: true
|
|
3965
|
+
ApiSignedUrlResponse:
|
|
3966
|
+
type: object
|
|
3967
|
+
description: A short-lived signed URL for downloading a stored API request log payload object.
|
|
3968
|
+
required:
|
|
3969
|
+
- signedURL
|
|
3970
|
+
properties:
|
|
3971
|
+
signedURL:
|
|
3972
|
+
type: string
|
|
3973
|
+
description: Time-limited signed URL (about 120 seconds) to download the referenced log object.
|
|
3974
|
+
examples:
|
|
3975
|
+
- https://integrator-userdata-delete-30.s3.amazonaws.com/api-execution-logs/user/api/exec/group/file.log?Expires=1754046196&Signature=...
|
|
3976
|
+
DependencyEntry:
|
|
3977
|
+
type: object
|
|
3978
|
+
description: A single resource that depends on the queried resource.
|
|
3979
|
+
properties:
|
|
3980
|
+
id:
|
|
3981
|
+
type: string
|
|
3982
|
+
description: Unique identifier of the dependent resource.
|
|
3983
|
+
examples:
|
|
3984
|
+
- 61f92026dd053843b5d72350
|
|
3985
|
+
name:
|
|
3986
|
+
type: string
|
|
3987
|
+
description: Display name of the dependent resource.
|
|
3988
|
+
examples:
|
|
3989
|
+
- Import Orders to NetSuite
|
|
3990
|
+
paths:
|
|
3991
|
+
type: array
|
|
3992
|
+
description: |-
|
|
3993
|
+
Dot-notation paths within the dependent resource that reference
|
|
3994
|
+
the target resource. `[*]` denotes array elements.
|
|
3995
|
+
items:
|
|
3996
|
+
type: string
|
|
3997
|
+
examples:
|
|
3998
|
+
- - hooks.preSavePage._scriptId
|
|
3999
|
+
accessLevel:
|
|
4000
|
+
type: string
|
|
4001
|
+
description: The caller's access level on the dependent resource.
|
|
4002
|
+
examples:
|
|
4003
|
+
- manage
|
|
4004
|
+
dependencyIds:
|
|
4005
|
+
type: object
|
|
4006
|
+
description: |-
|
|
4007
|
+
Map of resource types to arrays of IDs that this dependent
|
|
4008
|
+
resource references on the target. Keys are singular or plural
|
|
4009
|
+
resource type strings; values are arrays of ID strings.
|
|
4010
|
+
additionalProperties:
|
|
4011
|
+
type: array
|
|
4012
|
+
items:
|
|
4013
|
+
type: string
|
|
4014
|
+
example:
|
|
4015
|
+
script:
|
|
4016
|
+
- 64ff4b21612a134bd2f45531
|
|
4017
|
+
required:
|
|
4018
|
+
- id
|
|
4019
|
+
- name
|
|
4020
|
+
- paths
|
|
4021
|
+
- accessLevel
|
|
4022
|
+
- dependencyIds
|
|
4023
|
+
DependencyResponse:
|
|
4024
|
+
type: object
|
|
4025
|
+
description: |
|
|
4026
|
+
Map of dependent-resource types to arrays of dependency entries.
|
|
4027
|
+
Keys are plural resource type strings (e.g. `flows`, `imports`,
|
|
4028
|
+
`connections`). An empty object `{}` means no dependents.
|
|
4029
|
+
additionalProperties:
|
|
4030
|
+
type: array
|
|
4031
|
+
items:
|
|
4032
|
+
$ref: '#/components/schemas/DependencyEntry'
|
|
4033
|
+
example:
|
|
4034
|
+
exports:
|
|
4035
|
+
- id: 64ff4b21612a134bd2f45534
|
|
4036
|
+
name: Bank FTP Export
|
|
4037
|
+
paths:
|
|
4038
|
+
- hooks.preSavePage._scriptId
|
|
4039
|
+
accessLevel: manage
|
|
4040
|
+
dependencyIds:
|
|
4041
|
+
script:
|
|
4042
|
+
- 64ff4b21612a134bd2f45531
|
|
4043
|
+
flows:
|
|
4044
|
+
- id: 64ff4b22612a134bd2f45538
|
|
4045
|
+
name: CAMT-053 to Celigo CAM Format
|
|
4046
|
+
paths:
|
|
4047
|
+
- pageGenerators[*]._exportId
|
|
4048
|
+
accessLevel: manage
|
|
4049
|
+
dependencyIds:
|
|
4050
|
+
export:
|
|
4051
|
+
- 64ff4b21612a134bd2f45534
|
|
4052
|
+
responses:
|
|
4053
|
+
401-unauthorized:
|
|
4054
|
+
description: |-
|
|
4055
|
+
Unauthorized. The request lacks a valid bearer token, or the provided token
|
|
4056
|
+
failed to authenticate.
|
|
4057
|
+
|
|
4058
|
+
Note: the 401 response is produced by the auth middleware **before** the
|
|
4059
|
+
request reaches the endpoint handler, so it does **not** follow the
|
|
4060
|
+
standard `{errors: [...]}` envelope. Instead the body is a bare
|
|
4061
|
+
`{message: string}` object with no `code`, no `errors` array. Callers
|
|
4062
|
+
handling 401s should key off the HTTP status and the `message` string,
|
|
4063
|
+
not try to destructure an `errors[]`.
|
|
4064
|
+
content:
|
|
4065
|
+
application/json:
|
|
4066
|
+
schema:
|
|
4067
|
+
type: object
|
|
4068
|
+
properties:
|
|
4069
|
+
message:
|
|
4070
|
+
type: string
|
|
4071
|
+
description: |-
|
|
4072
|
+
Human-readable description of the auth failure. Known values:
|
|
4073
|
+
- `"Unauthorized"` — no `Authorization` header on the request.
|
|
4074
|
+
- `"Bearer Authentication Failed"` — header present but token
|
|
4075
|
+
is invalid, revoked, or expired.
|
|
4076
|
+
required:
|
|
4077
|
+
- message
|
|
4078
|
+
examples:
|
|
4079
|
+
missing_token:
|
|
4080
|
+
summary: No Authorization header sent
|
|
4081
|
+
value:
|
|
4082
|
+
message: Unauthorized
|
|
4083
|
+
invalid_token:
|
|
4084
|
+
summary: Bearer token invalid or revoked
|
|
4085
|
+
value:
|
|
4086
|
+
message: Bearer Authentication Failed
|
|
4087
|
+
400-bad-request:
|
|
4088
|
+
description: |
|
|
4089
|
+
Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
|
|
4090
|
+
content:
|
|
4091
|
+
application/json:
|
|
4092
|
+
schema:
|
|
4093
|
+
$ref: '#/components/schemas/Error'
|
|
4094
|
+
examples:
|
|
4095
|
+
default:
|
|
4096
|
+
value:
|
|
4097
|
+
errors:
|
|
4098
|
+
- code: invalid_request
|
|
4099
|
+
message: The request body failed validation.
|
|
4100
|
+
422-unprocessable-entity:
|
|
4101
|
+
description: |
|
|
4102
|
+
Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
|
|
4103
|
+
content:
|
|
4104
|
+
application/json:
|
|
4105
|
+
schema:
|
|
4106
|
+
$ref: '#/components/schemas/Error'
|
|
4107
|
+
examples:
|
|
4108
|
+
default:
|
|
4109
|
+
value:
|
|
4110
|
+
errors:
|
|
4111
|
+
- code: unprocessable_entity
|
|
4112
|
+
message: The request could not be processed due to a semantic error.
|
|
4113
|
+
404-not-found:
|
|
4114
|
+
description: |
|
|
4115
|
+
Not found. The requested resource does not exist or is not visible to the caller.
|
|
4116
|
+
content:
|
|
4117
|
+
application/json:
|
|
4118
|
+
schema:
|
|
4119
|
+
$ref: '#/components/schemas/Error'
|
|
4120
|
+
examples:
|
|
4121
|
+
default:
|
|
4122
|
+
value:
|
|
4123
|
+
errors:
|
|
4124
|
+
- code: not_found
|
|
4125
|
+
message: The requested resource was not found.
|
|
4126
|
+
403-forbidden:
|
|
4127
|
+
description: |
|
|
4128
|
+
Forbidden. The authenticated caller does not have permission to perform this operation.
|
|
4129
|
+
content:
|
|
4130
|
+
application/json:
|
|
4131
|
+
schema:
|
|
4132
|
+
$ref: '#/components/schemas/Error'
|
|
4133
|
+
examples:
|
|
4134
|
+
default:
|
|
4135
|
+
value:
|
|
4136
|
+
errors:
|
|
4137
|
+
- code: forbidden
|
|
4138
|
+
message: You do not have permission to access this resource.
|
|
4139
|
+
x-enable-proxy: true
|
|
4140
|
+
x-internal: false
|