---
title: "Search actionable trials and savings first"
method: GET
path: "/api/v1/search"
---

# Search actionable trials and savings first

`GET /api/v1/search`

## Request

- Base URL: `https://andrewsfreebies.com`
- URL: `https://andrewsfreebies.com/api/v1/search`
- Auth: none declared

The default auto scope prioritizes trials and economically redeemable savings without crowding answers with repetitive public-service records. Question-shaped demand can return one or two discovery-safe answer guides separately from normalized records; read the first guide before choosing among its supporting offers. Use public-benefits for eligibility-based services and open-source only for source code.

## Query parameters

- `q` string, required
- `scope` 'auto' | 'actionable' | 'software' | 'savings' | 'public-benefits' | 'open-source' | 'all'
- `limit` integer

## Response `200`

Discovery-safe answer guides plus one scoped normalized record list with trial, saving, public-benefit, or open-source provenance

- ToolSearchResponse
  - `api_version` '2.1', required
  - `query` string, required
  - `requested_scope` string, required
  - `resolved_scope` string, required
  - `count` integer, required: Backward-compatible normalized record count; equals items.length.
  - `answer_guide_count` integer, required: Number of discovery-safe synthesized guides returned separately from records.
  - `result_count` integer, required: Total useful results across answer_guides and items; also reported in X-Result-Count.
  - `sources` object, required
  - `answer_guides` AnswerGuide[], required
    - `result_type` 'answer-guide', required
    - `id` string, required
    - `title` string, required
    - `description` string, required
    - `updated` string, date, required
    - `source_backed_matches` integer, required
    - `url` string, uri, required
    - `markdown_url` string, uri, required: Compact guide document for non-MCP clients. MCP clients can call fetch with id.
    - `agent_instruction` string, required
  - `items` object[], required
    - `result_type` 'trial' | 'saving' | 'public-benefit' | 'open-source-repository'
    - `record_type` string, nullable
    - `id` string
    - `name` string
    - `action_url` string, uri, nullable: Measured official-action path when incorporated first-party catalog evidence and a supporting audit permit recommendation; null when action is withheld.
    - `official_action` OfficialActionState
      - `allowed` boolean, required
      - `status` 'ready' | 'source-navigation' | 'withheld', required
      - `reason` string, required: Instruction for whether an agent may recommend the official action path.
    - `source_url` string, uri
    - `verification_readiness` VerificationReadiness
      - `status` 'audit-confirmed-exact' | 'audit-confirmed-partial' | 'audit-inconclusive' | 'audit-warning' | 'not-audited', required
      - `latest_outcome` 'confirmed-exact' | 'confirmed-partial' | 'terms-changed' | 'explicitly-expired' | 'moved' | 'blocked' | 'fetch-error' | 'not-found' | 'unknown', required: Conservative field-level audit result. blocked, fetch-error, not-found, and unknown do not establish expiration.
      - `latest_checked_at` string, date-time, nullable, required
      - `interpretation` string, required: Factual guidance for using the latest audit without treating an inconclusive fetch as expiration.
  - `usage` object, required

## Other responses

- `400`: Missing query or invalid scope

---

[API](https://skmtc.dev/andrewsfreebies/apis/andrew-s-freebies-api.md) · [All operations](https://skmtc.dev/andrewsfreebies/apis/andrew-s-freebies-api/llms.txt) · [OpenAPI document](https://skmtc.dev/andrewsfreebies/apis/andrew-s-freebies-api/revisions/2e23a7a12f7a?raw)
