APIs Between a WMS You Don't Control and Tools You Do
Published 2026-03-16 by Faraz Rahimi
You will not get a perfect WMS API. You will get files, rate limits, and a field that means two things. Design for that.

Tags: APIs, WMS, Python, Integration, unlisted
I treat the WMS as an unreliable partner. I write to my own tables first, then sync. If the WMS is down, the floor app still records intent.
Mapping lives in a table. When they change a status code, I do not redeploy a novel. I change a row.
Idempotent sync, always
Their side will retry. Yours will retry. Unique keys on both ends or you will duplicate work.
Log the payload you sent
When they say they never got it, you need more than a shrug. Store request id, timestamp, and a redacted body.
Original post: https://farazrahimi.com/posts/apis-between-a-wms-you-dont-control-and-tools-you-do