Skip to content

Versioning and stability

Scripts, dashboards and AI assistant setups built on IntensiveReports should keep working when you update. This page says what you can rely on.

Report ids never change. Once a report id such as entra.users.guests has been published, it keeps meaning the same report in every later version:

  • a renamed report keeps its id, and only its title changes;
  • a report moved to another menu keeps its id;
  • ids are never reused for a different report.

The release process checks this automatically against the list of every id ever published. The links from the app to this documentation use the same ids.

Within /ir-api/v1:

  • the endpoints, their parameters and the meaning of existing fields stay as documented;
  • the token format ir1.<client id>.<secret> and the other sign-in methods keep working;
  • status codes keep their meaning.

MCP tool names (list_reports, get_report and the others) and their existing parameters stay as they are.

Write your code so these changes don’t break it:

  • New reports appear in GET /reports and list_reports.
  • New fields may be added to any answer. Ignore fields you don’t know.
  • New columns may be added to a report’s rows, and column order isn’t fixed. Read values by key, never by position.
  • New named filters and optional parameters may be added to a report.
  • New report states may be added. Treat an unknown state like Failed, and check error.
  • Texts change: titles, questions, descriptions, notes, metric labels and error messages are for people. Don’t parse them, and don’t match on exact wording.
  • Data changes as Microsoft 365 changes: a column may stay empty when Microsoft stops providing a value.
  • MCP tool descriptions may be reworded to help assistants pick the right tool.

A change that would break existing clients, such as removing a field, changing a field’s type or meaning, or removing an endpoint, doesn’t happen inside /ir-api/v1. Such a change would come with a new base path, /ir-api/v2, and /ir-api/v1 would stay available alongside it for a transition period. The release notes would announce it in advance.

A report that is retired disappears from GET /reports and answers 404, like a report your client may not read. Its id is never given to another report.

  • Your server’s GET /ir-api/v1/openapi.json always describes the version you run. It needs no token.
  • The REST API reference and the report reference on this site describe the current release.
  • Check the release notes before updating if you depend on a report’s columns.