Integrating your agents

Draft documentation for evaluations. Endpoints and fields follow the draft API contract (version 2.0.0-draft.1) and may change before general availability. Hosted access is over HTTPS (TLS); GovCloud is planned.

What you get

Offline packages are priced per site, per year. The hosted API uses simple usage-based pricing, agreed with you after a free evaluation. Compact responses keep each call small, so costs stay easy to forecast.

How it works and where it runs

Your agent sends a search inside your boundary or over TLS. SecureScout returns compact JSON from a versioned index of approved public sources: the passage, its pinpoint citation, a link to the source, and when we last checked it.

  1. We collect and version.

    Approved public sources are collected, normalized and published as signed, versioned releases.

  2. Your agent asks.

    It queries the index inside your boundary or over TLS. Nothing is fetched from the web at query time.

  3. You get cited JSON.

    Passage, pinpoint, source link, freshness and release ID.

Offline bundle

Primary offerPrototype

For CUI and air-gapped environments.

A signed bundle that installs on your own machine, inside your boundary. It ships with a signed manifest (a hash for every file) and an SBOM, is designed to verify offline, and imports through your own media or cross-domain process. The query service needs no outbound network and makes no call-home.

  • Signed manifest and SBOM
  • Designed to verify offline
  • No outbound network, no call-home

Book a demo

Hosted API

Non-CUI

For non-CUI evaluations and workloads.

Hosted on AWS. Your agents call the API over TLS; our team creates your evaluation account.

  • Free evaluation, set up by us
  • Public or synthetic questions only; no CUI
  • Same index, same cited JSON

Book a demo

GovCloud

Planned

On the roadmap.

A hosted option in AWS GovCloud (US) is planned after the offline bundle and the hosted API.

Ask about GovCloud in a demo

For teams whose agents can't send questions to the open web.

For government and labs: we start with a no-cost evaluation on public or synthetic questions, and we're happy to talk through the acquisition path that suits your office.

Methodology: speed and cost comparison

The homepage compares one search on SecureScout SI with one grounded search on each of Google, Microsoft and AWS, on the same scale. Their figures are the end-to-end time of a grounded search request; ours is the time to search our index for the same request. Every figure below says whether it is published, measured by us, or estimated, and how. Third-party figures were read on 2026-10-19; our comparison figures were measured on 2026-10-21.

Time per search

