New⌘K search and an impact score you can explain

See what changes.
Know what breaks.

Graphwake maps which teams consume each endpoint of your OpenAPI specs, shows the impact before the merge, and tells only those teams in Slack, Microsoft Teams or email.

Pick a change or a team.
orders-apiv2.4.0v2.5.0
GET/orders/{id}
Pushed by payments-team
#team-checkout +1 channel

Breaking change in GET /orders/{id}

total was removed

2 of 5 teams subscribe to this endpoint and hear about the change. The other 3 aren't pinged.
Alerts go to
  • Slack
  • Microsoft Teams
  • Email
CI step for
  • GitHub Actions
  • GitLab CI
  • Azure DevOps
  • Bitbucket Pipelines
  • Jenkins

Every endpoint, who owns it, and who depends on it.

Graphwake builds a map from your OpenAPI specs and the endpoints each team subscribes to. Before a change ships, it shows which teams it reaches and how risky it is. Afterwards, it keeps a record of every change and every decision.

orders-api

Owned by payments-team, 5 endpoints, 4 consumer teams
1 orphan endpoint
  • GET/orders/{id}checkoutmobile-app
  • POST/orderscheckout
  • GET/ordersreportingmobile-app
  • PATCH/orders/{id}/statusowner: fulfillmentinventory
  • DELETE/orders/{id}/legacyNo consumers
  • checkout2 endpoints
  • mobile-app2 endpoints
  • reporting1 endpoint
  • inventory1 endpoint
The product, view by view. Pick any item in the sidebar.

The map is only the start.

New in this release: an impact score you can explain line by line, search that jumps to any endpoint, service or team, a weekly report on what nobody owns, and a CI agent for five pipelines.

An impact score with the working shown

Every pull request and spec upload gets a score from 0 to 100. Four plain rules add up to it, so a reviewer can argue with the number instead of guessing at it.

79/100HighPull request #1284 on orders-api
3 breaking changes
10 each, up to 30
30
3 consumer teams affected
12 each, up to 36
36
13 people to notify
1 each, up to 14
13
Blind spots
10 each, up to 20
0

⌘K to any endpoint

Press ⌘K anywhere in Graphwake. Endpoints open on the graph already selected, services open their graph, teams open their page.

A Monday report on what nobody owns

Admins get one e-mail a week listing endpoints with no consumers and services with no owner, so the map stays honest without a clean-up project.

A CI agent that never fails your build

One step sends the spec from GitHub Actions, GitLab CI, Azure DevOps, Bitbucket Pipelines or Jenkins. If Graphwake can’t be reached, the step logs it and your pipeline carries on.

Pick an endpoint. See who it reaches.

Search any endpoint across your services. Graphwake shows who owns it, which teams call it, and how far a breaking change would travel, before anyone opens the pull request.

GET/orders/{id}
orders-api·Owned by payments-team
Teams it reaches
2
People notified
10
Blast radius
32Low

If this endpoint breaks

  • mobile-app6 peopleSlack #mobile-alertsAlso calls 1 other endpoint of orders-api
  • checkout4 peopleSlack #team-checkoutAlso calls 1 other endpoint of orders-api

A breaking change here sends 2 Slack messages. Last change: Breaking change today, PR #1284.

Sample data from a workspace with 24 services. Try customers, legacy or catalog.

Not mapped yet? Graphwake suggests who it reaches.

New endpoints start with no subscribers, and subscriptions drift. When an endpoint is added or changed and nobody is mapped to it, Discovery reads your specs and existing subscriptions and suggests the teams it is likely to affect. One click turns a suggestion into a subscription.

orders-api, PR #1302
POST/orders/{id}/returns
New endpoint0 subscribers
Request
ReturnRequest
Response
Order

Signals it used

  • Teams subscribed to other /orders/{id} endpoints
  • Endpoints that return the same Order schema
  • Who owns order status changes
  • Suggestions teams confirmed or dismissed before

