MCP-Server

Ship24 Tracking

com.ship24/tracking-mcp
Business & Betrieb Commerce & Retail Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Tracks parcels across many carriers, returning shipment status, delivery events, statistics, persistent trackers, and webhook histories.

bulk_create_trackers
Bulk Create Trackers
Creates up to 100 trackers in one request. Each tracker object accepts the same fields as create_tracker — see that tool for field details. Not fully idempotent: retrying a failed bulk request may partially create trackers. Returns counts of created, ignored (duplicate), and failed trackers plus per-item details.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackers'], 'properties': {'trackers': {'type': 'array', 'items': {'type': 'object', 'required': ['trackingNumber'], 'properties': {'settings': {'type': 'object', 'properties': {'restrictTrackingToCourierCode': {'type': 'boolean', 'description': 'When true, tracking is restricted to the specified courierCode(s) only.'}}}, 'courierCode': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3, 'description': "Courier codes for this tracker (max 3). Use get_couriers for valid codes. IMPORTANT: Check each courier's requiredFields array — any listed fields should be provided, otherwise the courier may not return any tracking data."}, 'courierName': {'type': 'string'}, 'orderNumber': {'type': 'string'}, 'trackingUrl': {'type': 'string', 'format': 'uri'}, 'shippingDate': {'type': 'string'}, 'trackingNumber': {'type': 'string', 'minLength': 1}, 'clientTrackerId': {'type': 'string'}, 'originCountryCode': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'shipmentReference': {'type': 'string'}, 'destinationPostCode': {'type': 'string'}, 'destinationCountryCode': {'type': 'string', 'maxLength': 2, 'minLength': 2}}}, 'maxItems': 100, 'minItems': 1, 'description': 'Array of tracker objects to create (minimum 1, maximum 100).'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'data': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'errors': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'code': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 error code.'}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Error message.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Why this item failed. Null unless itemStatus is error.'}, 'tracker': {'anyOf': [{'type': 'object', 'properties': {'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the tracker was created.'}, 'isTracked': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means tracking stopped (delivered, inactive or unsubscribed); existing results remain.'}, 'trackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 tracker identifier; pass this to get_tracking_results.'}, 'courierCode': {'anyOf': [{'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}]}, {'type': 'null'}], 'description': 'Courier code(s) pinned on this tracker.'}, 'isSubscribed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means the tracker is archived and no longer used for tracking.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Tracking number this tracker follows.'}, 'clientTrackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own tracker identifier, usable with searchBy=clientTrackerId.'}, 'shipmentReference': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own shipment reference, as supplied at creation.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'The created or existing tracker.'}, 'inputData': {'description': 'The submitted tracker payload, echoed back.'}, 'itemStatus': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'created | existing | error.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Per-item outcome, in submission order. Null when status is error.'}, 'error': {'anyOf': [{'type': 'object', 'properties': {'code': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 error code.'}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Error message.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Request-level error. Null unless the whole request failed.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'success (all created or already existing) | partial (successes and errors) | error (all failed, or a request-level error).'}, 'summary': {'anyOf': [{'type': 'object', 'properties': {'totalErrors': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Number of failed creations.'}, 'totalInputs': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Total number of trackers submitted.'}, 'totalCreated': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Number of trackers created.'}, 'totalExisting': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Number of inputs that matched an existing tracker.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Per-request counts. Null when status is error.'}}, 'additionalProperties': {}}
create_tracker
Create Tracker
Creates a new tracker for a tracking number. Use when the user explicitly wants ongoing monitoring or webhook updates; results arrive asynchronously — for immediate results use track or search_tracking. Idempotent: same parameters reuse the existing tracker; any field change creates a new one. Subscribes to webhook updates if configured. Returns the created tracker including its Ship24 trackerId.
Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackingNumber'], 'properties': {'settings': {'type': 'object', 'properties': {'restrictTrackingToCourierCode': {'type': 'boolean', 'description': 'When true, tracking is restricted to the specified courierCode(s) only.'}}}, 'courierCode': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3, 'description': "Courier codes for this tracker (max 3). Use get_couriers for valid codes. IMPORTANT: Check each courier's requiredFields array — any listed fields should be provided, otherwise the courier may not return any tracking data."}, 'courierName': {'type': 'string', 'description': 'Courier name (informational).'}, 'orderNumber': {'type': 'string', 'description': 'Associated order number.'}, 'trackingUrl': {'type': 'string', 'format': 'uri', 'description': 'Courier tracking URL.'}, 'shippingDate': {'type': 'string', 'description': 'Date the package was shipped (YYYY-MM-DD or ISO 8601).'}, 'trackingNumber': {'type': 'string', 'minLength': 1, 'description': 'Tracking number to monitor.'}, 'clientTrackerId': {'type': 'string', 'description': 'Your unique identifier for this tracker, for lookup via searchBy=clientTrackerId.'}, 'originCountryCode': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Origin country code (ISO alpha-2, e.g. US).'}, 'shipmentReference': {'type': 'string', 'description': 'Internal reference for the shipment.'}, 'destinationPostCode': {'type': 'string', 'description': 'Destination postal/ZIP code.'}, 'destinationCountryCode': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Destination country code (ISO alpha-2).'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tracker'], 'properties': {'tracker': {'anyOf': [{'type': 'object', 'properties': {'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the tracker was created.'}, 'isTracked': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means tracking stopped (delivered, inactive or unsubscribed); existing results remain.'}, 'trackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 tracker identifier; pass this to get_tracking_results.'}, 'courierCode': {'anyOf': [{'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}]}, {'type': 'null'}], 'description': 'Courier code(s) pinned on this tracker.'}, 'isSubscribed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means the tracker is archived and no longer used for tracking.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Tracking number this tracker follows.'}, 'clientTrackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own tracker identifier, usable with searchBy=clientTrackerId.'}, 'shipmentReference': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own shipment reference, as supplied at creation.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'The tracker.'}}, 'additionalProperties': {}}
download_webhook_history
Download Webhook History
Retrieves the full webhook push history for a tracker. Returns metadata (trackingNumber, trackerId, clientTrackerId, webhookUrl, lastSuccessfulPushAt, lastFailedPushAt) and a list of all sent or failed pushes with status, pushTimestamp, requestBody, responseBody, responseHeaders, and responseStatusCode. Pending (unsent) webhooks are excluded. Results are sorted newest first. Rate-limited to 1 request/second per tracker.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackerId'], 'properties': {'searchBy': {'enum': ['trackerId', 'clientTrackerId'], 'type': 'string', 'description': 'How to interpret trackerId: default is Ship24 trackerId, use "clientTrackerId" for your own reference.'}, 'trackerId': {'type': 'string', 'minLength': 1, 'description': 'Ship24 trackerId, or clientTrackerId when searchBy="clientTrackerId".'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhooks'], 'properties': {'metadata': {'anyOf': [{'type': 'object', 'properties': {'trackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 tracker identifier.'}, 'webhookUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The webhook URL the pushes were delivered to.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Tracking number of the shipment.'}, 'clientTrackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own tracker identifier, if set.'}, 'lastFailedPushAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Most recent failed delivery attempt.'}, 'lastSuccessfulPushAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Most recent successful delivery.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Tracker and webhook endpoint context.'}, 'webhooks': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'success or failed.'}, 'requestBody': {'description': 'The payload Ship24 sent.'}, 'responseBody': {'description': 'The body returned by the webhook endpoint.'}, 'pushTimestamp': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the delivery was attempted.'}, 'responseHeaders': {'description': 'The headers returned by the webhook endpoint.'}, 'responseStatusCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'HTTP status returned by the webhook endpoint.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Sent and failed pushes, newest first. Pending webhooks are excluded.'}}, 'additionalProperties': {}}
get_couriers
Get Couriers
Returns the list of all couriers supported by Ship24, including their unique courier codes, human-readable names, and any special tracking requirements. Use this tool to discover valid courierCode values before creating or updating trackers, or to help identify which courier handles a particular tracking number format. Note: this endpoint has a rate limit of 1 request/second; cache results when possible.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['couriers'], 'properties': {'couriers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'isPost': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'True when the courier is a national postal operator.'}, 'website': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The courier public website.'}, 'countryCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Main country the courier operates in (ISO alpha-2).'}, 'courierCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Value to pass as courierCode when creating or updating a tracker.'}, 'courierName': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Human-readable courier name.'}, 'isDeprecated': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'True when the courier code is deprecated.'}, 'requiredFields': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'description': 'Extra tracker fields this courier needs for optimal results: destinationPostCode, destinationCountryCode, courierAccount.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'All couriers supported by Ship24.'}}, 'additionalProperties': {}}
get_tracker
Get Tracker
Retrieves a single tracker by trackerId (or clientTrackerId when searchBy is set). Returns tracker metadata only — use get_tracking_results for events and status.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackerId'], 'properties': {'searchBy': {'enum': ['trackerId', 'clientTrackerId'], 'type': 'string', 'description': 'How to interpret trackerId: default is Ship24 trackerId, use "clientTrackerId" for your own reference.'}, 'trackerId': {'type': 'string', 'minLength': 1, 'description': 'Ship24 trackerId, or clientTrackerId when searchBy="clientTrackerId".'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tracker'], 'properties': {'tracker': {'anyOf': [{'type': 'object', 'properties': {'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the tracker was created.'}, 'isTracked': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means tracking stopped (delivered, inactive or unsubscribed); existing results remain.'}, 'trackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 tracker identifier; pass this to get_tracking_results.'}, 'courierCode': {'anyOf': [{'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}]}, {'type': 'null'}], 'description': 'Courier code(s) pinned on this tracker.'}, 'isSubscribed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means the tracker is archived and no longer used for tracking.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Tracking number this tracker follows.'}, 'clientTrackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own tracker identifier, usable with searchBy=clientTrackerId.'}, 'shipmentReference': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own shipment reference, as supplied at creation.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'The tracker.'}}, 'additionalProperties': {}}
get_tracking_results
Get Tracking Results
Returns full tracking results for an existing tracker: metadata, shipment status, all events in order, and delivery statistics. Primary tool for "where is my package?" when you have a trackerId. statusMilestone values: pending | info_received | in_transit | out_for_delivery | failed_attempt | available_for_pickup | delivered | exception.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackerId'], 'properties': {'searchBy': {'enum': ['trackerId', 'clientTrackerId'], 'type': 'string', 'description': 'How to interpret trackerId: default is Ship24 trackerId, use "clientTrackerId" for your own reference.'}, 'trackerId': {'type': 'string', 'minLength': 1, 'description': 'Ship24 trackerId, or clientTrackerId when searchBy="clientTrackerId".'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackings'], 'properties': {'trackings': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'events': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'order': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Tie-breaker when several events share the same occurrenceDatetime; lower comes first.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Raw status text as reported by the courier.'}, 'eventId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Unique identifier of this event in Ship24.'}, 'datetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — use occurrenceDatetime.'}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Raw location text as reported by the courier.'}, 'hasNoTime': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'DEPRECATED — true when the courier reported a date with no time.'}, 'utcOffset': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — the offset is already carried by occurrenceDatetime.'}, 'sourceCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Internal code of the source this event came from. These codes may change at any time.'}, 'statusCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 normalised status code for the event.'}, 'courierCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Courier code linked to this event; refers to the get_couriers list.'}, 'statusCategory': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 status category for the event.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The original tracking number used to create the tracker.'}, 'statusMilestone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Milestone at the time of the event: pending | info_received | in_transit | out_for_delivery | failed_attempt | available_for_pickup | delivered | exception.'}, 'occurrenceDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the event occurred.'}, 'eventTrackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The tracking number the event was actually found on.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Tracking events, most recent first.'}, 'tracker': {'anyOf': [{'type': 'object', 'properties': {'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the tracker was created.'}, 'isTracked': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means tracking stopped (delivered, inactive or unsubscribed); existing results remain.'}, 'trackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 tracker identifier; pass this to get_tracking_results.'}, 'courierCode': {'anyOf': [{'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}]}, {'type': 'null'}], 'description': 'Courier code(s) pinned on this tracker.'}, 'isSubscribed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means the tracker is archived and no longer used for tracking.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Tracking number this tracker follows.'}, 'clientTrackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own tracker identifier, usable with searchBy=clientTrackerId.'}, 'shipmentReference': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own shipment reference, as supplied at creation.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'The tracker this result comes from. Absent for search_tracking, which creates no tracker.'}, 'shipment': {'anyOf': [{'type': 'object', 'properties': {'delivery': {'anyOf': [{'type': 'object', 'properties': {'service': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Name of the logistics service or product used.'}, 'signedBy': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — always null.'}, 'estimatedDeliveryDate': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Estimated delivery date, when the courier provides one.'}, 'aiPredictiveDeliveryDate': {'anyOf': [{'type': 'object', 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Latest date of the window.'}, 'from': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Earliest date of the window.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Ship24 AI-predicted window. Omitted entirely unless enabled on the account.'}, 'courierEstimatedDeliveryDate': {'anyOf': [{'type': 'object', 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Latest date of the window.'}, 'from': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Earliest date of the window.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Window promised by the courier.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Delivery dates and service level.'}, 'recipient': {'anyOf': [{'type': 'object', 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient city.'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient name.'}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient address.'}, 'postCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient postal code.'}, 'subdivision': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient state or province.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Recipient details. All fields are nulled unless the account may receive personal data.'}, 'shipmentId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Unique identifier of the parcel in Ship24.'}, 'statusCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 normalised status code for the shipment.'}, 'statusCategory': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 status category for the shipment.'}, 'statusMilestone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Current milestone; same value set as event.statusMilestone.'}, 'trackingNumbers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'tn': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'A tracking number linked to the shipment.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'All tracking numbers linked to the shipment.'}, 'originCountryCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Detected origin country (ISO alpha-2).'}, 'destinationCountryCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Detected destination country (ISO alpha-2).'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'General shipment information and current status.'}, 'statistics': {'anyOf': [{'type': 'object', 'properties': {'timestamps': {'anyOf': [{'type': 'object', 'properties': {'deliveredDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the delivered milestone.'}, 'exceptionDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the exception milestone.'}, 'inTransitDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the in_transit milestone.'}, 'infoReceivedDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the info_received milestone.'}, 'failedAttemptDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the failed_attempt milestone.'}, 'outForDeliveryDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the out_for_delivery milestone.'}, 'availableForPickupDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the available_for_pickup milestone.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'When each milestone was first reached; null for milestones never reached.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Milestone timestamps for the shipment lifecycle.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'One entry per matched tracker or shipment.'}}, 'additionalProperties': {}}
list_trackers
List Trackers
Returns a paginated list of all trackers. Supports offset (page/limit) or cursor-based pagination. Filter by subscription status with isSubscribed.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page number (1-indexed).', 'exclusiveMinimum': 0}, 'sort': {'anyOf': [{'type': 'number', 'const': 1}, {'type': 'number', 'const': -1}], 'description': 'Sort order by createdAt. 1 = ascending (oldest first, default), -1 = descending (newest first).'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Results per page (max 500).'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackers'], 'properties': {'trackers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the tracker was created.'}, 'isTracked': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means tracking stopped (delivered, inactive or unsubscribed); existing results remain.'}, 'trackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 tracker identifier; pass this to get_tracking_results.'}, 'courierCode': {'anyOf': [{'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}]}, {'type': 'null'}], 'description': 'Courier code(s) pinned on this tracker.'}, 'isSubscribed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means the tracker is archived and no longer used for tracking.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Tracking number this tracker follows.'}, 'clientTrackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own tracker identifier, usable with searchBy=clientTrackerId.'}, 'shipmentReference': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own shipment reference, as supplied at creation.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Trackers on the requested page.'}}, 'additionalProperties': {}}
resend_webhooks
Resend Webhooks
Replays all webhook events for a tracker. Use when your endpoint missed or failed to process previous notifications. Terminates any in-flight webhook delivery for this tracker and invalidates its existing webhook payload records before regenerating and resending them — do not call repeatedly in quick succession. Rate-limited to 1 request/second per tracker.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackerId'], 'properties': {'searchBy': {'enum': ['trackerId', 'clientTrackerId'], 'type': 'string', 'description': 'How to interpret trackerId: default is Ship24 trackerId, use "clientTrackerId" for your own reference.'}, 'trackerId': {'type': 'string', 'minLength': 1, 'description': 'Ship24 trackerId, or clientTrackerId when searchBy="clientTrackerId".'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['summary'], 'properties': {'summary': {'anyOf': [{'type': 'object', 'properties': {'totalResent': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Number of webhook events queued for resending.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Outcome of the webhook replay.'}}, 'additionalProperties': {}}
search_tracking
Search Tracking
Default tool for one-off tracking lookups ('track X', 'where is my package'). Synchronous per-call plan endpoint: returns full results (status, events, statistics) immediately and creates NO tracker on the account. Billed per call. Requires an active per-call plan — if it fails with no_active_subscription, use the track tool instead.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackingNumber'], 'properties': {'courierCode': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3, 'description': "Courier codes for this tracker (max 3). Use get_couriers for valid codes. IMPORTANT: Check each courier's requiredFields array — any listed fields should be provided, otherwise the courier may not return any tracking data."}, 'shippingDate': {'type': 'string', 'description': 'Date the package was shipped (YYYY-MM-DD or ISO 8601).'}, 'trackingNumber': {'type': 'string', 'pattern': '^[a-zA-Z0-9\\-_/.]*$', 'maxLength': 50, 'minLength': 5, 'description': 'Tracking number to look up. 5-50 alphanumeric characters, hyphens, underscores, dots, or slashes.'}, 'originCountryCode': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Origin country code (ISO alpha-2).'}, 'destinationPostCode': {'type': 'string', 'description': 'Destination postal/ZIP code.'}, 'destinationCountryCode': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Destination country code (ISO alpha-2).'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackings'], 'properties': {'trackings': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'events': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'order': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Tie-breaker when several events share the same occurrenceDatetime; lower comes first.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Raw status text as reported by the courier.'}, 'eventId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Unique identifier of this event in Ship24.'}, 'datetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — use occurrenceDatetime.'}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Raw location text as reported by the courier.'}, 'hasNoTime': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'DEPRECATED — true when the courier reported a date with no time.'}, 'utcOffset': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — the offset is already carried by occurrenceDatetime.'}, 'sourceCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Internal code of the source this event came from. These codes may change at any time.'}, 'statusCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 normalised status code for the event.'}, 'courierCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Courier code linked to this event; refers to the get_couriers list.'}, 'statusCategory': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 status category for the event.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The original tracking number used to create the tracker.'}, 'statusMilestone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Milestone at the time of the event: pending | info_received | in_transit | out_for_delivery | failed_attempt | available_for_pickup | delivered | exception.'}, 'occurrenceDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the event occurred.'}, 'eventTrackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The tracking number the event was actually found on.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Tracking events, most recent first.'}, 'tracker': {'anyOf': [{'type': 'object', 'properties': {'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the tracker was created.'}, 'isTracked': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means tracking stopped (delivered, inactive or unsubscribed); existing results remain.'}, 'trackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 tracker identifier; pass this to get_tracking_results.'}, 'courierCode': {'anyOf': [{'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}]}, {'type': 'null'}], 'description': 'Courier code(s) pinned on this tracker.'}, 'isSubscribed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means the tracker is archived and no longer used for tracking.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Tracking number this tracker follows.'}, 'clientTrackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own tracker identifier, usable with searchBy=clientTrackerId.'}, 'shipmentReference': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own shipment reference, as supplied at creation.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'The tracker this result comes from. Absent for search_tracking, which creates no tracker.'}, 'shipment': {'anyOf': [{'type': 'object', 'properties': {'delivery': {'anyOf': [{'type': 'object', 'properties': {'service': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Name of the logistics service or product used.'}, 'signedBy': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — always null.'}, 'estimatedDeliveryDate': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Estimated delivery date, when the courier provides one.'}, 'aiPredictiveDeliveryDate': {'anyOf': [{'type': 'object', 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Latest date of the window.'}, 'from': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Earliest date of the window.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Ship24 AI-predicted window. Omitted entirely unless enabled on the account.'}, 'courierEstimatedDeliveryDate': {'anyOf': [{'type': 'object', 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Latest date of the window.'}, 'from': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Earliest date of the window.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Window promised by the courier.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Delivery dates and service level.'}, 'recipient': {'anyOf': [{'type': 'object', 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient city.'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient name.'}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient address.'}, 'postCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient postal code.'}, 'subdivision': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient state or province.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Recipient details. All fields are nulled unless the account may receive personal data.'}, 'shipmentId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Unique identifier of the parcel in Ship24.'}, 'statusCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 normalised status code for the shipment.'}, 'statusCategory': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 status category for the shipment.'}, 'statusMilestone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Current milestone; same value set as event.statusMilestone.'}, 'trackingNumbers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'tn': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'A tracking number linked to the shipment.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'All tracking numbers linked to the shipment.'}, 'originCountryCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Detected origin country (ISO alpha-2).'}, 'destinationCountryCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Detected destination country (ISO alpha-2).'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'General shipment information and current status.'}, 'statistics': {'anyOf': [{'type': 'object', 'properties': {'timestamps': {'anyOf': [{'type': 'object', 'properties': {'deliveredDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the delivered milestone.'}, 'exceptionDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the exception milestone.'}, 'inTransitDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the in_transit milestone.'}, 'infoReceivedDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the info_received milestone.'}, 'failedAttemptDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the failed_attempt milestone.'}, 'outForDeliveryDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the out_for_delivery milestone.'}, 'availableForPickupDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the available_for_pickup milestone.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'When each milestone was first reached; null for milestones never reached.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Milestone timestamps for the shipment lifecycle.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'One entry per matched tracker or shipment.'}}, 'additionalProperties': {}}
search_tracking_by_number
Search by Tracking Number
Returns existing tracking results for a raw tracking number across trackers already on the account, without needing a trackerId. Free read: never creates a tracker and never triggers a new crawl. Responds 404 tracker_not_found if no tracker exists for that number — in that case use search_tracking (per-call) or track (per-shipment). Use this first when a tracker may already exist.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackingNumber'], 'properties': {'trackingNumber': {'type': 'string', 'minLength': 1, 'description': 'The raw shipment tracking number to search for (e.g. 1Z999AA10123456784).'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackings'], 'properties': {'trackings': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'events': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'order': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Tie-breaker when several events share the same occurrenceDatetime; lower comes first.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Raw status text as reported by the courier.'}, 'eventId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Unique identifier of this event in Ship24.'}, 'datetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — use occurrenceDatetime.'}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Raw location text as reported by the courier.'}, 'hasNoTime': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'DEPRECATED — true when the courier reported a date with no time.'}, 'utcOffset': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — the offset is already carried by occurrenceDatetime.'}, 'sourceCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Internal code of the source this event came from. These codes may change at any time.'}, 'statusCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 normalised status code for the event.'}, 'courierCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Courier code linked to this event; refers to the get_couriers list.'}, 'statusCategory': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 status category for the event.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The original tracking number used to create the tracker.'}, 'statusMilestone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Milestone at the time of the event: pending | info_received | in_transit | out_for_delivery | failed_attempt | available_for_pickup | delivered | exception.'}, 'occurrenceDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the event occurred.'}, 'eventTrackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The tracking number the event was actually found on.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Tracking events, most recent first.'}, 'tracker': {'anyOf': [{'type': 'object', 'properties': {'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the tracker was created.'}, 'isTracked': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means tracking stopped (delivered, inactive or unsubscribed); existing results remain.'}, 'trackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 tracker identifier; pass this to get_tracking_results.'}, 'courierCode': {'anyOf': [{'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}]}, {'type': 'null'}], 'description': 'Courier code(s) pinned on this tracker.'}, 'isSubscribed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means the tracker is archived and no longer used for tracking.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Tracking number this tracker follows.'}, 'clientTrackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own tracker identifier, usable with searchBy=clientTrackerId.'}, 'shipmentReference': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own shipment reference, as supplied at creation.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'The tracker this result comes from. Absent for search_tracking, which creates no tracker.'}, 'shipment': {'anyOf': [{'type': 'object', 'properties': {'delivery': {'anyOf': [{'type': 'object', 'properties': {'service': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Name of the logistics service or product used.'}, 'signedBy': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — always null.'}, 'estimatedDeliveryDate': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Estimated delivery date, when the courier provides one.'}, 'aiPredictiveDeliveryDate': {'anyOf': [{'type': 'object', 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Latest date of the window.'}, 'from': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Earliest date of the window.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Ship24 AI-predicted window. Omitted entirely unless enabled on the account.'}, 'courierEstimatedDeliveryDate': {'anyOf': [{'type': 'object', 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Latest date of the window.'}, 'from': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Earliest date of the window.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Window promised by the courier.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Delivery dates and service level.'}, 'recipient': {'anyOf': [{'type': 'object', 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient city.'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient name.'}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient address.'}, 'postCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient postal code.'}, 'subdivision': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient state or province.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Recipient details. All fields are nulled unless the account may receive personal data.'}, 'shipmentId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Unique identifier of the parcel in Ship24.'}, 'statusCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 normalised status code for the shipment.'}, 'statusCategory': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 status category for the shipment.'}, 'statusMilestone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Current milestone; same value set as event.statusMilestone.'}, 'trackingNumbers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'tn': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'A tracking number linked to the shipment.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'All tracking numbers linked to the shipment.'}, 'originCountryCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Detected origin country (ISO alpha-2).'}, 'destinationCountryCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Detected destination country (ISO alpha-2).'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'General shipment information and current status.'}, 'statistics': {'anyOf': [{'type': 'object', 'properties': {'timestamps': {'anyOf': [{'type': 'object', 'properties': {'deliveredDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the delivered milestone.'}, 'exceptionDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the exception milestone.'}, 'inTransitDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the in_transit milestone.'}, 'infoReceivedDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the info_received milestone.'}, 'failedAttemptDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the failed_attempt milestone.'}, 'outForDeliveryDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the out_for_delivery milestone.'}, 'availableForPickupDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the available_for_pickup milestone.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'When each milestone was first reached; null for milestones never reached.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Milestone timestamps for the shipment lifecycle.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'One entry per matched tracker or shipment.'}}, 'additionalProperties': {}}
track
Track Shipment
Creates a persistent tracker on the account AND returns full tracking results synchronously in one call (per-shipment plan). Idempotent: same payload reuses the existing tracker. Prefer search_tracking for one-off lookups when the per-call plan is available. If the returned shipment is still pending with no events, call get_tracking_results once with the returned trackerId before answering. Accepts the same fields as create_tracker — see that tool for field details.
Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackingNumber'], 'properties': {'settings': {'type': 'object', 'properties': {'restrictTrackingToCourierCode': {'type': 'boolean', 'description': 'When true, tracking is restricted to the specified courierCode(s) only.'}}}, 'courierCode': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3, 'description': "Courier codes for this tracker (max 3). Use get_couriers for valid codes. IMPORTANT: Check each courier's requiredFields array — any listed fields should be provided, otherwise the courier may not return any tracking data."}, 'courierName': {'type': 'string'}, 'orderNumber': {'type': 'string'}, 'trackingUrl': {'type': 'string', 'format': 'uri'}, 'shippingDate': {'type': 'string'}, 'trackingNumber': {'type': 'string', 'minLength': 1}, 'clientTrackerId': {'type': 'string'}, 'originCountryCode': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'shipmentReference': {'type': 'string'}, 'destinationPostCode': {'type': 'string'}, 'destinationCountryCode': {'type': 'string', 'maxLength': 2, 'minLength': 2}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackings'], 'properties': {'trackings': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'events': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'order': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Tie-breaker when several events share the same occurrenceDatetime; lower comes first.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Raw status text as reported by the courier.'}, 'eventId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Unique identifier of this event in Ship24.'}, 'datetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — use occurrenceDatetime.'}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Raw location text as reported by the courier.'}, 'hasNoTime': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'DEPRECATED — true when the courier reported a date with no time.'}, 'utcOffset': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — the offset is already carried by occurrenceDatetime.'}, 'sourceCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Internal code of the source this event came from. These codes may change at any time.'}, 'statusCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 normalised status code for the event.'}, 'courierCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Courier code linked to this event; refers to the get_couriers list.'}, 'statusCategory': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 status category for the event.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The original tracking number used to create the tracker.'}, 'statusMilestone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Milestone at the time of the event: pending | info_received | in_transit | out_for_delivery | failed_attempt | available_for_pickup | delivered | exception.'}, 'occurrenceDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the event occurred.'}, 'eventTrackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The tracking number the event was actually found on.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Tracking events, most recent first.'}, 'tracker': {'anyOf': [{'type': 'object', 'properties': {'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the tracker was created.'}, 'isTracked': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means tracking stopped (delivered, inactive or unsubscribed); existing results remain.'}, 'trackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 tracker identifier; pass this to get_tracking_results.'}, 'courierCode': {'anyOf': [{'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}]}, {'type': 'null'}], 'description': 'Courier code(s) pinned on this tracker.'}, 'isSubscribed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means the tracker is archived and no longer used for tracking.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Tracking number this tracker follows.'}, 'clientTrackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own tracker identifier, usable with searchBy=clientTrackerId.'}, 'shipmentReference': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own shipment reference, as supplied at creation.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'The tracker this result comes from. Absent for search_tracking, which creates no tracker.'}, 'shipment': {'anyOf': [{'type': 'object', 'properties': {'delivery': {'anyOf': [{'type': 'object', 'properties': {'service': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Name of the logistics service or product used.'}, 'signedBy': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'DEPRECATED — always null.'}, 'estimatedDeliveryDate': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Estimated delivery date, when the courier provides one.'}, 'aiPredictiveDeliveryDate': {'anyOf': [{'type': 'object', 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Latest date of the window.'}, 'from': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Earliest date of the window.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Ship24 AI-predicted window. Omitted entirely unless enabled on the account.'}, 'courierEstimatedDeliveryDate': {'anyOf': [{'type': 'object', 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Latest date of the window.'}, 'from': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Earliest date of the window.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Window promised by the courier.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Delivery dates and service level.'}, 'recipient': {'anyOf': [{'type': 'object', 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient city.'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient name.'}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient address.'}, 'postCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient postal code.'}, 'subdivision': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Recipient state or province.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Recipient details. All fields are nulled unless the account may receive personal data.'}, 'shipmentId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Unique identifier of the parcel in Ship24.'}, 'statusCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 normalised status code for the shipment.'}, 'statusCategory': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 status category for the shipment.'}, 'statusMilestone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Current milestone; same value set as event.statusMilestone.'}, 'trackingNumbers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'properties': {'tn': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'A tracking number linked to the shipment.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'All tracking numbers linked to the shipment.'}, 'originCountryCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Detected origin country (ISO alpha-2).'}, 'destinationCountryCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Detected destination country (ISO alpha-2).'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'General shipment information and current status.'}, 'statistics': {'anyOf': [{'type': 'object', 'properties': {'timestamps': {'anyOf': [{'type': 'object', 'properties': {'deliveredDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the delivered milestone.'}, 'exceptionDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the exception milestone.'}, 'inTransitDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the in_transit milestone.'}, 'infoReceivedDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the info_received milestone.'}, 'failedAttemptDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the failed_attempt milestone.'}, 'outForDeliveryDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the out_for_delivery milestone.'}, 'availableForPickupDatetime': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'First occurrence of the available_for_pickup milestone.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'When each milestone was first reached; null for milestones never reached.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Milestone timestamps for the shipment lifecycle.'}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'One entry per matched tracker or shipment.'}}, 'additionalProperties': {}}
update_tracker
Update Tracker
Partially updates a tracker (PATCH). Only provided fields are changed. Common uses: toggling isSubscribed, correcting destination details, or setting a clientTrackerId.
Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['trackerId'], 'properties': {'searchBy': {'enum': ['trackerId', 'clientTrackerId'], 'type': 'string', 'description': 'How to interpret trackerId: default is Ship24 trackerId, use "clientTrackerId" for your own reference.'}, 'settings': {'type': 'object', 'properties': {'restrictTrackingToCourierCode': {'type': 'boolean', 'description': 'When true, tracking is restricted to the specified courierCode(s) only.'}}}, 'trackerId': {'type': 'string', 'minLength': 1, 'description': 'The tracker to update (Ship24 trackerId or clientTrackerId).'}, 'courierCode': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3, 'description': "Courier codes for this tracker (max 3). Use get_couriers for valid codes. IMPORTANT: Check each courier's requiredFields array — any listed fields should be provided, otherwise the courier may not return any tracking data."}, 'isSubscribed': {'type': 'boolean', 'description': 'true to subscribe to webhooks, false to unsubscribe.'}, 'shippingDate': {'type': 'string', 'description': 'Ship date (YYYY-MM-DD or ISO 8601). Immutable once tracking data exists.'}, 'originCountryCode': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Origin country code (ISO alpha-2). Immutable once tracking data exists.'}, 'destinationPostCode': {'type': 'string'}, 'destinationCountryCode': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Destination country code (ISO alpha-2). Immutable once tracking data exists.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tracker'], 'properties': {'tracker': {'anyOf': [{'type': 'object', 'properties': {'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'When the tracker was created.'}, 'isTracked': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means tracking stopped (delivered, inactive or unsubscribed); existing results remain.'}, 'trackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Ship24 tracker identifier; pass this to get_tracking_results.'}, 'courierCode': {'anyOf': [{'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}]}, {'type': 'null'}], 'description': 'Courier code(s) pinned on this tracker.'}, 'isSubscribed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'False means the tracker is archived and no longer used for tracking.'}, 'trackingNumber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Tracking number this tracker follows.'}, 'clientTrackerId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own tracker identifier, usable with searchBy=clientTrackerId.'}, 'shipmentReference': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Your own shipment reference, as supplied at creation.'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'The tracker.'}}, 'additionalProperties': {}}
Hinzugefügt
download_webhook_history
17. September 2026 12:37
Hinzugefügt
resend_webhooks
17. September 2026 12:37
Hinzugefügt
search_tracking
17. September 2026 12:37
Hinzugefügt
get_couriers
17. September 2026 12:37
Hinzugefügt
search_tracking_by_number
17. September 2026 12:37
Hinzugefügt
get_tracking_results
17. September 2026 12:37
Hinzugefügt
update_tracker
17. September 2026 12:37
Hinzugefügt
get_tracker
17. September 2026 12:37
Hinzugefügt
track
17. September 2026 12:37
Hinzugefügt
bulk_create_trackers
17. September 2026 12:37
Hinzugefügt
list_trackers
17. September 2026 12:37
Hinzugefügt
create_tracker
17. September 2026 12:37