Providers
Upseam watches nine providers, two MCP servers and your own OpenAPI and
GraphQL contracts. The id in the first column is what you write in
ignore.providers.
Versioned APIs
For these providers Upseam finds the API version your code is pinned to and lists every change published after it.
| Id | Provider | API | SDKs, JavaScript | SDKs, Python |
|---|---|---|---|---|
stripe |
Stripe | REST API | stripe |
stripe |
shopify |
Shopify | Admin GraphQL API | @shopify/shopify-api, @shopify/shopify-app-react-router, @shopify/shopify-app-remix, @shopify/admin-api-client |
ShopifyAPI |
hubspot |
HubSpot | REST APIs | @hubspot/sdk, @hubspot/api-client |
hubspot-sdk, hubspot-api-client |
twilio |
Twilio | REST APIs | twilio |
twilio |
github |
GitHub | REST API, GraphQL removals | octokit, @octokit/rest, @octokit/core, @octokit/graphql, @octokit/request |
PyGithub |
- Stripe: pins in
apiVersion,stripe.api_versionor theStripe-Versionheader. Without a pin, the version follows from the SDK's major version, for the majors Upseam has a default for. Source: the Stripe changelog. - Shopify: pins in
apiVersion,ApiVersion.October25and/admin/api/<version>/paths; in Python,shopify.Session(url, "2025-10", token),shopify.Session.temp(...)andapi_version = "2025-10". The Python SDK has no default version, so it needs a pin. Source: the shopify.dev changelog, plus a schema diff between versions. History starts with the changelog feed on 2024-09-25. - HubSpot: the version is part of the request path, either a legacy
v1tov4segment or a date version such as/crm/objects/2026-03/contacts. Without a pin,@hubspot/sdkandhubspot-sdkcount as2026-03, and@hubspot/api-clientandhubspot-api-clientas the legacyv3. Source: the developers.hubspot.com changelog, plus endpoints removed between OpenAPI specs of date versions. - Twilio: there is no global API version, so the base is the release date
of the installed
twiliopackage. Source: the changelogs oftwilio-oai,twilio-nodeandtwilio-python. History starts on 2022-01-01. - GitHub: REST API versions from the
X-GitHub-Api-Versionheader; without it, a request gets2022-11-28. Changes come from the REST breaking-changes list plus a diff of the OpenAPI descriptions, and scheduled GraphQL removals from GitHub's upcoming-changes list.
Go
Only official Go SDKs are recognised:
| Id | Module | API version |
|---|---|---|
stripe |
github.com/stripe/stripe-go (v72 to v86) |
the major's default, or a "Stripe-Version", "<version>" header in code |
twilio |
github.com/twilio/twilio-go |
release date of the required tag on the Go module proxy |
github |
github.com/octokit/go-sdk |
the X-GitHub-Api-Version header in code |
openai |
github.com/openai/openai-go |
none; model ids in strings |
anthropic |
github.com/anthropics/anthropic-sdk-go |
none; model ids in strings |
gemini |
google.golang.org/genai, github.com/google/generative-ai-go |
none; model ids in strings |
github.com/google/go-github is maintained by Google, not GitHub, and is not
recognised; neither are community clients such as
github.com/sashabaranov/go-openai. Shopify, HubSpot and Mistral have no
official Go SDK. Model constants such as openai.ChatModelGPT4o are not
matched, only model ids in string literals.
AI model retirements
These APIs have no dated version. What breaks is a retired model, endpoint or beta header that your code still names. Upseam lists only the retirements that match your code, with the shutdown date and the replacement the vendor names.
| Id | Provider | Source | SDKs, JavaScript | SDKs, Python |
|---|---|---|---|---|
openai |
OpenAI | Deprecations page | openai, @ai-sdk/openai, @langchain/openai |
openai, langchain-openai |
anthropic |
Claude | Model deprecations page | @anthropic-ai/sdk, @ai-sdk/anthropic, @langchain/anthropic |
anthropic, langchain-anthropic |
gemini |
Gemini | Gemini API deprecations table | @google/genai, @google/generative-ai, @ai-sdk/google, @langchain/google-genai |
google-genai, google-generativeai, langchain-google-genai |
mistral |
Mistral | "Deprecated & retired models" table | @mistralai/mistralai, @ai-sdk/mistral, @langchain/mistralai |
mistralai, langchain-mistralai |
- OpenAI retirements cover models, endpoints and beta headers; the others cover models (and, for Gemini, managed agents).
- Model ids in
.env, YAML or JSON config files are not searched. - Gemini code that targets Vertex AI is still checked against Gemini API dates.
- When a vendor names exactly one replacement and New capabilities is on, Upseam can open a successor model pull request after approval.
MCP servers
| Id | Server | Source |
|---|---|---|
github-mcp |
GitHub MCP server | Release tool lists and the renamed-tools table |
microsoft-learn-mcp |
Microsoft Learn MCP server | The server's tools/list, checked every hour |
MCP servers are found in MCP configs and agent files, not in package manifests. Their changes are tool renames, removals and argument changes; see MCP servers.
Internal contracts
| Contract | Formats | Compared |
|---|---|---|
| OpenAPI | JSON, YAML | two commits of the spec on your default branch |
| GraphQL | SDL schema | two commits of the schema on your default branch |
- OpenAPI: schemas, request bodies, query parameters and responses per status code and media type. Removed properties, schemas, endpoints and enum values and type changes break in both directions. In requests, a field that becomes required and a new required field break; in responses, a field that becomes optional or nullable breaks. A removed status code is listed for review.
- GraphQL: breaking and dangerous changes. Federation directives such as
@keyare accepted. Code and.graphqlquery files are searched.
Set contracts up in .github/upseam.yml.
Limits of matching
- Matching is textual. It finds the lines that name a changed symbol, not every call path: dynamic calls and wrappers can be missed, and common names can match unrelated code. For HubSpot, Twilio and GitHub, very common symbol names are on a stop-list.
- Changes without symbols are listed without matches.
- Twilio fields named by two common words, such as
callStatus, are listed without matches. - GitHub:
github-scriptsteps in workflow files are not scanned, and GraphQL removals that already happened are not listed.