canonical: https://jentic.com/apis/interfere.com/interfere

# Interfere API

The Interfere API connects your builds and your app's sessions to Interfere, an application monitoring service. Build-time operations register a release for a surface and run a signed source-map upload session: sign the file inventory, upload maps singly or in batches, finalize them with the bundler used (webpack, turbopack, rollup, or tsc), and check publication status. At runtime, a publishable key attaches a user identity to a session, and workspace operations read and update each tenant's ARR and tier so issues can be weighed by customer value.

## For AI agents

Register Interfere releases, run signed source-map uploads and check their publication status, identify user sessions, and read or update tenant ARR and tier.

## Scope

Does not handle reading error events, querying logs, or alerting through this spec. Use for registering releases, uploading source maps, identifying sessions, and setting tenant context only.

## Capabilities

- Register a release for a surface with its buildId, destination, and source using a build-time secret key
- Sign a source-map upload session, upload maps one at a time or in batches of up to 512 KiB, and finalize with the bundler name
- Check a release's source-map publication status for an environment without changing upload state
- Resolve which surface and organization a build-time key belongs to via `/v3/releases/config`
- Attach a user identity, email, name, and traits to a session with a publishable surface key
- Read a tenant's ARR and workspace tier, update one tenant, or patch up to 100 tenants at once

## Use cases

### Release and source-map checks from your agent through Jentic

A coding agent connected through Jentic finishes a deploy by registering the release with Interfere, then checks the source-map publication status for the production environment so stack traces will map back to source. If the maps are missing it can rerun the upload. The build-time secret key stays in your own Jentic One instance, not in the agent's context or the CI log.

Example prompt: Call POST `/v3/releases` with buildId, destination, and source for the build, then GET `/v3/releases/{releaseSlug}/source-maps` with environment 'production' and report whether the manifest is published

### Signed source-map upload in CI

Source maps go up through a session: the sign call takes the list of files and returns the session expiry and inventory, the batch upload sends chunks atomically, and the finalize call records the bundler (webpack, turbopack, rollup, or tsc) and files. Finalized files are accepted durably while publication retries in the background.

Example prompt: Call POST `/v3/releases/{releaseSlug}/source-maps/sign` with the files list, PUT `/v3/releases/{releaseSlug}/source-maps/batch` with the chunks, then POST `/v3/releases/{releaseSlug}/source-maps/finalize` with bundler 'webpack' and the files

### Weigh issues by customer value

Interfere can rank problems by who they affect. Workspace operations store each tenant's ARR in decimal major units with an ISO currency, plus a tier name that is created the first time it is assigned. A sync job can patch up to 100 tenants in one atomic call, and any unknown or foreign tenant rejects the whole batch.

Example prompt: Call PATCH `/v3/workspaces/{workspaceSlug}/tenants/{endUserOrgId}/context` with arr {amount: '48000', currency: 'USD'} and tier 'enterprise'

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v3/releases` | Create a release |
| POST | `/v3/releases/{releaseSlug}/source-maps/sign` | Sign a source-map upload session |
| PUT | `/v3/releases/{releaseSlug}/source-maps/batch` | Upload a source-map batch |
| POST | `/v3/releases/{releaseSlug}/source-maps/finalize` | Finalize source maps |
| GET | `/v3/releases/{releaseSlug}/source-maps` | Get source-map publication status |
| POST | `/v3/session/identify` | Identify a session |
| PATCH | `/v3/workspaces/{workspaceSlug}/tenants/{endUserOrgId}/context` | Update a tenant's ARR and tier |

## Key resources

- **Releases** — Register releases, resolve the key's surface, and record upload telemetry
- **Source maps** — Sign, upload, batch upload, finalize, and check publication of source maps
- **Sessions** — Attach a user identity to an SDK session
- **Tenant context** — Read and update tenant ARR and tier, singly or in batch

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 57 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 75 / 100
  - Developer Experience & Jentic Compatibility: 69 / 100
  - AI-Readiness & Agent Experience: 39 / 100
  - Agent Usability: 94 / 100
  - Security: 47 / 100
  - AI Discoverability: 51 / 100
- **View full report:** https://jentic.com/apis/interfere.com/interfere/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Interfere by hand means juggling a build-time secret key, a publishable key, and a Clerk session across different operations, and sequencing the sign, upload, and finalize steps for source maps. Through Jentic you install once, import Interfere from the API Directory, store each key once, and your agent calls it.
- **Permission scoping:** Interfere puts the release slug and the workspace and tenant ids in the URL path (`/v3/workspaces/{workspaceSlug}/tenants/{endUserOrgId}/context`), so a rule can pin your agent to one workspace or one release and the operations you pick. You choose the operations it may call, so writes like tenant ARR updates or release registration are not included unless you add them.
- **Credential handling:** Your Interfere keys are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'upload source maps for a release' or 'update a tenant's ARR', and Jentic returns the matching Interfere operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Sentry API** — Error and performance monitoring with releases and source maps
- **Bugsnag API** — Error monitoring with stability scores and release tracking
- **Rollbar API** — Error tracking with deploys and occurrence data
- **PostHog API** — Product analytics, session replay, and feature flags

## FAQ

### Is there an Interfere MCP server?

You don't need an MCP server to give your agent Interfere. Jentic connects it directly from the API Directory: import it, store your key once, and your agent calls it. A coding agent finds the release or source-map operation it needs on demand instead of loading a server's tool list into its context.

### Can I limit what my agent is allowed to do with the Interfere API?

Yes. For a deploy-check agent, write a rule that allows only GET `/v3/releases/{releaseSlug}/source-maps` and GET `/v3/releases/config.` It can confirm source maps were published for any release, but it cannot register releases, upload maps, or change tenant ARR, and every call it makes is logged.

### What authentication does the Interfere API use?

Per its OpenAPI spec, it depends on the operation. Release and source-map operations take the surface's build-time secret key, either as a bearer token in the `Authorization` header or unwrapped in the `x-api-key` header. Session identify takes the publishable surface key in the `x-interfere-public-key` header or the `public_key` query parameter. Workspace tenant operations take a bearer Clerk session or delegated OAuth access token, and the spec notes they also accept API keys with explicit permission scopes. Through Jentic, each key is stored encrypted by your own Jentic One instance and injected into the calls that use it.

### How large can an Interfere source-map batch be?

Per the spec, the complete JSON request to PUT `/v3/releases/{releaseSlug}/source-maps/batch` must not exceed 512 KiB. Larger sets can be split across several batches, or individual maps can be sent with PUT `/v3/releases/{releaseSlug}/source-maps.`

### What are the rate limits for the Interfere API?

The OpenAPI spec does not specify rate limits; check https://interfere.com for current limits. The spec does ask clients to retry only when an operation's contract permits it and to keep the original idempotency key when they do.

### How do I upload source maps with the Interfere API through Jentic?

Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, import Interfere from the API Directory, and store your build-time key. Your agent searches for 'upload source maps for a release', gets the sign, batch upload, and finalize operations with their input schemas, and calls them in that order. To run it on your own infrastructure, install Jentic One from its GitHub repo.
