Changelog
LogirAI's API surface is versioned implicitly under /v1/. We ship continuously and document breaking changes here. Backward-incompatible changes always include a deprecation window.
Conventions
- Added — new endpoint, field, or event.
- Changed — non-breaking enhancement (extra fields, looser validation, etc.).
- Deprecated — still works, but slated for removal. Always announced ≥ 60 days before removal.
- Removed — no longer accepted.
- Fixed — bug or undocumented behavior corrected.
2026-Q2
Added
platform_nameper guide row (process-pre-alert-json). Optional marketplace / source tag, persisted toguides.platform_name. Sent per row (not derived from the token) so a single importer that consolidates orders from several sub-clients / marketplaces can attribute each guide to its origin. Omit or sendnullwhen not applicable. See Platform / Identifiers / Order.- Multi-product per HAWB (
products[]). Each guide row inprocess-pre-alert-jsonaccepts an optionalproducts[]array. When present, products are the source of truth: the server derivesweight_kg(Σ weights),fob_usd(Σ qty × unit_value),product_value,description_original(joined) andhs_code(distinct codes joined). The HAWB stays a single guide; the array is stored and shown in the HAWB detail view. Customs exports (Atrex/AIDA) remain per-guide using the derived fields. See Multi-product. - Multi-country routing (CL / PE / AR). One
api_passwordships pre-alerts to any country in yourallowed_countries. The country is derived from the manifest destination (destination_airportfor air,destination_countryfor ground) — you no longer sendcountry. Peru is fully supported: SUNAT express-regime categories (1–4), document validation (RUC/DNI), and high-value (FOB > US$2000) retention. New typed errors:country_not_allowed(403),destination_unresolved(400),unsupported_transport_mode(400),no_parser_for_format(400). - Authentication, Errors, Rate Limits, Webhooks Overview — first-class reference pages for onboarding.
- Glossary — domain terms (HAWB, MAWB, pre-alert, manifest, guide).
- Pre-Alerts API documented end-to-end:
upload,mawbs,mawbs/:mawb,guides/:tracking_code.
Changed
countryis no longer accepted in the request body ofprocess-pre-alert-json— it is derived from the manifest destination and validated against your allowlist. Anycountryyou send is ignored (same as before forcompanyId/preAlertId).- The multipart
uploadendpoint is no longer hard CL-only: a destination whose country has no onboarded parser returns400 no_parser_for_formatinstead of403. - Public docs now expose all reference pages. Previously only a sliver of the content was reachable through the sidebar.
Roadmap
These items are not yet shipped. Tracked for transparency.
Idempotency-Keyheader on the upload endpoint — re-sending the same key returns the original response, ending the "did my upload reach LogirAI?" guesswork on retries.- Pagination and filters on
GET /v1/mawbs— page/cursor + filter bystatus, MAWB, and date range. Today the endpoint returns the last 50 with no filters. - HMAC-SHA256 signatures on webhooks —
X-LogirAI-Signatureheader in addition to the Bearer token. - Webhook retries with exponential backoff and a dead-letter queue — replacing v1 fire-and-forget.
- Replay endpoint for missed webhook events.
- Async upload pattern (
202 Accepted+ job_id) for very large manifests, with a webhook on completion. - OpenAPI 3.1 spec + Postman collection generated from the same source as this site.
- Sandbox environment with synthetic data for integration tests.
- Per-credential rate limits with documented quotas and
Retry-After.
Reporting issues
Found a discrepancy between docs and behavior? Send to your LogirAI integration partner with:
- Endpoint and HTTP method
- Request payload (with secrets redacted)
- Actual vs. expected response
- Request timestamp (UTC)
- For webhook deliveries: the
X-Logir-Delivery-Idheader value