Suggested teams

0 of 3 reviewed
  • checkout92%

    Subscribes to 2 other /orders/{id} endpoints and reads the Order object this one returns.

  • mobile-app78%

    Calls GET /orders/{id} and GET /orders, both built on the same Order schema.

  • fulfillment64%

    Owns PATCH /orders/{id}/status. A return changes an order’s status.

1 more team scored below 40% and isn’t shown. Nobody is subscribed until a team confirms.

Suggestions come from your specs and subscriptions. Graphwake never reads your code or your traffic.

Alerts land where your team reads.

Slack, Microsoft Teams or email: each team picks the channel it already reads. Every alert says what changed, who changed it and which endpoint you depend on.

  • Only breaking changes by default

    Removed fields, new required parameters, changed types. Additions stay quiet unless you ask for them.

  • Subscriptions belong to the consumer

    Your team decides which endpoints it depends on. The provider team doesn't have to keep a list.

  • A history for every endpoint

    Every version of a contract and who changed it, so the next incident review starts with facts.

GraphwakeAppin #team-checkout
Breaking change in an endpoint your team uses

orders-api changed GET /orders/{id} in pull request #1284.

  • total was removed from the response
  • currency is now a required query parameter

Changed by payments-team. Subscribed: checkout, mobile-app.

View diffOpen pull requestMute this endpoint
The same alert, wherever your team reads it.

Two ways to send us your spec.

Teams mark the endpoints they consume. From then on, every new version of the spec is compared with the last one and checked for anything that would break a client.

Give us the spec URL

No setup on your side. Paste the address where your OpenAPI document is published; Graphwake checks it regularly and compares each new version with the previous one.

Add a spec
url:    https://api.yourcompany.com/orders/openapi.json
owner:  payments-team

Add one step to your pipeline

A CI step sends the spec on every pull request. Consumers hear about a breaking change while it is still a review comment, not an incident.

.github/workflows/api.yml
- uses: graphwake/check@v1
  with:
    spec: ./openapi.yaml

Built for the people who sign off.

We read your spec, not your code
The service works from your OpenAPI document. It never needs access to your repositories.
Alerts go only to subscribed teams
Change details reach the teams that depend on an endpoint, not every channel in the company.
Nothing runs in production
No agent in your runtime and no traffic inspection. Changes are found by comparing spec versions.
Sign in with Microsoft Entra ID
Single sign-on over OIDC, your own sign-in address, and people from your verified domain join without an invite.
Your data stays in the EU
Graphwake runs in Frankfurt (eu-central-1). Each workspace is kept apart by row-level security in the database.
The CI step never blocks a build
If Graphwake can’t be reached, the step logs it and exits cleanly. Your pipeline is never waiting on us.

Questions

Something we haven't answered? Write to us and a person replies.

What is Graphwake?

Graphwake is a dependency map for your APIs. It watches your OpenAPI specs, knows which teams consume each endpoint and which team owns it, and works out who a change affects before it ships. Only the people affected by a change hear about it, and every change and decision is kept in one history.

Who owns an endpoint?

Any team can be named the owner of a service or of a single endpoint. Ownership is optional: endpoints without an owner, or without any consumer, are flagged so someone can claim or retire them.

How does Graphwake know who a new endpoint affects?

When an endpoint is added or changed and no team is mapped to it, Discovery compares it with the rest of your specs and subscriptions: teams that use neighbouring endpoints, endpoints that share the same schema, who owns what, and suggestions teams accepted or dismissed before. Each suggestion comes with a score and the reason behind it, from clear rules rather than a language model. A team becomes a subscriber only when someone confirms it.

How is Graphwake different from Bump.sh or oasdiff?

oasdiff compares two OpenAPI files and finds breaking changes. Bump.sh publishes API docs and changelogs. Both answer "what changed?". Graphwake also answers "who is affected, and how badly?": consumer teams subscribe to endpoints, each pull request gets an impact score before it merges, and each breaking change is routed only to the teams that use that endpoint.

