API Changelog
History of changes to the Midla Platform public API. Changes that could break existing integrations are always announced here before they ship.
Unreleased
- HTTP errors preserve their status and headers, including
405andAllow. - Rate limits are independent per organization, audience and token; default: 60 requests/minute.
- Managing integration activation and Platform tokens requires listing and update permissions.
- OpenAPI references exclude Customer endpoints from Platform specs.
- Optional fields without a value must be omitted in receipt/master/house/direct creation.
2026-09-27
- Operations · Shipments:
Master,House,Direct, andConsolidationnow all supportGET(list/show),PATCH(partial update, Draft only), andDELETE(soft delete, Draft only, 204 no content).ReceiptgainedDELETE. Requiresshipments:deleteorreceipts:delete(new abilities). New read-only catalogGET /operations/shipment-movements(shipments:read) — the granular post-Confirmed operational states (dispatched,in_transit, ...), not the Draft/Confirmed/Done lifecycle. - List/show/update/create responses for receipts and shipments now include
movementsanddocuments. - Breaking:
POST /direct-shipmentswas renamed toPOST /directs, to stay consistent with the newGET/PATCH/DELETE /directson the same resource. No transition period — same reasoning as the/api/v1→/api/platform/v1rename below: nobody outside this project was consuming it yet. - Breaking: explicit
nullis no longer accepted for optional fields onPOST /masters,POST /houses,POST /directs,POST /consolidations, andPOST /receipts(includingpackages.*sub-fields). Previously-nullablefields are nowsometimesonly, so they must be omitted entirely instead of sent asnull— this was needed to correctly derive the newPATCHvalidation rules from the same source. Sendingnullfor one of these fields now returns422instead of being accepted.
2026-09-22
- Operations · Masters module (new):
GET/POST /masters,GET /masters/{id},POST /masters/{id}/shipmentsto attach houses. Requiresshipments:create/read/update. - Operations · Catalogs module: 7 new endpoints —
shipment-options,places,branches,customs-offices,vessels,move-types,service-modes. Each requires its own ability.package-typesnow accepts atransport_modefilter. - Catalogs module: new
incoterms(no ability required, same as the rest ofcatalogs). - Launched the Customer API — a new, separate audience
(
api/customer/v1/...) for a customer of your organization to query their own shipments and receipts with their own token, no scopes. It doesn't replace anything here — it's a distinct product, with its own documentation.
2026-09-21
- Breaking: the public API was renamed from
/api/v1/...to/api/platform/v1/.... The segment after/api/now identifies the calling audience, not a historical accident — it frees up the namespace for the Customer API (see above) and future audiences, unambiguously. No alias, no transition period: nobody was consuming it externally yet at that point. Any old URL using/api/v1/...must be updated to/api/platform/v1/...; everything else (auth, response format, scopes) stayed the same.
2026-09-19
- Catalogs module: added
legal-forms(requirescountry_code), andcurrenciesnow accepts acodefilter. Still requires no ability of its own. - Operations module: new catalogs
package-types,commodities, andoperation-types— unlikeCatalogs, each requires its own ability (package-types:read,commodities:read,operation-types:read) because they're tenant-specific configuration, not global reference data. - Companies module (new):
GET /companies— tenant company lookup. Requires thecompanies:readability. - Users module (new):
GET /users— tenant staff user lookup. Requires theusers:readability. - Helpdesk module (new):
GET/POST/PATCH /tickets,GET /teams,GET /tags. Requirestickets:create/read/update,helpdesk-teams:read, orticket-tags:readdepending on the endpoint.
2026-09-08
- Catalogs module: read-only endpoints
countries,states,document-types, andcurrencies. No ability required — a valid, active token is enough. - Partners module:
GET /partners(with filtersroles— required, at least one —,name,email,document_type_code+tax_id) andGET /partners/{id}. Requires thepartners:readability.
2026-09-07
- Initial launch of the public API (
/api/v1). - Token authentication with scopes (see Authentication).
- CRM module:
leadsendpoints (list, view, create, update). - Rate limiting: 60 requests/minute per token (see Rate Limits).