Truegle API

Search the web from your own code

One public endpoint. No key, no account, no sign-up form. Send a query, get web results back as JSON. It is the same API the Truegle website runs on, which is the only honest way to publish one — if it breaks for you it breaks for us.

Base URL
https://api.truegle.info

Quickstart

There is no step before this one. Paste it into a terminal.

curl -X POST https://api.truegle.info/api/search \
  -H 'Content-Type: application/json' \
  -H 'X-Truegle-Client: my-app' \
  -d '{"query": "how do tides work", "mode": "blue-pill"}'

The request

POST /api/search, with a JSON body and two headers: Content-Type: application/json and X-Truegle-Client.

FieldTypeMeaning
querystring, requiredWhat to search for. 1–300 characters.
modestring, optionalWhich lens to search through. Defaults to blue-pill (mainstream). See Modes below.
filtersobject, optionalNarrowing options — time range, language, safe search. Unknown keys are ignored rather than rejected.

Tell us who you are

Send X-Truegle-Client with a short name for your project — my-app, acme-dashboard, whatever you would call it out loud. Letters, digits, spaces and . _ - /, up to 64 characters.

Without it, Truegle treats the request as anonymous automation and answers 403. That is not a key and it is not a security measure — anyone can type anything in there. It exists so that a person who read this page and a scraper hammering us anonymously are not the same request to us, and so there is something to name in a log when one integration misbehaves rather than throttling everybody.

The response

{
  "success": true,
  "query": "how do tides work",
  "resultCount": 18,
  "results": [
    {
      "title": "Tides and Water Levels",
      "url": "https://oceanservice.noaa.gov/education/tutorial_tides/",
      "snippet": "Tides are very long-period waves that move through the ocean…",
      "source": "searxng",
      "date": "2024-06-11T00:00:00.000Z"
    }
  ],
  "instantAnswer": null,
  "timestamp": "2026-08-20T09:12:44.118Z"
}

Every entry in results has the same five fields.

FieldTypeMeaning
titlestringThe page title as the source published it.
urlstringThe result’s address. Always absolute, always http(s).
snippetstringA short extract. May be empty when the source gave none.
sourcestringWhich index the result came from.
datestring | nullISO 8601 publication date, or null when the source did not state one. It is never guessed.

A search that finds nothing returns success: true with an empty results array — an empty web is not an error. Genuine failures use the HTTP status: 400 for a missing or malformed query, 429 when you are going too fast, 5xx when it is our fault.

Modes

Truegle searches the same web through different lenses. The mode changes which sources are weighted, not which are permitted — nothing is hidden from you in any mode.

ModeWhat it does
blue-pillMainstream. What the consensus web says. The default.
red-pillRabbit Hole. Reaches past the first page of consensus.
oceanPrivacy / OSINT. Weighted toward primary and public-record sources.
greenSummarize. Same results, condensed.

Rate limits and fair use

  • 30 searches per minute, per IP. Exceed it and you get a 429; back off and retry rather than retrying immediately.
  • Identify yourself. A request with no X-Truegle-Client header is answered 403, whatever else it sends.
  • Cache what you fetch. Truegle runs on its own hardware and other people's indexes. Repeating an identical query every few seconds costs real money and helps nobody.
  • Browser calls are restricted. The endpoint is meant to be called from a server. Cross-origin browser requests from arbitrary sites are not permitted, so a public web page cannot use it as its own backend.
  • There is no paid tier and no key to buy. If you need volume beyond fair use, write to us before you take it.

What we do with your requests

The same thing we do with searches on the website, which is close to nothing. We do not build a profile, we do not set a cookie, and there is no account to attach anything to. Queries are logged in aggregate to produce a trending list, without anything identifying attached.

If you are passing your users' searches through this API, you are the one holding their trust. Do not send us anything about them beyond the words they typed — we do not want it and we have nowhere to put it.

Terms

Use of this API is covered by the Terms of Service and the Privacy Policy. Attribute results to Truegle where you display them. Bulk collection for model training is a separate licence — see AI licensing.

Getting in touch

Questions, bug reports, or a use case that needs more than fair use: [email protected]. A real person reads it.