What counts as a breaking change?

A change that can make an existing client fail: removing an endpoint or a response field, adding a required parameter or request field, changing a field's type, or narrowing the values a field accepts. Additions such as a new optional field are not breaking and stay quiet by default.

Do you need access to our code?

No. Graphwake only needs your OpenAPI spec. You either give us the URL where the spec is published, or a step in your CI pipeline sends the spec to us.

Where do alerts show up?

In Slack, Microsoft Teams or email. Each team chooses its channel, and an alert names the endpoint, what changed, who changed it and which pull request did it.

Which CI systems are supported?

The CI agent works with GitHub Actions, GitLab CI, Azure DevOps, Bitbucket Pipelines and Jenkins. It never fails or blocks your pipeline. If you’d rather not touch CI at all, give us your spec’s URL and we check it every 30 minutes.

How does pricing work?

A flat monthly price set by the number of endpoints you watch, plus $1.99 a month for each person beyond the plan’s included users. Basic is $49 a month for up to 150 endpoints and 10 users, Pro is $119 a month for up to 500 endpoints and 30 users, and Enterprise is priced with you.

What happens when the trial ends?

The trial lasts 7 days and includes every feature. You don’t enter a card to start. Before it ends, pick a plan from the billing page; if you don’t, the workspace closes and nobody is charged.

What if we go over our plan’s limits?

Nothing stops working. Alerts keep going out and every endpoint stays watched; Graphwake tells your admin it’s time to move up a plan.

How do I get started?

Sign up with your work email, paste a spec URL or add the CI step, and invite your teams. Each team marks the endpoints it calls, and the next breaking change reaches them. Most of that fits in an afternoon.

Wake up to every dependency.

Graphwake maps who depends on every endpoint, scores each change before it merges, and tells only the teams it breaks. Start a 7-day trial with every feature, no card needed, and see your first impact score the same day.

New⌘K search and an impact score you can explain

See what changes. Know what breaks.

Graphwake maps which teams consume each endpoint of your OpenAPI specs, shows the impact before the merge, and tells only those teams in Slack, Microsoft Teams or email.

Pick a change or a team.
orders-apiv2.4.0v2.5.0
GET/orders/{id}
Pushed by payments-team
#team-checkout +1 channel

Breaking change in GET /orders/{id}

total was removed

Two of five teams call this endpoint. They hear about the change. The other three aren't pinged.
Alerts go to
  • Slack
  • Microsoft Teams
  • Email
CI step
  • GitHub Actions
  • GitLab CI
  • Azure DevOps
  • Bitbucket Pipelines
  • Jenkins

Every endpoint, who owns it, and who depends on it.

Graphwake builds a map from your OpenAPI specs and the endpoints each team subscribes to. Before a change ships, it shows which teams it reaches and how risky it is. Afterwards, it keeps a record of every change and every decision.

orders-api

Owned by payments-team, 5 endpoints, 4 consumer teams
1 orphan endpoint
  • GET/orders/{id}checkoutmobile-app
  • POST/orderscheckout
  • GET/ordersreportingmobile-app
  • PATCH/orders/{id}/statusowner: fulfillmentinventory
  • DELETE/orders/{id}/legacyNo consumers
  • checkout2 endpoints
  • mobile-app2 endpoints
  • reporting1 endpoint
  • inventory1 endpoint
The product, view by view. Pick any item in the sidebar.

The map is only the start.

New in this release: an impact score you can explain line by line, search that jumps to any endpoint, service or team, a weekly report on what nobody owns, and a CI agent for five pipelines.

An impact score with the working shown

Every pull request and spec upload gets a score from 0 to 100. Four plain rules add up to it, so a reviewer can argue with the number instead of guessing at it.