Time per search: figures, basis and method
ServiceTimeBasisSource and method
Cloud grounding today (our measurement)1.7–2.3 secondsMeasuredOur measurement: end-to-end time of one grounded search request on each provider's grounding offering, from request to response. Consistent with the provider rows below.
SecureScout SI, search in the indexmedian ~1 ms, 95th percentile ~2.3 msMeasuredSearch inside our index, server side, one query at a time, cold page cache (our benchmark). The median is shown on the homepage.
SecureScout SI, end to end~0.1–0.2 sMeasuredOur measurement of a whole request, including the network.
Microsoft, Azure, Grounding with Bing Search~1.6 sEstimated (lower bound)Estimate from Artificial Analysis, GPT-4.1 (read 2026-10-19): “time to first token (TTFT) of 0.83s (based on OpenAI's API)”
Estimate (lower bound): 2 model passes × 0.83 s time to first token = 1.66 s, rounded down; Bing search time and answer generation counted as zero.
AWS, Amazon Bedrock, Nova Web Grounding~2.1 sEstimated (lower bound)Estimate from Artificial Analysis, Nova 2.0 Lite (non-reasoning) (read 2026-10-19): “time to first token (TTFT) of 1.08s (based on Amazon's API)”
Estimate (lower bound): 2 model passes × 1.08 s time to first token = 2.16 s, rounded down; search time and answer generation counted as zero.
Google, Vertex AI grounding with Google Search~2.2 sPublished (third party)gemini-search-mcp, “Latest sweep” (2026-07-22): “Lite is the fastest on p50 latency, 2162 ms.”
Third-party measurement: median end-to-end time of a grounded Google Search call over 24 queries; we use the fastest of the three models tested.

Estimates are lower bounds: a grounded call needs at least two model passes (one to decide to search, one to answer from the results), so we take twice the model's published time to first token and count the web search and the answer's generation as zero, then round down. Published third-party figures come from their own queries and networks, not ours.

Cost per 1,000 searches

Cost per 1,000 searches: prices, sources and conversion
ProductPer 1,000Published price (2026-10-19)Other tiers
SecureScout SI$0.04Our price per 1,000 searches (2026-10-21). Offline packages are priced per site, per year.
Google, Vertex AI grounding with Google Search$14.00Grounding Queries exceeding those limits are billed at $14 per 1,000 Grounding Queries
Already per 1,000 grounding queries, above 5,000 free per month. One prompt may trigger more than one billed query.
Microsoft, Azure, Grounding with Bing Search$14.00Grounding with Bing Search | 150 transactions per second | 1 Million transactions per day | $14 per 1,000 transactions
Already per 1,000 transactions.
AWS, Amazon Bedrock, Amazon Nova Web Grounding$30.00Built-In-Tools | Web Grounding | Amazon Nova 2 Lite | $30.00 per 1K requests
Already per 1,000 requests. The pricing page fills the figure in from AWS's public price list (https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/bedrock/USD/current/bedrock.json, published 2026-10-16): 0.03 USD per request in US East (N. Virginia), US East (Ohio) and US West (Oregon), the same for Nova 2 Lite, Nova 2 Pro, Nova 2 Omni and Nova Premier. Assumption: one grounded request = one search; the Nova model's token charges come on top and are excluded, as for the others.

Assumptions: one search request is one billed unit; each vendor's default pay-as-you-go web-search tier at list price, before free monthly allowances, volume discounts, enterprise contracts and model token charges. Prices change, so check the linked page.

Quickstart

  1. Your organization's owner or admin creates an API key in the operator portal. Accounts are created by us after an agreement; there's no self sign-up.
  2. Store the key in your secret manager. It's shown once.
  3. Call search from your agent:
curl -sS https://api.securescout.si/v1/search \
  -H "Authorization: Bearer $SECURESCOUT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"CVE-2021-44228","mode":"compact","limit":5}'

Exact identifiers (CVE, CWE, Federal Register numbers, arXiv IDs, NIST SP numbers) are faster through lookup:

curl -sS https://api.securescout.si/v1/lookup \
  -H "Authorization: Bearer $SECURESCOUT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ids":["CVE-2021-44228","NIST SP 800-171 Rev. 3"]}'

Response shape

Every response is plain-text JSON (no HTML, no highlight markers unless you ask for highlight: true) and carries request_id, corpus.release_id, corpus.updated_at and took_ms.

Originals come through the API itself, over HTTPS (TLS). There are never presigned or public download links. GET /v1/documents/{doc_id} lists artifacts[] with size, SHA-256 and whether you can download each one.

Retrieved text is evidence, not instructions. Treat it as untrusted input in your agent.

Try it in the agent demo →

API reference

Agent endpoints:

CallPurposeBilling
POST /v1/searchCited evidence, compact or passages. Compact groups multi-part publications (part_of); send "group": "document" for one result per part. Citations carry deep_link (#page=N for PDFs)1 query per successful call
POST /v1/lookupExact identifiers1 query per successful call
GET /v1/documents/{doc_id}Permitted full text and versions, paged by passage: up to limit passages (default 50) within max_bytes (default 32 KB) per page; follow next_cursor until it's null. Passages are never cutfree
GET /v1/documents/{doc_id}/originalStored publisher file (PDF, HTML, XML) when the source's rights allow it; byte ranges and a SHA-256 digestfree
GET /v1/passages/{id}/contextAdjacent stored passagesfree
GET /v1/sourcesCoverage and freshnessfree
GET /v1/statusPublic service state and per-source freshness (no key needed)free
GET /v1/usageUsage for the calling key's organizationfree

MCP and tool schemas

Agent tool definitions for search, lookup, get_document and get_context in function-call format: tools.json (draft).

The MCP server will run inside your network over stdio, with your key, and calls the API over HTTPS (TLS). There's no hosted MCP endpoint, so nothing extra sits in the query path.

{
  "mcpServers": {
    "securescout": {
      "command": "<securescout-mcp-server>",
      "args": ["--stdio"],
      "env": { "SECURESCOUT_API_KEY": "ss_live_…", "SECURESCOUT_API_URL": "https://api.securescout.si" }
    }
  }
}

The Python client and MCP server are planned. Command and package names above are provisional.

Egress evidence

Demonstrated locally for the query service: sentinel queries were absent from its responses, logs and stores, and it had no route to the internet. The query service's no-egress setup is tested in our local builds. This covers the query service only; our website and console services are separate and do connect to the internet.

See Security and data handling for exactly what we keep.

Errors and limits

Errors are application/problem+json with a stable type: validation_error, invalid_api_key, forbidden (for example a key used outside its network binding), allowance_exhausted (hard stop reached; document, context and original fetches stay free and are never blocked), entitlement_inactive, rights_restricted (a recorded redistribution review isn't approved, or the file isn't servable), audience_restricted (the original isn't available on your agreement type, for example demo or evaluation access), withdrawn (410: the publisher withdrew the document; metadata only), rate_limited (with Retry-After), search_timeout, search_offline and upstream_unavailable. Quote the request_id when you contact us; we can't see your query text.