Docs

Type a word or a question. Esc closes the search.

Sign in Start free
Developers/Basics

What changed in the API, and when.

Every change to the public contract of https://app.upfour.io/v1 since 2026-05-05, one line per operation and date. The lines are generated from the history of the OpenAPI file, so they cannot drift from what the reference pages show. Also available as JSON.

What the labels mean

breakingCode written against the old contract can stop working.
addedSomething new that nothing existing depends on.
changedBehavior or contract changed in a way that is unlikely to break a client.
deprecatedStill works, marked for removal.
documentedThe reference now describes something that already worked. Not counted as a change.

What counts as breaking

A change is labeled breaking when a request that was valid before can fail or mean something else, or a response loses something a client could rely on:

  • An operation is removed.
  • The required scope changes to a different one or a higher level (report.read to report.write). Keys that do not hold the new scope are refused. Moving to a lower level of the same scope is labeled changed.
  • A request gains a required field, query parameter or body.
  • A request field or parameter is removed, renamed, made required, changes type or stops accepting a value.
  • A response field is removed, changes type or is no longer always present.
  • The success status of an operation changes.

These are not breaking: new operations, new optional parameters and request fields, new response fields, new accepted values, and new error statuses. Clients should ignore response fields they do not know and treat the values of a response enum as an open set.

Versioning

The contract states one policy. The right column is what the API does today, checked against the code by this site's tests.

TopicThe contract saysThe API does today
URL version The version is /v1. Additive changes land there. Every operation is served under /v1. There is no other version.
Breaking changes A breaking change needs /v2 and 12 months of parallel support. There is no /v2. 5 entries below are labeled breaking, the latest on 2026-10-30; all of them were made inside /v1.
Deprecation Deprecations are announced with Deprecation and Sunset headers. The API sends neither header. No operation is marked deprecated. A deprecation would show up here as a deprecated entry.
X-API-Version The header pins compatible behavior; keys remember a default version. The header is accepted, and a request that carries it is treated like an API-key request (cursor pagination, { "data": … } envelope). Its value is not read. Each key stores an api_version, which GET /me reports; no behavior varies with it.

History

65 entries on 23 dates, newest first.

2026-10-30

2026-10-27

2026-10-26

2026-10-22

2026-10-18

2026-10-16

2026-10-14

2026-09-22

2026-09-21

2026-09-19

2026-09-18

2026-09-08

2026-09-06

2026-09-02

2026-08-27

2026-08-26

  • added

    GET /incidents/{incidentID}/escalations/{step}/acknowledge Added (runtime).

2026-07-25

2026-07-21

2026-06-01

2026-05-12

2026-05-11

2026-05-07

2026-05-05

  • added

    First version of the API reference, with 22 operations.

How this log is made

A script reads every version of the OpenAPI file, groups the versions by the date they were committed and compares the end of each date with the end of the one before. A route that disappears and returns on the same date leaves no entry. Operator routes are not part of the public API and are not listed.

The reference was a route inventory until 2026-10-27: it listed operations, scopes and stability, but most request and response bodies were open objects and success statuses were estimates. For the time before that date the log reports added and removed operations, scopes and stability only. On 2026-10-27 the fields of the operations were documented; that is one documented entry, not a change. From the day after, parameters, status codes and fields are compared too.