79/100HighPull request #1284 on orders-api
3 breaking changes
10 each, up to 30
30
3 consumer teams affected
12 each, up to 36
36
13 people to notify
1 each, up to 14
13
Blind spots
10 each, up to 20
0

⌘K to any endpoint

Press ⌘K anywhere in Graphwake. Endpoints open on the graph already selected, services open their graph, teams open their page.

A Monday report on what nobody owns

Admins get one e-mail a week listing endpoints with no consumers and services with no owner, so the map stays honest without a clean-up project.

A CI agent that never fails your build

One step sends the spec from GitHub Actions, GitLab CI, Azure DevOps, Bitbucket Pipelines or Jenkins. If Graphwake can’t be reached, the step logs it and your pipeline carries on.

Pick an endpoint. See who it reaches.

Search any endpoint across your services. Graphwake shows who owns it, which teams call it, and how far a breaking change would travel, before anyone opens the pull request.

GET/orders/{id}
orders-api·Owned by payments-team
Teams it reaches
2
People notified
10
Blast radius
32Low

If this endpoint breaks

  • mobile-app6 peopleSlack #mobile-alertsAlso calls 1 other endpoint of orders-api
  • checkout4 peopleSlack #team-checkoutAlso calls 1 other endpoint of orders-api

A breaking change here sends 2 Slack messages. Last change: Breaking change today, PR #1284.

Sample data from a workspace with 24 services. Try customers, legacy or catalog.

Not mapped yet? Graphwake suggests who it reaches.

New endpoints start with no subscribers, and subscriptions drift. When an endpoint is added or changed and nobody is mapped to it, Discovery reads your specs and existing subscriptions and suggests the teams it is likely to affect. One click turns a suggestion into a subscription.

orders-api, PR #1302
POST/orders/{id}/returns
New endpoint0 subscribers
Request
ReturnRequest
Response
Order

Signals it used

  • Teams subscribed to other /orders/{id} endpoints
  • Endpoints that return the same Order schema
  • Who owns order status changes
  • Suggestions teams confirmed or dismissed before

Suggested teams

0 of 3 reviewed
  • checkout92%

    Subscribes to 2 other /orders/{id} endpoints and reads the Order object this one returns.

  • mobile-app78%

    Calls GET /orders/{id} and GET /orders, both built on the same Order schema.

  • fulfillment64%

    Owns PATCH /orders/{id}/status. A return changes an order’s status.

1 more team scored below 40% and isn’t shown. Nobody is subscribed until a team confirms.

Suggestions come from your specs and subscriptions. Graphwake never reads your code or your traffic.

Alerts land in Slack, Microsoft Teams or email.

Each team picks the channel it already reads. Every alert says what changed, who changed it and which endpoint you depend on.

  • Only breaking changes by default

    Removed fields, new required parameters, changed types. Additions stay quiet unless you ask for them.

  • Subscriptions belong to the consumer

    Your team decides which endpoints it depends on. The provider team doesn't have to keep a list.

  • A history for every endpoint

    Every version of a contract and who changed it, so the next incident review starts with facts.

GraphwakeAppin #team-checkout
Breaking change in an endpoint your team uses

orders-api changed GET /orders/{id} in pull request #1284.

  • total was removed from the response
  • currency is now a required query parameter

Changed by payments-team. Subscribed: checkout, mobile-app.

View diffOpen pull requestMute this endpoint
The same alert, wherever your team reads it.

Send us your spec, whichever way suits you.

Teams mark the endpoints they consume. From then on, every new version of the spec is compared with the last one and checked for anything that would break a client.

Give us the spec URL

No setup

Paste the address where your OpenAPI document is published. Graphwake checks it regularly and compares each new version with the previous one.

Add a spec
url:    https://api.yourcompany.com/orders/openapi.json
owner:  payments-team

Add one step to your pipeline

Catches it before merge

A CI step sends the spec on every pull request. Consumers hear about a breaking change while it is still a review comment, not an incident.

