{
  "request_id": "00000000-0000-4000-8000-000000000001",
  "query": {
    "capability": "Find an API that can translate PDF files",
    "programming_language": "Python",
    "auth_methods": [],
    "free_tier_required": true,
    "commercial_use_required": true,
    "must_have": [],
    "nice_to_have": [],
    "exclude": [],
    "max_results": 5,
    "tier": "standard"
  },
  "status": "completed",
  "language": {
    "request": "en",
    "request_confidence": "high",
    "output": "en",
    "output_basis": "detected",
    "search": [
      "en"
    ],
    "note": null
  },
  "search_plan": [
    {
      "query": "Find an API that can translate PDF files",
      "language": "en"
    },
    {
      "query": "Find an API that can translate PDF files API documentation",
      "language": "en"
    },
    {
      "query": "Find an API that can translate PDF files pricing",
      "language": "en"
    }
  ],
  "apis": [
    {
      "rank": 1,
      "provider_name": "LingoPDF",
      "api_name": "LingoPDF Translate API",
      "name_alias": null,
      "website": "https://docs.lingopdf.example/",
      "documentation_url": "https://docs.lingopdf.example/api",
      "pricing_url": "https://lingopdf.example/pricing",
      "capability_summary": "Translates PDF files while preserving layout.",
      "features": [
        {
          "value": "Layout-preserving PDF translation",
          "source_url": "https://docs.lingopdf.example/api",
          "quote": "translates PDF files while preserving layout"
        }
      ],
      "endpoints": [
        {
          "value": "POST /v2/document",
          "source_url": "https://docs.lingopdf.example/api",
          "quote": "POST /v2/document uploads a PDF for translation."
        }
      ],
      "attributes": {
        "authentication": {
          "status": "verified",
          "value": "API key",
          "source_url": "https://docs.lingopdf.example/api",
          "quote": "Authenticate with an API key in the Authorization header.",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "sdks": {
          "status": "verified",
          "value": "Python, Node.js",
          "source_url": "https://docs.lingopdf.example/api",
          "quote": "Official SDKs: Python, Node.js.",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "pricing": {
          "status": "verified",
          "value": "Pro plan: 0.08 USD per page",
          "source_url": "https://lingopdf.example/pricing",
          "quote": "Pro plan: 0.08 USD per page.",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "free_tier": {
          "status": "verified",
          "value": "Free plan: 3 documents per month",
          "source_url": "https://lingopdf.example/pricing",
          "quote": "Free plan: 3 documents per month.",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "rate_limits": {
          "status": "verified",
          "value": "60 requests per minute",
          "source_url": "https://docs.lingopdf.example/api",
          "quote": "Rate limit: 60 requests per minute.",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "geographic_restrictions": {
          "status": "unknown",
          "value": null,
          "source_url": null,
          "quote": null,
          "retrieved_at": null,
          "note": null
        },
        "commercial_use": {
          "status": "verified",
          "value": "Commercial use is permitted",
          "source_url": "https://docs.lingopdf.example/api",
          "quote": "Commercial use is permitted.",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "data_residency": {
          "status": "verified",
          "value": "Processed in the EU (Frankfurt)",
          "source_url": "https://lingopdf.example/pricing",
          "quote": "Documents are processed in the EU (Frankfurt).",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "availability": {
          "status": "verified",
          "value": "Generally available",
          "source_url": "https://docs.lingopdf.example/api",
          "quote": "Status: generally available.",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "latency": {
          "status": "unknown",
          "value": null,
          "source_url": null,
          "quote": null,
          "retrieved_at": null,
          "note": null
        }
      },
      "pricing_freshness": {
        "retrieved_at": "2026-09-27T00:00:00.000Z",
        "pricing_url": "https://lingopdf.example/pricing",
        "plan": "Pro plan",
        "unit": "per page",
        "currency": "USD",
        "statement": "Quoted verbatim from https://lingopdf.example/pricing as retrieved at 2026-09-27T00:00:00.000Z. Provider prices change; re-check the page before committing spend."
      },
      "requirement_checks": [
        {
          "requirement": "Offers a free tier or free trial",
          "mandatory": true,
          "status": "verified",
          "reason": "Stated on lingopdf.example.",
          "source_url": "https://lingopdf.example/pricing",
          "quote": "Free plan: 3 documents per month."
        },
        {
          "requirement": "Commercial use is permitted",
          "mandatory": true,
          "status": "verified",
          "reason": "Stated on docs.lingopdf.example.",
          "source_url": "https://docs.lingopdf.example/api",
          "quote": "Commercial use is permitted."
        },
        {
          "requirement": "SDK or client library for Python",
          "mandatory": false,
          "status": "verified",
          "reason": "Stated on docs.lingopdf.example.",
          "source_url": "https://docs.lingopdf.example/api",
          "quote": "Official SDKs: Python, Node.js."
        }
      ],
      "match_reasons": [
        "Translates PDF files while preserving layout.",
        "Verified: Offers a free tier or free trial",
        "Verified: Commercial use is permitted",
        "Verified: SDK or client library for Python"
      ],
      "ranking_basis": [
        "Capability relevance verified on https://docs.lingopdf.example/api.",
        "2 of 2 mandatory and 1 of 1 optional/screening requirements verified.",
        "Current pricing verified from an official page.",
        "Free tier or trial verified.",
        "8 of 10 API attributes verified (authentication, sdks, pricing, free_tier, rate_limits, commercial_use, data_residency, availability)."
      ],
      "known_limitations": [
        "Maximum file size 30 MB"
      ],
      "evidence": [
        {
          "url": "https://docs.lingopdf.example/api",
          "title": "LingoPDF API reference · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "LingoPDF Translate API translates PDF files",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://docs.lingopdf.example/api",
          "title": "LingoPDF API reference · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "LingoPDF Translate API translates PDF files while preserving layout.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://lingopdf.example/pricing",
          "title": "LingoPDF pricing · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Free plan: 3 documents per month.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://docs.lingopdf.example/api",
          "title": "LingoPDF API reference · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Commercial use is permitted.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://docs.lingopdf.example/api",
          "title": "LingoPDF API reference · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Official SDKs: Python, Node.js.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://docs.lingopdf.example/api",
          "title": "LingoPDF API reference · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "translates PDF files while preserving layout",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://docs.lingopdf.example/api",
          "title": "LingoPDF API reference · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "POST /v2/document uploads a PDF for translation.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://docs.lingopdf.example/api",
          "title": "LingoPDF API reference · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Maximum file size is 30 MB.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://docs.lingopdf.example/api",
          "title": "LingoPDF API reference · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Authenticate with an API key in the Authorization header.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://lingopdf.example/pricing",
          "title": "LingoPDF pricing · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Pro plan: 0.08 USD per page.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://docs.lingopdf.example/api",
          "title": "LingoPDF API reference · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Rate limit: 60 requests per minute.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://lingopdf.example/pricing",
          "title": "LingoPDF pricing · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Documents are processed in the EU (Frankfurt).",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://docs.lingopdf.example/api",
          "title": "LingoPDF API reference · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Status: generally available.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        }
      ],
      "source_languages": [
        "en"
      ],
      "confidence": "high",
      "confidence_basis": "3 of 3 requirements verified with quoted first-party evidence; the rest are inferred or unknown. 8 API attributes verified.",
      "verified_at": "2026-09-29T06:19:24.361Z"
    },
    {
      "rank": 2,
      "provider_name": "Pagebabel",
      "api_name": null,
      "name_alias": null,
      "website": "https://developers.pagebabel.example/",
      "documentation_url": "https://developers.pagebabel.example/translate",
      "pricing_url": "https://pagebabel.example/pricing",
      "capability_summary": "Translates PDF, DOCX and PPTX documents into 40 languages.",
      "features": [],
      "endpoints": [
        {
          "value": "POST /translate/pdf",
          "source_url": "https://developers.pagebabel.example/translate",
          "quote": "POST /translate/pdf returns a translated PDF."
        }
      ],
      "attributes": {
        "authentication": {
          "status": "verified",
          "value": "OAuth 2.0 client credentials",
          "source_url": "https://developers.pagebabel.example/translate",
          "quote": "Authentication uses OAuth 2.0 client credentials.",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "sdks": {
          "status": "inferred",
          "value": null,
          "source_url": null,
          "quote": null,
          "retrieved_at": null,
          "note": "Docs mention no SDK; a REST client in any language should work."
        },
        "pricing": {
          "status": "verified",
          "value": "29 USD per month for 500 pages",
          "source_url": "https://pagebabel.example/pricing",
          "quote": "Pagebabel pricing: 29 USD per month for 500 pages.",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "free_tier": {
          "status": "verified",
          "value": "Free trial: 14 days",
          "source_url": "https://pagebabel.example/pricing",
          "quote": "Free trial: 14 days.",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "note": null
        },
        "rate_limits": {
          "status": "unknown",
          "value": null,
          "source_url": null,
          "quote": null,
          "retrieved_at": null,
          "note": null
        },
        "geographic_restrictions": {
          "status": "unknown",
          "value": null,
          "source_url": null,
          "quote": null,
          "retrieved_at": null,
          "note": null
        },
        "commercial_use": {
          "status": "unknown",
          "value": null,
          "source_url": null,
          "quote": null,
          "retrieved_at": null,
          "note": null
        },
        "data_residency": {
          "status": "unknown",
          "value": null,
          "source_url": null,
          "quote": null,
          "retrieved_at": null,
          "note": null
        },
        "availability": {
          "status": "unknown",
          "value": null,
          "source_url": null,
          "quote": null,
          "retrieved_at": null,
          "note": null
        },
        "latency": {
          "status": "unknown",
          "value": null,
          "source_url": null,
          "quote": null,
          "retrieved_at": null,
          "note": null
        }
      },
      "pricing_freshness": {
        "retrieved_at": "2026-09-27T00:00:00.000Z",
        "pricing_url": "https://pagebabel.example/pricing",
        "plan": null,
        "unit": "per month",
        "currency": "USD",
        "statement": "Quoted verbatim from https://pagebabel.example/pricing as retrieved at 2026-09-27T00:00:00.000Z. Provider prices change; re-check the page before committing spend."
      },
      "requirement_checks": [
        {
          "requirement": "Offers a free tier or free trial",
          "mandatory": true,
          "status": "verified",
          "reason": "Stated on pagebabel.example.",
          "source_url": "https://pagebabel.example/pricing",
          "quote": "Free trial: 14 days."
        },
        {
          "requirement": "Commercial use is permitted",
          "mandatory": true,
          "status": "verified",
          "reason": "Stated on developers.pagebabel.example.",
          "source_url": "https://developers.pagebabel.example/translate",
          "quote": "Commercial use is permitted."
        },
        {
          "requirement": "SDK or client library for Python",
          "mandatory": false,
          "status": "inferred",
          "reason": "Not stated for: SDK or client library for Python.",
          "source_url": null,
          "quote": null
        }
      ],
      "match_reasons": [
        "Translates PDF, DOCX and PPTX documents into 40 languages.",
        "Verified: Offers a free tier or free trial",
        "Verified: Commercial use is permitted"
      ],
      "ranking_basis": [
        "Capability relevance verified on https://developers.pagebabel.example/translate.",
        "2 of 2 mandatory and 0 of 1 optional/screening requirements verified.",
        "Current pricing verified from an official page.",
        "Free tier or trial verified.",
        "3 of 10 API attributes verified (authentication, pricing, free_tier)."
      ],
      "known_limitations": [],
      "evidence": [
        {
          "url": "https://developers.pagebabel.example/translate",
          "title": "Pagebabel developer docs · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Pagebabel API translates PDF, DOCX and PPTX documents",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://developers.pagebabel.example/translate",
          "title": "Pagebabel developer docs · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Pagebabel API translates PDF, DOCX and PPTX documents into 40 languages.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://pagebabel.example/pricing",
          "title": "Pagebabel pricing · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Free trial: 14 days.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://developers.pagebabel.example/translate",
          "title": "Pagebabel developer docs · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Commercial use is permitted.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://developers.pagebabel.example/translate",
          "title": "Pagebabel developer docs · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "POST /translate/pdf returns a translated PDF.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://developers.pagebabel.example/translate",
          "title": "Pagebabel developer docs · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Authentication uses OAuth 2.0 client credentials.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        },
        {
          "url": "https://pagebabel.example/pricing",
          "title": "Pagebabel pricing · Demo provider",
          "retrieved_at": "2026-09-27T00:00:00.000Z",
          "quote": "Pagebabel pricing: 29 USD per month for 500 pages.",
          "source_type": "demo",
          "first_party": true,
          "source_language": "en",
          "quote_translation": null
        }
      ],
      "source_languages": [
        "en"
      ],
      "confidence": "medium",
      "confidence_basis": "2 of 3 requirements verified with quoted first-party evidence; the rest are inferred or unknown. 3 API attributes verified.",
      "verified_at": "2026-09-29T06:19:24.362Z"
    }
  ],
  "excluded_candidates": [
    {
      "provider": "Docuvert",
      "website": "https://docuvert.example/",
      "reason": "capability_unavailable"
    }
  ],
  "ranking_method": "Candidates are kept only when capability relevance and every mandatory requirement are verified by a quote from the provider’s own pages. Survivors are ordered by: (1) number of optional requirements verified, (2) whether current pricing is verified from an official page, (3) whether a free tier or trial is verified, (4) number of verified attributes (auth, SDKs, limits, availability, etc.), (5) evidence-based confidence, then name. No hidden or model-generated score is used.",
  "limitations": [
    "DEMO: fictional API providers and simulated payment. No live search or verification occurred. The fixture covers PDF translation only.",
    "Evidence records what official provider pages stated at retrieval time. It does not guarantee uptime, contract terms, quota or price. Unknown attributes are null; inferred attributes carry no value.",
    "Found 2 verified API candidates out of 5 requested. Results were not padded. A mandatory requirement without first-party evidence excludes a candidate."
  ],
  "completed_at": "2026-09-29T06:19:24.362Z",
  "mode": "demo",
  "price": {
    "amount": "0.51",
    "currency": "USDC",
    "tier": "standard"
  }
}
