{
  "schema_version": "0.1.0",
  "updated_at": "2026-10-17",
  "status": "public_pilot",
  "description": "A small sourced catalog. Provider statements and scoped observations are distinct; unknown requirements never count as satisfied.",
  "services": [
    {
      "id": "crossref",
      "name": "Crossref",
      "category": "Research metadata",
      "summary": "Look up DOI metadata and search scholarly works.",
      "capabilities": [
        "doi.lookup",
        "scholarly.search"
      ],
      "auth": "none",
      "auth_basis": "Provider documentation says no sign-up is required; one anonymous DOI lookup also passed.",
      "docs": "https://www.crossref.org/documentation/retrieve-metadata/rest-api/",
      "endpoint": "https://api.crossref.org/works/{doi}",
      "method": "GET",
      "limits": [
        "Metadata availability varies by work; some abstracts have separate copyright restrictions.",
        "One DOI lookup does not verify completeness or search quality."
      ],
      "example": "https://api.crossref.org/works/10.1038%2Fnphys1170",
      "pricing": "Check current public/polite-pool usage guidance; this record is not a price quote.",
      "reviewed_at": "2026-10-17",
      "evidence": {
        "kind": "scoped_observation",
        "observation": {
          "service_id": "crossref",
          "observed_at": "2026-10-17T15:09:22.986238+00:00",
          "method": "GET",
          "url": "https://api.crossref.org/works/10.1038%2Fnphys1170",
          "assertion": "Return the requested DOI and a nonempty title",
          "scope": "One anonymous read-only request; no reliability, completeness, safety or future-availability guarantee.",
          "passed": true,
          "elapsed_ms": 312
        }
      },
      "constraints": {
        "retention_hours": null,
        "max_total_cost": null
      },
      "source_kind": "provider_documentation"
    },
    {
      "id": "osv",
      "name": "OSV",
      "category": "Software checks",
      "summary": "Retrieve structured open-source vulnerability advisories.",
      "capabilities": [
        "vulnerability.lookup",
        "package.vulnerability_query"
      ],
      "auth": "none",
      "auth_basis": "One anonymous advisory lookup passed. This observation is scoped to the GET endpoint.",
      "docs": "https://google.github.io/osv.dev/api/",
      "endpoint": "https://api.osv.dev/v1/vulns/{id}",
      "method": "GET",
      "limits": [
        "No advisory match is not evidence that a package is secure.",
        "The local check covers advisory retrieval, not package-query completeness."
      ],
      "example": "https://api.osv.dev/v1/vulns/GHSA-jfh8-c2jp-5v3q",
      "pricing": "No payment was required for the recorded lookup; future limits and other operations are not guaranteed.",
      "reviewed_at": "2026-10-17",
      "evidence": {
        "kind": "scoped_observation",
        "observation": {
          "service_id": "osv",
          "observed_at": "2026-10-17T15:09:22.986500+00:00",
          "method": "GET",
          "url": "https://api.osv.dev/v1/vulns/GHSA-jfh8-c2jp-5v3q",
          "assertion": "Return the requested advisory ID with an affected-package list",
          "scope": "One anonymous read-only request; no reliability, completeness, safety or future-availability guarantee.",
          "passed": true,
          "elapsed_ms": 238
        }
      },
      "constraints": {
        "retention_hours": null,
        "max_total_cost": null
      },
      "source_kind": "provider_documentation"
    },
    {
      "id": "httpbin",
      "name": "httpbin",
      "category": "HTTP testing",
      "summary": "Inspect how an HTTP request is received using a public echo endpoint.",
      "capabilities": [
        "http.echo",
        "http.request_inspection"
      ],
      "auth": "none",
      "auth_basis": "One anonymous GET echoed the requested marker correctly.",
      "docs": "https://httpbin.org/",
      "endpoint": "https://httpbin.org/get",
      "method": "GET",
      "limits": [
        "Use synthetic test data; requests are sent to a third-party service.",
        "A public test endpoint is not a production availability guarantee."
      ],
      "example": "https://httpbin.org/get?directory_probe=example",
      "pricing": "No payment was required for the recorded GET; no service-level agreement is asserted.",
      "reviewed_at": "2026-10-17",
      "evidence": {
        "kind": "scoped_observation",
        "observation": {
          "service_id": "httpbin",
          "observed_at": "2026-10-17T15:09:22.986118+00:00",
          "method": "GET",
          "url": "https://httpbin.org/get?directory_probe=dauntless-20261017",
          "assertion": "Echo the directory_probe parameter in JSON",
          "scope": "One anonymous read-only request; no reliability, completeness, safety or future-availability guarantee.",
          "passed": true,
          "elapsed_ms": 367
        }
      },
      "constraints": {
        "retention_hours": null,
        "max_total_cost": null
      },
      "source_kind": "provider_documentation"
    },
    {
      "id": "brave-search",
      "name": "Brave Search API",
      "category": "Web search",
      "summary": "Retrieve web search results through Brave's search API.",
      "capabilities": [
        "web.search"
      ],
      "auth": "api_key",
      "auth_basis": "Provider examples require an X-Subscription-Token API key.",
      "docs": "https://api-dashboard.search.brave.com/app/documentation/web-search/get-started",
      "endpoint": "https://api.search.brave.com/res/v1/web/search",
      "method": "GET",
      "limits": [
        "Requires provider credentials and an applicable plan.",
        "No authenticated search or current price was independently checked."
      ],
      "example": null,
      "pricing": "Consult the provider's current plan; exact cost is unknown in this pilot.",
      "reviewed_at": "2026-10-17",
      "evidence": {
        "kind": "documentation_review",
        "observation": null
      },
      "constraints": {
        "retention_hours": null,
        "max_total_cost": null
      },
      "source_kind": "provider_documentation"
    },
    {
      "id": "exa",
      "name": "Exa",
      "category": "Web search",
      "summary": "Search the web and request source content through a structured API.",
      "capabilities": [
        "web.search",
        "web.content_retrieval"
      ],
      "auth": "api_key",
      "auth_basis": "Provider documentation requires an Exa key in x-api-key or Authorization.",
      "docs": "https://exa.ai/docs/reference/search",
      "endpoint": "https://api.exa.ai/search",
      "method": "POST",
      "limits": [
        "Requires provider credentials; options affect the operation and cost.",
        "No authenticated request or content-quality check was performed."
      ],
      "example": null,
      "pricing": "Consult the provider's current pricing; this record makes no free-credit or cost guarantee.",
      "reviewed_at": "2026-10-17",
      "evidence": {
        "kind": "documentation_review",
        "observation": null
      },
      "constraints": {
        "retention_hours": null,
        "max_total_cost": null
      },
      "source_kind": "provider_documentation"
    },
    {
      "id": "hookdeck-console",
      "name": "Hookdeck Console",
      "category": "Webhook inspection",
      "summary": "Capture and inspect HTTP requests at a temporary test URL.",
      "capabilities": [
        "webhook.capture",
        "webhook.inspect_browser"
      ],
      "auth": "none",
      "auth_basis": "Hookdeck's documentation describes Console as a test URL with no account required.",
      "docs": "https://hookdeck.com/docs",
      "endpoint": null,
      "method": null,
      "limits": [
        "This record describes Console, not every Hookdeck product.",
        "API retrieval and 24-hour retention are unknown; this is not an exact match for those requirements."
      ],
      "example": null,
      "pricing": "Provider describes a free test URL; retention, limits and automation suitability remain unverified.",
      "reviewed_at": "2026-10-17",
      "evidence": {
        "kind": "documentation_review",
        "observation": null
      },
      "constraints": {
        "retention_hours": null,
        "max_total_cost": null
      },
      "source_kind": "provider_documentation"
    },
    {
      "id": "ntfy",
      "name": "ntfy public topics",
      "category": "Notifications",
      "summary": "Publish messages to topic subscribers over HTTP.",
      "capabilities": [
        "notification.publish"
      ],
      "auth": "none",
      "auth_basis": "Publishing documentation describes topics created without sign-up; protected topics and other installations can require authentication.",
      "docs": "https://docs.ntfy.sh/publish/",
      "endpoint": "https://ntfy.sh/{topic}",
      "method": "POST",
      "limits": [
        "Anyone with access to an unprotected topic may read or publish messages; do not use it for secrets.",
        "Sending is a consequential action; this pilot did not send a notification."
      ],
      "example": null,
      "pricing": "Check hosting limits and topic features; no exact price or delivery guarantee is asserted.",
      "reviewed_at": "2026-10-17",
      "evidence": {
        "kind": "documentation_review",
        "observation": null
      },
      "constraints": {
        "retention_hours": null,
        "max_total_cost": null
      },
      "source_kind": "provider_documentation"
    },
    {
      "id": "open-meteo",
      "name": "Open-Meteo",
      "category": "Weather data",
      "summary": "Retrieve numerical weather forecasts with explicit locations, variables and units.",
      "capabilities": [
        "weather.forecast"
      ],
      "auth": "unknown",
      "auth_basis": "Authentication and commercial eligibility vary by offering; this pilot has not established the applicable mode for your use.",
      "docs": "https://open-meteo.com/en/docs",
      "endpoint": "https://api.open-meteo.com/v1/forecast",
      "method": "GET",
      "limits": [
        "Check usage eligibility, current terms and any commercial account requirements.",
        "Forecast accuracy was not tested; variable units and aggregation periods must be respected."
      ],
      "example": null,
      "pricing": "Commercial terms and applicable cost are unknown in this pilot.",
      "reviewed_at": "2026-10-17",
      "evidence": {
        "kind": "documentation_review",
        "observation": null
      },
      "constraints": {
        "retention_hours": null,
        "max_total_cost": null
      },
      "source_kind": "provider_documentation"
    }
  ]
}