.github/workflows/api.yml
- uses: graphwake/check@v1
  with:
    spec: ./openapi.yaml

Built for the people who sign off on new tools.

We read your spec, not your code
The service works from your OpenAPI document. It never needs access to your repositories.
Alerts go only to subscribed teams
Change details reach the teams that depend on an endpoint, not every channel in the company.
Nothing runs in production
No agent in your runtime and no traffic inspection. Changes are found by comparing spec versions.
Sign in with Microsoft Entra ID
Single sign-on over OIDC, your own sign-in address, and people from your verified domain join without an invite.
Your data stays in the EU
Graphwake runs in Frankfurt (eu-central-1). Each workspace is kept apart by row-level security in the database.
The CI step never blocks a build
If Graphwake can’t be reached, the step logs it and exits cleanly. Your pipeline is never waiting on us.

Questions

What is Graphwake?

Graphwake is a dependency map for your APIs. It watches your OpenAPI specs, knows which teams consume each endpoint and which team owns it, and works out who a change affects before it ships. Only the people affected by a change hear about it, and every change and decision is kept in one history.

Who owns an endpoint?

Any team can be named the owner of a service or of a single endpoint. Ownership is optional: endpoints without an owner, or without any consumer, are flagged so someone can claim or retire them.

How does Graphwake know who a new endpoint affects?

When an endpoint is added or changed and no team is mapped to it, Discovery compares it with the rest of your specs and subscriptions: teams that use neighbouring endpoints, endpoints that share the same schema, who owns what, and suggestions teams accepted or dismissed before. Each suggestion comes with a score and the reason behind it, from clear rules rather than a language model. A team becomes a subscriber only when someone confirms it.

How is Graphwake different from Bump.sh or oasdiff?

oasdiff compares two OpenAPI files and finds breaking changes. Bump.sh publishes API docs and changelogs. Both answer "what changed?". Graphwake also answers "who is affected, and how badly?": consumer teams subscribe to endpoints, each pull request gets an impact score before it merges, and each breaking change is routed only to the teams that use that endpoint.

What counts as a breaking change?

A change that can make an existing client fail: removing an endpoint or a response field, adding a required parameter or request field, changing a field's type, or narrowing the values a field accepts. Additions such as a new optional field are not breaking and stay quiet by default.

Do you need access to our code?

No. Graphwake only needs your OpenAPI spec. You either give us the URL where the spec is published, or a step in your CI pipeline sends the spec to us.

Where do alerts show up?

In Slack, Microsoft Teams or email. Each team chooses its channel, and an alert names the endpoint, what changed, who changed it and which pull request did it.

Which CI systems are supported?

The CI agent works with GitHub Actions, GitLab CI, Azure DevOps, Bitbucket Pipelines and Jenkins. It never fails or blocks your pipeline. If you’d rather not touch CI at all, give us your spec’s URL and we check it every 30 minutes.

How does pricing work?

A flat monthly price set by the number of endpoints you watch, plus $1.99 a month for each person beyond the plan’s included users. Basic is $49 a month for up to 150 endpoints and 10 users, Pro is $119 a month for up to 500 endpoints and 30 users, and Enterprise is priced with you.

What happens when the trial ends?

The trial lasts 7 days and includes every feature. You don’t enter a card to start. Before it ends, pick a plan from the billing page; if you don’t, the workspace closes and nobody is charged.

What if we go over our plan’s limits?

Nothing stops working. Alerts keep going out and every endpoint stays watched; Graphwake tells your admin it’s time to move up a plan.

How do I get started?

Sign up with your work email, paste a spec URL or add the CI step, and invite your teams. Each team marks the endpoints it calls, and the next breaking change reaches them. Most of that fits in an afternoon.

Wake up to every dependency.

Graphwake maps who depends on every endpoint, scores each change before it merges, and tells only the teams it breaks. Start a 7-day trial with every feature, no card needed, and see your first impact score the same day.