EvoHub DocsEvoHub Docs Sign in

List services

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs https://docs.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs": {
      "url": "https://docs.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs": {
      "type": "http",
      "url": "https://docs.evohub.io/mcp"
    }
  }
}
GET/api/v1/catalog/components

A page of the organization's services, ordered by sort. For a key that also holds catalog:resource:read, each service carries live_environments: how many environments it runs in.

Requires the catalog:component:read scope.

Authorization

Any one of:

Parameters

Query parameters

  • owner_team_id string
    Only services owned by this team.
    Example: team_3b6f0e2a-1c4d-4e8f-9a7b-2d5c6e8f0a1b
  • tier integer
    Only services whose tier is at this place in the order, 1 the most critical.
    Minimum: 1 · Maximum: 4
  • lifecycle Lifecycle
    One of: experimental production deprecated retired
  • kind ComponentKind
    One of: service library database website job other
  • q string
    Search the name and slug, at most 100 characters.
    Max length: 100
  • sort string
    slug (the default), kind, tier (services with no tier last) or lifecycle; a leading - reverses it. Any other value is refused.
    Example: tier
  • limit integer
    Page size, 20 by default, at most 100.
    Minimum: 1 · Maximum: 100
  • cursor string
    The previous page's pagination.next_cursor.

Responses

200

A page of services.

Content type: application/json

Type: object

  • data array of Component & object
    • id string
      Example: cmp_7a1d3f5b9c2e4a6b8d0f1e3c5a7b9d2f
    • org_id string
    • slug string
      Example: payments-api
    • display_name string
      Example: Payments API
    • description string
    • kind ComponentKind
      One of: service library database website job other
    • owner_team_id string | null
    • tier_id string | null
    • tier integer | null
      The tier's place in the order, 1 the most critical.
    • sla_overrides SLATargets
      Show SLATargets properties
      • availability number
        A percentage above 0 and at most 100, up to 3 decimals.
        Example: 99.9
      • response object
        Minutes to acknowledge, per On-Call severity (critical, high, medium, low, info), 1 to 525600.
        Other keys: integer
      • resolution object
        Minutes to resolve, per severity.
        Other keys: integer
      • support_hours object
        • kind string required
          One of: 24x7 business
        • timezone string
          Example: Europe/Istanbul
        • days array of integer
          ISO weekdays, 1 is Monday.
        • from string
          Example: 09:00
        • to string
          Example: 18:00
      • max_unowned_days integer
        Minimum: 0 · Maximum: 3650
    • lifecycle Lifecycle
      One of: experimental production deprecated retired
    • repo_url string
    • docs_url string
    • runbook_url string
    • created_by string
    • created_at string (date-time)
    • updated_at string (date-time)
    • live_environments integer
      Environments it runs in. Only with catalog:resource:read.
  • pagination Pagination
    Show Pagination properties
    • next_cursor string | null
    • has_more boolean
    • total integer
      How many match, on the first page of the resource and application lists.

400

The request is not valid: a field or filter value is wrong (VALIDATION_ERROR, with a sentence saying what), the body is not the expected JSON or carries an unknown field (INVALID_BODY), the cursor is not one this list gave (INVALID_CURSOR), a binding names a service that does not exist (UNKNOWN_COMPONENT), or a PATCH tries to change a slug (SLUG_IMMUTABLE).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

401

No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

403

The key lacks a scope this endpoint needs (FORBIDDEN).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

429

Too many requests (RATE_LIMITED). Wait for Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait before retrying.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

500

Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

Example request

curl -X GET 'https://evohub.io/api/v1/catalog/components' \
  -H 'Authorization: Bearer <TOKEN>'