timzinin-com Container Exception Evidence API
The Container Exception Evidence API from timzinin-com — 1 operation(s) for container exception evidence.
The Container Exception Evidence API from timzinin-com — 1 operation(s) for container exception evidence.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/timzinin-com:timzinin-com-container-exception-evidence-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Zinin M2M Hub Container Exception Evidence API
description: Pay-per-call data & tool APIs
version: 1.0.0
x-guidance: 'Zinin M2M Hub — pay-per-call data & tool APIs for AI agents. Each POST /api/{slug} operation below is a distinct paid tool: call GET /api/{slug}/schema first for the exact input shape, then POST with a signed PAYMENT-SIGNATURE header (x402 v2, USDC — see x-payment-info per operation) or omit it to receive a 402 with full payment requirements in the PAYMENT-REQUIRED header. The same catalog is also available as MCP JSON-RPC tool bundles at POST /mcp/{bundle} — see GET /.well-known/x402 for the list of bundles.'
tags:
- name: Container Exception Evidence
paths:
/api/container-exception-evidence:
post:
summary: Container Delay & Free-Time Evidence Monitor
description: Turn buyer-authorized container event snapshots into deterministic ETA, milestone, free-time, cost-exposure, confidence, limitation, and human-review evidence. No carrier scraping, reference fetching, legal verdict, automatic claim, or provider key.
operationId: call_container_exception_evidence
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.020000'
protocols:
- x402: {}
network: eip155:8453
payTo: '0x409D32aD39C02BC9B23a8b2d447532ed801b12dE'
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
requestBody:
required: true
content:
application/json:
schema:
title: Container Exception Evidence input
description: Compare customer-authorized container events with the last healthy baseline. This Actor never fetches references or accepts provider credentials.
type: object
schemaVersion: 1
additionalProperties: false
required:
- watchId
- mode
- sourceStatus
- rightsAttestation
- containers
- events
- tariffAssumptions
properties:
watchId:
title: Watch ID
description: Stable identifier for one customer-owned monitoring series.
type: string
editor: textfield
minLength: 1
maxLength: 128
pattern: ^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$
prefill: customer-watch-1
example: customer-watch-1
mode:
title: Run mode
description: Use snapshot for customer events or synthetic_demo for the one exact canonical zero-provider public example. The demo accepts only the published fixture values; runtime rejects any changed field, extra row, customer row, or secret before effects.
type: string
editor: select
enum:
- snapshot
- synthetic_demo
enumTitles:
- Customer snapshot
- Synthetic demo
prefill: snapshot
example: snapshot
sourceStatus:
title: Source completeness
description: Declare whether this customer-supplied snapshot is complete, partial, or unavailable.
type: string
editor: select
enum:
- complete
- partial
- unavailable
enumTitles:
- Complete
- Partial
- Unavailable
prefill: complete
example: complete
rightsAttestation:
title: Rights attestation
description: Required customer declaration. Apify Input Schema v1 can serialize false here; the Actor runtime requires all three declarations to be exactly true and rejects otherwise before provider, Dataset, billing, state, lock, intent, or delivery effects. Do not submit credentials, secrets, or data you are not authorized to use.
type: object
editor: json
additionalProperties: false
required:
- customerControlsOrIsAuthorizedToUseData
- noCredentialsOrSecretsSubmitted
- unfetchedReferencePolicyAccepted
- attestedAt
- attestorId
properties:
customerControlsOrIsAuthorizedToUseData:
title: Authorized data
description: Must be true. Input Schema v1 cannot enforce true; runtime rejects false before later effects.
type: boolean
noCredentialsOrSecretsSubmitted:
title: No credentials or secrets
description: Must be true. Input Schema v1 cannot enforce true; runtime rejects false before later effects.
type: boolean
unfetchedReferencePolicyAccepted:
title: Unfetched reference policy
description: Must be true. Input Schema v1 cannot enforce true; runtime rejects false before later effects.
type: boolean
attestedAt:
title: Attested at
description: RFC 3339 timestamp with an explicit offset, not later than the Actor run.
type: string
pattern: ^(?:\d{4}-\d{2}-\d{2})T(?:\d{2}:\d{2}:\d{2})(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$
attestorId:
title: Attestor ID
description: Customer-controlled opaque operator identifier; never returned raw.
type: string
minLength: 1
maxLength: 128
pattern: ^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$
example:
customerControlsOrIsAuthorizedToUseData: true
noCredentialsOrSecretsSubmitted: true
unfetchedReferencePolicyAccepted: true
attestedAt: '2026-08-09T09:00:00Z'
attestorId: customer-operator-1
containers:
title: Containers
description: At least one and at most 1,000 closed records. Snapshot accepts customer containers; synthetic_demo accepts exactly one fixed Actor-owned Synthetic Ocean record and rejects substitutions before effects. BOL and booking values are never returned raw.
type: array
editor: json
minItems: 1
maxItems: 1000
items:
type: object
additionalProperties: false
required:
- containerNumber
properties:
containerNumber:
title: Container number
description: Uppercase ISO 6346 number with a valid check digit.
type: string
pattern: ^[A-Z]{4}[0-9]{7}$
carrier:
title: Carrier
description: Optional customer-declared carrier label.
type: string
nullable: true
minLength: 1
maxLength: 128
pattern: ^[A-Za-z0-9][A-Za-z0-9._:/ -]{0,127}$
billOfLading:
title: Bill of lading
description: Optional private customer value; only a domain-separated digest may appear in output.
type: string
nullable: true
minLength: 1
maxLength: 128
pattern: ^[A-Za-z0-9][A-Za-z0-9._:/ -]{0,127}$
bookingNumber:
title: Booking number
description: Optional private customer value; only a domain-separated digest may appear in output.
type: string
nullable: true
minLength: 1
maxLength: 128
pattern: ^[A-Za-z0-9][A-Za-z0-9._:/ -]{0,127}$
promisedEta:
title: Promised ETA
description: Optional RFC 3339 ETA with an explicit offset; runtime validates the timestamp.
type: string
nullable: true
pattern: ^(?:\d{4}-\d{2}-\d{2})T(?:\d{2}:\d{2}:\d{2})(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$
freeTimeEnd:
title: Free-time end
description: Optional RFC 3339 free-time deadline with an explicit offset; runtime validates the timestamp.
type: string
nullable: true
pattern: ^(?:\d{4}-\d{2}-\d{2})T(?:\d{2}:\d{2}:\d{2})(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$
originUnlocode:
title: Origin UN/LOCODE
description: Optional five-character UN/LOCODE syntax.
type: string
nullable: true
pattern: ^[A-Z]{2}[A-Z0-9]{3}$
destinationUnlocode:
title: Destination UN/LOCODE
description: Optional five-character UN/LOCODE syntax.
type: string
nullable: true
pattern: ^[A-Z]{2}[A-Z0-9]{3}$
prefill:
- containerNumber: MSCU1234566
carrier: customer-declared-carrier
billOfLading: null
bookingNumber: null
promisedEta: '2026-08-12T12:00:00Z'
freeTimeEnd: '2026-08-15T12:00:00Z'
originUnlocode: NLRTM
destinationUnlocode: USLAX
example:
- containerNumber: MSCU1234566
carrier: customer-declared-carrier
billOfLading: null
bookingNumber: null
promisedEta: '2026-08-12T12:00:00Z'
freeTimeEnd: '2026-08-15T12:00:00Z'
originUnlocode: NLRTM
destinationUnlocode: USLAX
events:
title: Container events
description: At least one and at most 50,000 events. Snapshot accepts customer events; synthetic_demo accepts exactly the two fixed Actor-owned events in the public fixture and rejects substitutions or extra rows before effects. Safe references are validated but never fetched.
type: array
editor: json
minItems: 1
maxItems: 50000
items:
type: object
additionalProperties: false
required:
- eventId
- containerNumber
- eventType
- eventTime
- receivedAt
- source
properties:
eventId:
title: Event ID
description: Customer event identifier unique within the container timeline.
type: string
minLength: 1
maxLength: 128
pattern: ^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$
containerNumber:
title: Container number
description: Must match one container record in this input.
type: string
pattern: ^[A-Z]{4}[0-9]{7}$
eventType:
title: Event type
description: Closed container milestone or customer event type.
type: string
enum:
- booked
- received_at_terminal
- gate_in
- loaded
- transshipment
- discharged
- available_for_pickup
- gate_out
- picked_up
- empty_returned
- delivered
- eta_update
- customer_milestone
eventTime:
title: Event time
description: RFC 3339 event timestamp with an explicit offset; runtime validates the timestamp.
type: string
pattern: ^(?:\d{4}-\d{2}-\d{2})T(?:\d{2}:\d{2}:\d{2})(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$
receivedAt:
title: Received at
description: RFC 3339 receipt timestamp, not earlier than eventTime; runtime validates the timestamp.
type: string
pattern: ^(?:\d{4}-\d{2}-\d{2})T(?:\d{2}:\d{2}:\d{2})(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$
locationUnlocode:
title: Location UN/LOCODE
description: Optional observed location syntax.
type: string
nullable: true
pattern: ^[A-Z]{2}[A-Z0-9]{3}$
plannedLocationUnlocode:
title: Planned location UN/LOCODE
description: Optional planned location syntax.
type: string
nullable: true
pattern: ^[A-Z]{2}[A-Z0-9]{3}$
plannedTime:
title: Planned time
description: Optional RFC 3339 planned time; only eta_update may use a non-null value and runtime validates it.
type: string
nullable: true
pattern: ^(?:\d{4}-\d{2}-\d{2})T(?:\d{2}:\d{2}:\d{2})(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$
source:
title: Source label
description: Customer-declared provenance label, not a provider URL or credential.
type: string
minLength: 1
maxLength: 128
pattern: '^[A-Za-z0-9][A-Za-z0-9._: -]{0,127}$'
reference:
title: Safe reference
description: 'Optional ref: identifier or restricted HTTPS reference. It is never fetched.'
type: string
nullable: true
minLength: 1
maxLength: 256
prefill:
- eventId: customer-event-1
containerNumber: MSCU1234566
eventType: gate_in
eventTime: '2026-08-08T09:00:00Z'
receivedAt: '2026-08-08T09:05:00Z'
locationUnlocode: NLRTM
plannedLocationUnlocode: null
plannedTime: null
source: customer-system
reference: ref:customer-evidence-1
example:
- eventId: customer-event-1
containerNumber: MSCU1234566
eventType: gate_in
eventTime: '2026-08-08T09:00:00Z'
receivedAt: '2026-08-08T09:05:00Z'
locationUnlocode: NLRTM
plannedLocationUnlocode: null
plannedTime: null
source: customer-system
reference: ref:customer-evidence-1
tariffAssumptions:
title: Tariff assumptions
description: Customer-supplied USD/day assumptions. No terminal calendar or carrier tariff is fetched.
type: object
editor: json
additionalProperties: false
required:
- currency
- demurragePerDay
- detentionPerDay
properties:
currency:
title: Currency
description: V1 accepts USD only.
type: string
enum:
- USD
demurragePerDay:
title: Demurrage per day
description: Customer assumption in USD/day, up to four decimal places at runtime.
type: number
minimum: 0
maximum: 1000000
detentionPerDay:
title: Detention per day
description: Customer assumption in USD/day, up to four decimal places at runtime.
type: number
minimum: 0
maximum: 1000000
prefill:
currency: USD
demurragePerDay: 0
detentionPerDay: 0
example:
currency: USD
demurragePerDay: 75
detentionPerDay: 50
continuationState:
title: Caller-carried continuation state
description: Optional exact nextContinuationState from a previous successful complete run. The Actor does not store this state in a named KVS; pass it back to compare the next customer snapshot.
type: object
nullable: true
editor: json
responses:
'200':
description: Actor run succeeded and payment settled
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
description: Actor output items — shape is actor-specific (varies per tool); see this operation's own requestBody schema/description for what the underlying actor produces.
meta:
type: object
properties:
run_ms:
type: integer
description: Actor run duration in milliseconds
item_count:
type: integer
description: len(results)
settled:
type: boolean
description: Whether the x402 payment was confirmed settled by the facilitator
transaction:
type:
- string
- 'null'
description: On-chain settlement transaction hash, null if unsettled
required:
- run_ms
- item_count
- settled
- transaction
required:
- results
- meta
'400':
description: Malformed PAYMENT-SIGNATURE header or request body
'402':
description: Payment required or invalid — see PAYMENT-REQUIRED header
'409':
description: Payment payload already used
'502':
description: Actor run failed
'504':
description: Actor run timed out
tags:
- Container Exception Evidence