---
title: "Search for agent-ready sites"
method: GET
path: "/search"
---

# Search for agent-ready sites

`GET /search`

## Query parameters

- `q` string
- `category` 'ai-tools' | 'developer' | 'data' | 'finance' | 'ecommerce' | 'jobs' | 'security' | 'health' | 'education' | 'communication' | 'productivity' | 'news' | 'other' | 'spam'
- `tag` string
- `min_score` integer
- `has_api` boolean
- `has_mcp` boolean
- `has_openapi` boolean
- `has_llms_txt` boolean
- `page` integer

## Response `200`

Search results

- object
  - `access` 'free'
  - `receipt_recorded` boolean — True only when the query-free receipt transaction committed
  - `search_id` string — Query-free receipt for an optional detail-selection request
  - `results` Site[]
    - `id` string, uuid
    - `domain` string
    - `url` string, uri
    - `name` string
    - `description` string
    - `has_llms_txt` boolean
    - `has_ai_plugin` boolean
    - `has_openapi` boolean
    - `has_robots_ai` boolean
    - `has_structured_api` boolean
    - `has_mcp_server` boolean
    - `has_schema_org` boolean
    - `agentic_score` integer
    - `category` string
    - `tags` string[]
    - `is_verified` boolean
    - `is_featured` boolean — Legacy display metadata only; never affects organic score or ordering
  - `paid_offers_available` boolean — True only when a committed search receipt has separately disclosed provider-funded actions for exact returned organic sites
  - `paid_offers` PublicProviderOffer[] — Separate optional actions; never included in results, score, total, or organic ordering
    - `id` string, uuid, required
    - `offer_version` integer, required
    - `provider_domain` string, required
    - `organic_position` integer, required
    - `name` string, required
    - `summary` string, required
    - `action_type` string, required
    - `disclosure` 'Provider-funded action', required
    - `organic_rank_paid` false, required
    - `principal_price` object, required
      - `mode` 'free' | 'fixed' | 'quote' | 'provider_pricing'
      - `amount_minor` integer
      - `currency` 'usd'
    - `nhs_compensation` object, required
      - `event` 'accepted' | 'activated' | 'converted', required
      - `amount_minor` integer, required
      - `currency` 'usd', required
    - `commercial_terms_contract_version` 'nhs-provider-commercial-terms-v1', required
    - `commercial_terms_sha256` string, required
    - `credit_rule` 'full_credit_on_provider_reported_invalid_or_duplicate', required
    - `response_expectation` 'provider_callback_before_attribution_expiry', required
    - `terms_period_anchor_rule` 'billing_period_begins_at_first_activation', required
    - `provider_acknowledges_merchant_of_record` true, required — Provider contractual acknowledgement; NHS does not independently verify Merchant-of-Record status
    - `prepare_action_endpoint` string, uri, required
  - `action_interest` object — Provider-independent way to record caller-attested principal interest against an exact returned organic result
    - `available` boolean, required
    - `search_id` string, required — Exact discovery receipt to pass only when the invocation condition is true
    - `eligible_domains` string[], required — Domains already present in this organic result set; never paid placement
    - `action_types` string[], required
    - `caller_attestation_required` true, required
    - `endpoint` string, uri, required
    - `confirmation_version` 'nhs-action-interest-v1', required
    - `confirmation_url` string, uri, required
    - `invocation_condition` string, required — Requires explicit current principal intent and forbids inference from discovery or selection
    - `provider_contacted` false, required
    - `commercial_proof` false, required
    - `organic_rank_affected` false, required
  - `total` integer
  - `page` integer
  - `per_page` integer
  - `has_next` boolean

## Other responses

- `429` — Temporary search safety limit exceeded; free access resumes after the reset

---

[API](https://skmtc.net/nothumansearch/apis/not-human-search-api.md) · [All operations](https://skmtc.net/nothumansearch/apis/not-human-search-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nothumansearch/not-human-search-api/revisions/bdae4e208ce7/schema)
