Appearance
API Calls
Base: https://api.g3nretailstack.com/ipm
Source of truth: /internal-docs/ipm-openapi.yaml → /ipm/openapi.yaml
Notes: samples are schema-derived placeholders. Replace placeholder values (ORGCODE, SESSION_GUID, etc.) with real values.
Inventory
| Method | Path | Summary | Request schema | Response schema |
|---|---|---|---|---|
| POST | /bulk/export/continue | Continue a bulk export job using the previous cursor | BulkExportContinueRequest | Envelope |
| POST | /bulk/export/create | Create a bulk export job | BulkExportCreateRequest | Envelope |
| POST | /bulk/import/commit | Commit a bulk import job after upload | BulkImportCommitRequest | Envelope |
| POST | /bulk/import/continue | Continue a bulk import job from the last processed line | BulkImportContinueRequest | Envelope |
| POST | /bulk/import/create | Create a bulk import job | BulkImportCreateRequest | Envelope |
| POST | /bulk/job/get | Get bulk job status | BulkJobGetRequest | Envelope |
| POST | /bulk/job/list | List bulk jobs | BulkJobListRequest | Envelope |
| POST | /cdc/list | List CDC events | CdcListRequest | Envelope |
| POST | /event/catalog/list | List event catalog entries | EventCatalogListRequest | Envelope |
| POST | /export/contract/list | List export contracts aligned to event streams | ExportContractListRequest | Envelope |
| POST | /kpi/alert | Emit KPI alert (optionally sends inbox notification) | KpiAlertRequest | Envelope |
| POST | /kpi/query | Query KPI snapshots | KpiQueryRequest | Envelope |
| POST | /kpi/record | Record KPI snapshot | KpiRecordRequest | Envelope |
| POST | /lifecycle/list | List lifecycle/state-machine entries | LifecycleListRequest | Envelope |
| POST | /pagination/get | Fetch pagination conventions | PaginationGetRequest | Envelope |
| POST | /specimen/get | Fetch specimen payloads | SpecimenGetRequest | Envelope |
| GET | /stat | Health check | None | Envelope |
| POST | /webhook/create | Create a webhook subscription | WebhookCreateRequest | Envelope |
| POST | /webhook/get | Get a webhook | WebhookGetRequest | Envelope |
| POST | /webhook/list | List webhooks | WebhookListRequest | Envelope |
| POST | /webhook/replay | Replay webhook deliveries from the event store | WebhookReplayRequest | Envelope |
| POST | /webhook/status/set | Update webhook status | WebhookStatusSetRequest | Envelope |
Call details
POST /bulk/export/continue
Purpose: Continue a bulk export job using the previous cursor
Notes: Continue a bulk export job using the previous cursor. Tenant routes require x-orgcode; /stat health checks do not. Route class Tier D (p95 300ms, p99 600ms).
Request schema: BulkExportContinueRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"request_context": {
"orgcode": "ORGCODE",
"actor": "string",
"context_source": "session"
},
"reason": "example",
"source_refs": [
{
"kind": "string",
"id": "string"
}
],
"job_id": "string"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"job": {
"job_id": "string",
"job_type": "import",
"target": "events",
"format": "ndjson",
"status": "awaiting_upload",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /bulk/export/continue",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /bulk/export/create
Purpose: Create a bulk export job
Notes: Create a bulk export job. Tenant routes require x-orgcode; /stat health checks do not. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).
Request schema: BulkExportCreateRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"request_context": {
"orgcode": "ORGCODE",
"actor": "string",
"context_source": "session"
},
"reason": "example",
"source_refs": [
{
"kind": "string",
"id": "string"
}
]
}Sample response (shape-only)
json
{
"success": true,
"data": {
"job": {
"job_id": "string",
"job_type": "import",
"target": "events",
"format": "ndjson",
"status": "awaiting_upload",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /bulk/export/create",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /bulk/import/commit
Purpose: Commit a bulk import job after upload
Notes: Commit a bulk import job after upload. Tenant routes require x-orgcode; /stat health checks do not. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).
Request schema: BulkImportCommitRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"request_context": {
"orgcode": "ORGCODE",
"actor": "string",
"context_source": "session"
},
"job_id": "string",
"expected_revision": "string"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"job": {
"job_id": "string",
"job_type": "import",
"target": "events",
"format": "ndjson",
"status": "awaiting_upload",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /bulk/import/commit",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /bulk/import/continue
Purpose: Continue a bulk import job from the last processed line
Notes: Continue a bulk import job from the last processed line. Tenant routes require x-orgcode; /stat health checks do not. Route class Tier D (p95 300ms, p99 600ms).
Request schema: BulkImportContinueRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"request_context": {
"orgcode": "ORGCODE",
"actor": "string",
"context_source": "session"
},
"reason": "example",
"source_refs": [
{
"kind": "string",
"id": "string"
}
],
"job_id": "string"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"job": {
"job_id": "string",
"job_type": "import",
"target": "events",
"format": "ndjson",
"status": "awaiting_upload",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /bulk/import/continue",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /bulk/import/create
Purpose: Create a bulk import job
Notes: Create a bulk import job. Tenant routes require x-orgcode; /stat health checks do not. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).
Request schema: BulkImportCreateRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"request_context": {
"orgcode": "ORGCODE",
"actor": "string",
"context_source": "session"
},
"reason": "example",
"source_refs": [
{
"kind": "string",
"id": "string"
}
]
}Sample response (shape-only)
json
{
"success": true,
"data": {
"job": {
"job_id": "string",
"job_type": "import",
"target": "events",
"format": "ndjson",
"status": "awaiting_upload",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
},
"upload_url": "string"
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /bulk/import/create",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /bulk/job/get
Purpose: Get bulk job status
Notes: Get bulk job status. Tenant routes require x-orgcode; /stat health checks do not. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier B (p95 300ms).
Request schema: BulkJobGetRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"job_id": "string"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"job": {
"job_id": "string",
"job_type": "import",
"target": "events",
"format": "ndjson",
"status": "awaiting_upload",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
},
"download_url": "string",
"report_url": "string"
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /bulk/job/get",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /bulk/job/list
Purpose: List bulk jobs
Notes: List bulk jobs. Tenant routes require x-orgcode; /stat health checks do not. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).
Request schema: BulkJobListRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"status": "active",
"job_type": "string",
"limit": 8
}Sample response (shape-only)
json
{
"success": true,
"data": {
"items": [
{
"job_id": "string",
"job_type": "import",
"target": "events",
"format": "ndjson",
"status": "awaiting_upload",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
}
],
"next_token": {}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /bulk/job/list",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /cdc/list
Purpose: List CDC events
Notes: List CDC events. Tenant routes require x-orgcode; /stat health checks do not. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier C (p95 150ms, p99 400ms).
Request schema: CdcListRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"service": "string",
"logical_guid": "LOGICAL_GUID",
"channel_code": "pos_generic"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"items": [
{}
],
"next_token": {}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /cdc/list",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /event/catalog/list
Purpose: List event catalog entries
Notes: List event catalog entries. Tenant routes require x-orgcode; /stat health checks do not. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).
Request schema: EventCatalogListRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"service": "string",
"action": "string",
"action_prefix": "string"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"items": [
{
"service": "string",
"action": "string",
"schema_url": "string"
}
],
"next_token": {}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /event/catalog/list",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /export/contract/list
Purpose: List export contracts aligned to event streams
Notes: List export contracts aligned to event streams. Tenant routes require x-orgcode; /stat health checks do not. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).
Request schema: ExportContractListRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"service": "string",
"limit": 8,
"next_token": {}
}Sample response (shape-only)
json
{
"success": true,
"data": {
"contracts": [
{
"service": "string",
"stream": "events",
"format": "ndjson",
"partitioning": [
{}
],
"actions": [
{}
]
}
],
"next_token": {}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /export/contract/list",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /kpi/alert
Purpose: Emit KPI alert (optionally sends inbox notification)
Notes: Emit KPI alert (optionally sends inbox notification). Tenant routes require x-orgcode; /stat health checks do not. Route class Tier D (p95 1500ms, p99 3000ms).
Request schema: KpiAlertRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"request_context": {
"orgcode": "ORGCODE",
"actor": "string",
"context_source": "session"
},
"reason": "example",
"source_refs": [
{
"kind": "string",
"id": "string"
}
],
"alert": {
"kpi_code": "CODE1",
"value": 0,
"threshold": {
"comparator": "gt",
"value": 0
},
"bucket": "hourly",
"bucket_start": "2026-01-01T00:00:00Z",
"bucket_end": "2026-01-01T00:00:00Z"
}
}Sample response (shape-only)
json
{
"success": true,
"data": {
"alert": {
"alert_id": "string",
"kpi_code": "CODE1",
"value": 0,
"threshold": {
"comparator": "gt",
"value": 0
},
"scope": "org",
"bucket": "hourly",
"bucket_start": "2026-01-01T00:00:00Z",
"bucket_end": "2026-01-01T00:00:00Z"
}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /kpi/alert",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /kpi/query
Purpose: Query KPI snapshots
Notes: Query KPI snapshots. Tenant routes require x-orgcode; /stat health checks do not. Route class Tier C (p95 1200ms, p99 2500ms).
Request schema: KpiQueryRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"kpi_code": "CODE1",
"bucket": "hourly",
"from_utc": "2026-01-01T00:00:00Z",
"to_utc": "2026-01-01T00:00:00Z"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"series": [
{
"kpi_id": "string",
"kpi_code": "CODE1",
"scope": "org",
"bucket": "hourly",
"bucket_start": "2026-01-01T00:00:00Z",
"bucket_end": "2026-01-01T00:00:00Z",
"value": 0
}
],
"next_token": {}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /kpi/query",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /kpi/record
Purpose: Record KPI snapshot
Notes: Record KPI snapshot. Tenant routes require x-orgcode; /stat health checks do not. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 1500ms, p99 3000ms).
Request schema: KpiRecordRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"request_context": {
"orgcode": "ORGCODE",
"actor": "string",
"context_source": "session"
},
"reason": "example",
"source_refs": [
{
"kind": "string",
"id": "string"
}
],
"kpi": {
"kpi_code": "CODE1",
"bucket": "hourly",
"bucket_start": "2026-01-01T00:00:00Z",
"bucket_end": "2026-01-01T00:00:00Z",
"value": 0
}
}Sample response (shape-only)
json
{
"success": true,
"data": {
"kpi": {
"kpi_id": "string",
"kpi_code": "CODE1",
"scope": "org",
"bucket": "hourly",
"bucket_start": "2026-01-01T00:00:00Z",
"bucket_end": "2026-01-01T00:00:00Z",
"value": 0
}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /kpi/record",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /lifecycle/list
Purpose: List lifecycle/state-machine entries
Notes: List lifecycle/state-machine entries. Tenant routes require x-orgcode; /stat health checks do not. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).
Request schema: LifecycleListRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"service": "string",
"name": "string"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"items": [
{
"name": "string",
"service": "string",
"states": [
{}
]
}
],
"version": "string"
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /lifecycle/list",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /pagination/get
Purpose: Fetch pagination conventions
Notes: Fetch pagination conventions. Tenant routes require x-orgcode; /stat health checks do not. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier B (p95 300ms).
Request schema: PaginationGetRequest Response schema: Envelope
Sample request (schema-derived)
json
{}Sample response (shape-only)
json
{
"success": true,
"data": {},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /pagination/get",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /specimen/get
Purpose: Fetch specimen payloads
Notes: Fetch specimen payloads. Tenant routes require x-orgcode; /stat health checks do not. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier B (p95 300ms).
Request schema: SpecimenGetRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"name": "string"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"name": "string",
"specimen": {},
"specimens": {}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /specimen/get",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}GET /stat
Purpose: Health check
Notes: Health check. Tenant routes require x-orgcode; /stat health checks do not. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier A (p95 500ms).
Request schema: None Response schema: Envelope
Sample request (schema-derived)
json
{}Sample response (shape-only)
json
{
"success": true,
"data": {
"service": "string",
"status": "active"
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "GET /stat",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /webhook/create
Purpose: Create a webhook subscription
Notes: Create a webhook subscription. Tenant routes require x-orgcode; /stat health checks do not. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).
Request schema: WebhookCreateRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"request_context": {
"orgcode": "ORGCODE",
"actor": "string",
"context_source": "session"
},
"reason": "example",
"source_refs": [
{
"kind": "string",
"id": "string"
}
],
"endpoint_url": "string",
"event_filters": [
{
"service": "string"
}
]
}Sample response (shape-only)
json
{
"success": true,
"data": {
"webhook_id": "string",
"orgcode": "ORGCODE",
"endpoint_url": "string",
"status": "active",
"event_filters": [
{
"service": null
}
],
"signing_algorithm": "hmac-sha256",
"secret_last4": "string",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /webhook/create",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /webhook/get
Purpose: Get a webhook
Notes: Get a webhook. Tenant routes require x-orgcode; /stat health checks do not. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier B (p95 300ms).
Request schema: WebhookGetRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"webhook_id": "string"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"webhook": {
"webhook_id": "string",
"orgcode": "ORGCODE",
"endpoint_url": "string",
"status": "active",
"event_filters": [
{
"service": null
}
],
"signing_algorithm": "hmac-sha256",
"secret_last4": "string",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /webhook/get",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /webhook/list
Purpose: List webhooks
Notes: List webhooks. Tenant routes require x-orgcode; /stat health checks do not. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).
Request schema: WebhookListRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"limit": 8,
"next_token": {}
}Sample response (shape-only)
json
{
"success": true,
"data": {
"items": [
{
"webhook_id": "string",
"orgcode": "ORGCODE",
"endpoint_url": "string",
"status": "active",
"event_filters": [
{}
],
"signing_algorithm": "hmac-sha256",
"secret_last4": "string",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
}
],
"next_token": {}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /webhook/list",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /webhook/replay
Purpose: Replay webhook deliveries from the event store
Notes: Replay webhook deliveries from the event store. Tenant routes require x-orgcode; /stat health checks do not. Route class Tier D (p95 500ms, p99 1000ms).
Request schema: WebhookReplayRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"request_context": {
"orgcode": "ORGCODE",
"actor": "string",
"context_source": "session"
},
"reason": "example",
"source_refs": [
{
"kind": "string",
"id": "string"
}
],
"webhook_id": "string"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"webhook_id": "string",
"delivered": 0,
"failed": 0
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /webhook/replay",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}POST /webhook/status/set
Purpose: Update webhook status
Notes: Update webhook status. Tenant routes require x-orgcode; /stat health checks do not. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).
Request schema: WebhookStatusSetRequest Response schema: Envelope
Sample request (schema-derived)
json
{
"request_context": {
"orgcode": "ORGCODE",
"actor": "string",
"context_source": "session"
},
"reason": "example",
"source_refs": [
{
"kind": "string",
"id": "string"
}
],
"webhook_id": "string",
"status": "active",
"expected_revision": "string"
}Sample response (shape-only)
json
{
"success": true,
"data": {
"webhook": {
"webhook_id": "string",
"orgcode": "ORGCODE",
"endpoint_url": "string",
"status": "active",
"event_filters": [
{
"service": null
}
],
"signing_algorithm": "hmac-sha256",
"secret_last4": "string",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"revision": "string"
}
},
"build": {
"build_id": "MONDAY-0000000000"
},
"stats": {
"call": "POST /webhook/status/set",
"service": "ipm",
"timestamp_utc": "2026-01-01T00:00:00Z"
}
}