Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.scrubbe.com/llms.txt

Use this file to discover all available pages before exploring further.

The service map API gives you a programmatic interface to the dependency graph that underlies your infrastructure. By registering services and their relationships, you enable the platform to calculate blast radius when an incident occurs, surface downstream impact for any given service, and render an accurate topology view for your team. Changes made through the API are reflected in the visual service map immediately. All requests require a Bearer token in the Authorization header.

Get full topology

GET https://your-api-domain.com/api/v1/service-map/topology Returns the entire service dependency graph as a list of nodes and directed edges. Useful for rendering a complete topology visualization.

Response fields

nodes
object[]
required
All registered services.
edges
object[]
required
Directed dependency relationships between services.
curl --request GET \
  --url https://your-api-domain.com/api/v1/service-map/topology \
  --header 'Authorization: Bearer YOUR_TOKEN'

List all services

GET https://your-api-domain.com/api/v1/service-map Returns a flat list of all registered services without edge data.

Response fields

services
object[]
required
Array of service objects.
curl --request GET \
  --url https://your-api-domain.com/api/v1/service-map \
  --header 'Authorization: Bearer YOUR_TOKEN'

Get a service

GET https://your-api-domain.com/api/v1/service-map/:id Retrieves the full record for a single service.

Path parameters

id
string
required
The unique identifier of the service.
curl --request GET \
  --url https://your-api-domain.com/api/v1/service-map/svc_payments \
  --header 'Authorization: Bearer YOUR_TOKEN'

Get downstream impact

GET https://your-api-domain.com/api/v1/service-map/:id/downstream-impact Returns all services that directly or transitively depend on the specified service. Use this before making changes to understand blast radius.

Path parameters

id
string
required
The unique identifier of the upstream service to analyze.

Response fields

impactedServices
object[]
required
Services that would be affected if the target service degrades or goes offline.
curl --request GET \
  --url https://your-api-domain.com/api/v1/service-map/svc_payments/downstream-impact \
  --header 'Authorization: Bearer YOUR_TOKEN'

Create a service

POST https://your-api-domain.com/api/v1/service-map Registers a new service in the service map. After creation, add dependencies with POST /dependencies.

Request body

name
string
required
A unique, human-readable name for the service.
description
string
A short description of the service’s role.
team
string
The team slug responsible for this service.

Response fields

id
string
required
Server-assigned unique identifier for the new service.
name
string
required
The service name.
createdAt
string
required
ISO 8601 creation timestamp.
curl --request POST \
  --url https://your-api-domain.com/api/v1/service-map \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "Payment Service",
    "description": "Handles all payment processing and fraud checks.",
    "team": "payments-team"
  }'

Add a dependency

POST https://your-api-domain.com/api/v1/service-map/dependencies Declares a dependency relationship between two registered services. The sourceId service depends on the targetId service.

Request body

sourceId
string
required
The ID of the downstream (dependent) service.
targetId
string
required
The ID of the upstream (depended-upon) service.

Response fields

id
string
required
Unique identifier for the new dependency record.
sourceId
string
required
The dependent service ID.
targetId
string
required
The upstream service ID.
curl --request POST \
  --url https://your-api-domain.com/api/v1/service-map/dependencies \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "sourceId": "svc_checkout",
    "targetId": "svc_payments"
  }'

Update a service

PATCH https://your-api-domain.com/api/v1/service-map/:id Partially updates a service record. Only fields included in the request body are modified.

Path parameters

id
string
required
The unique identifier of the service to update.

Request body

name
string
New name for the service.
description
string
Updated description.
team
string
Updated owning team slug.
curl --request PATCH \
  --url https://your-api-domain.com/api/v1/service-map/svc_payments \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "description": "Handles payments, fraud checks, and refund processing."
  }'

Delete a service

DELETE https://your-api-domain.com/api/v1/service-map/:id Removes a service and all of its dependency relationships from the service map.

Path parameters

id
string
required
The unique identifier of the service to delete.
curl --request DELETE \
  --url https://your-api-domain.com/api/v1/service-map/svc_payments \
  --header 'Authorization: Bearer YOUR_TOKEN'

Delete a dependency

DELETE https://your-api-domain.com/api/v1/service-map/dependencies/:depId Removes a single dependency relationship. The services themselves are not affected.

Path parameters

depId
string
required
The unique identifier of the dependency to remove.
curl --request DELETE \
  --url https://your-api-domain.com/api/v1/service-map/dependencies/dep_abc123 \
  --header 'Authorization: Bearer YOUR_TOKEN'