Evergreen
What to Do When an API Policy Changes
Preserve the old and new policy, map journeys and data, classify the change, choose adapt, negotiate, replace, narrow, or exit, then communicate clearly.
In this article
What Happens When an API Policy Changes Under Your Product?
When an API policy changes, preserve the old and new record, identify the effective date, map every affected user journey and data flow, separate contractual permission from technical feasibility, and choose whether to adapt, negotiate, replace, narrow, or exit. Treat the event as a product, engineering, data, legal, support, and communication change.
An engineering patch alone can make the requests succeed while leaving the product noncompliant or the user experience broken.
Stabilize the first response
Capture the notice, policy, documentation, schema, terms, brand rules, pricing, rate limits, email, dashboard message, and current production behavior. Record when each item was retrieved and whether the provider labels it current, archived, or effective later.
Do not overwrite the prior version in the incident record. A redline between versions is more useful than a summary written from memory.
Then identify four dates: publication, notice receipt, effective date, and the date production behavior actually changes. They may differ.
flowchart TD
A["Upstream change detected"] --> B["Preserve and version evidence"]
B --> C["Map journeys, data, contracts, and operations"]
C --> D{"Change classification"}
D --> E["Adapt"]
D --> F["Negotiate"]
D --> G["Replace or narrow"]
D --> H["Exit"]
E --> I["Test, communicate, monitor"]
F --> I
G --> I
H --> I
Classify what changed
An API change is not limited to endpoints and fields.
| Change surface | Questions to answer |
|---|---|
| Access | Are credentials, eligibility, review, or termination rights different? |
| Permission | Are use, display, competition, training, sharing, or retention rules different? |
| Interface | Are endpoints, fields, types, authentication, or webhooks changing? |
| Economics | Are price, quota, rate, minimums, or support tiers changing? |
| Attribution | Must source labels, logos, links, or metadata appear in new places? |
| Privacy | Do consent, deletion, visibility, transfer, or subprocessors change? |
| Operations | Are latency, reliability, environments, monitoring, or escalation changing? |
| User experience | Which journeys, history, exports, and expectations are affected? |
Garmin's June 2025 API Brand Guidelines illustrate a policy change with technical reach. Attribution applied to primary views, secondary screens, exported and downstream data, derived outputs, and social visuals.
Strava's current API agreement illustrates upstream control from another direction. It imposes use restrictions and allows Strava to modify or discontinue access. The exact rights in a reader's relationship depend on the applicable agreement and law.
Map the dependency to the user journey
List every place the upstream input enters, changes, or leaves the product.
| Journey or system | Upstream dependency | Failure effect | Stored data | Downstream recipients | Owner |
|---|---|---|---|---|---|
| Account connection | OAuth and approved scope | New users cannot connect | Tokens and account link | Identity system | Platform engineering |
| Activity import | Endpoint and webhook | New activities stop or arrive late | Raw and normalized records | Feed and analytics | Data product |
| Activity display | Field and attribution rules | View becomes incomplete or noncompliant | Cached activity | User interface | Product |
| Coaching insight | Permitted derived use | Feature must change or stop | Derived metrics | User and coach | Product and legal |
| Export | Transfer and branding rules | User export or partner delivery changes | Export package | User or partner | Data governance |
| Deletion | Privacy webhook and retention rule | Stale data remains | All related records | Internal and downstream | Privacy owner |
The map should include jobs, support scripts, analytics, experimentation, machine learning, backups, data warehouses, exports, and customer contracts. A hidden scheduled process can be as critical as the visible feature.
Separate provider practice from your rights
Some providers offer transition protections. GitHub's current breaking-change documentation describes dated API versions, advance notice, migration, testing, and at least 24 months of support for the previous version after a new version is released.
Stripe's API upgrade guidance describes pinned behavior, backward-compatible monthly releases, major releases with breaking changes, test headers, webhook considerations, and a limited rollback window.
These are examples of provider practice. They do not create a general right to notice, version support, or rollback. Read the actual agreement, documentation, and notice governing the integration.
Choose a response explicitly
Adapt when the upstream remains strategically useful and the change can be implemented without violating the product's commitments or economics.
Negotiate when scope, timeline, attribution, use, rate, or migration support materially affects shared customers and the provider has a partner channel. Preserve what was requested, offered, and confirmed.
Replace when a substitute can serve the user with acceptable migration, quality, permission, and cost. A second provider is not a fallback if it depends on the same upstream system.
Narrow when the integration remains valuable but one use, data class, region, or journey creates disproportionate risk.
Exit when the change makes the product unlawful, unsafe, uneconomic, strategically captive, or inconsistent with user promises. Exit includes deletion, export, contract, support, and communication work.
Test more than the endpoint
Create representative accounts and historical records. Test authentication, imports, updates, duplicates, deletions, visibility changes, rate limits, retries, time zones, units, derived values, exports, and downstream webhooks.
Test the user-facing labels and source metadata. Test what happens after a user revokes access. Confirm whether the provider applies the new behavior by account, version, region, or program.
Monitor both technical success and business continuity. An HTTP 200 response can still contain missing fields, delayed data, a changed meaning, or a policy violation.
Communicate what the user needs
Explain which feature or connection is affected, what still works, whether action is required, how historical data is treated, which alternatives exist, and when the next update will arrive.
Distinguish the provider's published requirement, your interpretation, your chosen response, and any unresolved negotiation. Do not ask users to infer a legal conclusion from a product notice.
[[How to Communicate a Partner Dispute Without Making It Worse]] provides the public sequence. [[User Data Portability and Platform Attribution Are Different Questions]] helps when source and movement are being confused.
Reduce the next dependency
After stabilization, update a dependency register with control, concentration, substitute, data rights, exit time, and funded mitigation. Add contract and policy monitoring. Store an approved version of critical documentation and record its effective date.
Build adapters around provider-specific schemas where the cost is justified. Keep organization-owned identifiers and derived records separate from upstream identifiers. Preserve an export path for users when appropriate. Exercise the fallback before the incident.
[[How to Measure Platform Dependency Risk Before It Breaks Your Startup]] turns the postmortem into a repeatable review.
This page provides general product and operational guidance, not legal advice or a promise of API access. It reflects sources reviewed on July 27, 2026. AI assistance was used for research organization, drafting, and validation. Publication remains unauthorized.
Sources
Follow the evidence.
- patents.google.com: US9116922patents.google.com
- communityhub.strava.com: update regarding garmin attribution best practice 11916communityhub.strava.com
- developer.garmin.com: Garmin Developer API Brand Guidelinesdeveloper.garmin.com
- storage.courtlistener.com: gov.uscourts.cod.247832.19.0storage.courtlistener.com
- docs.stripe.com: upgradesdocs.stripe.com
- docs.github.com: breaking changesdocs.github.com
- reddit.com: setting the record straight about garminreddit.com
- dockets.justia.com: 247832dockets.justia.com
- prsa.org: ethicsprsa.org
- w3.org: prov ow3.org
- developers.strava.com: guidelinesdevelopers.strava.com
- patents.google.com: US9778053patents.google.com
- ico.org.uk: right to data portabilityico.org.uk
- garminrumors.com: Strava vs Garmin Lawsuit Segments 9 30garminrumors.com
- developers.strava.com: getting starteddevelopers.strava.com
- developers.strava.com: webhooksdevelopers.strava.com
- strava.com: apistrava.com
- developer.garmin.com: brand guidelinesdeveloper.garmin.com
- patents.google.com: US9297651patents.google.com