Resources

Stability

What will not change without warning, and what might.

Contents
There is no version prefix, and that is the current state of things

Paths are unversioned: /db/projects, not /v1/db/projects. This API grew as the private backend of one web app, where the client and the server ship together and a breaking change is a single deploy. That assumption stops holding the moment somebody else's code depends on it, which is what this page invites. Read the rest of this section before you build something you cannot easily change.

SurfaceCommitment
Paths and methodsStable. An endpoint documented here will not move or change verb without notice.
Request fieldsStable. New optional fields may be added; existing ones will not change meaning or type.
Response fieldsAdditive. New keys may appear at any time. Parse permissively. A client that rejects unknown keys will break on a routine release.
Error code valuesStable. The table above is the contract.
Error message textNot stable. Written for people, reworded freely. Never match on it.
Token lifetimesNot stable. Configuration. Refresh on 401, not on a timer.
Undocumented endpointsNo commitment. The routes deliberately omitted from this page (see the note in this file's source) may change or disappear without notice.

Building something durable#

  1. Ignore response keys you do not use, rather than validating against a closed schema.
  2. Branch on detail.code, never on detail.message.
  3. Refresh when a call returns 401, rather than pre-emptively on a clock.
  4. Retry 503 with backoff. Retry nothing else automatically.
  5. Set a generous timeout on every /reports/*, /ai/* and /forms/* call.
  6. Keep your device-type mapping in one place. The two vocabularies are the likeliest thing to catch you out.

Getting in touch#

If you are integrating against this API, tell us: support@rmsautomation.ai. It is the only way a change that would break you gets noticed before it ships. For a CORS origin, a higher concurrency band, or a commitment stronger than the table above, contact sales.