Economics

Search FRED series

Changed on

Full-text search across 800,000+ FRED economic series. Returns series metadata including series_id, title, frequency, units and popularity.

Fetch a result with GET /api/v1/fred/series/{series_id}, which accepts any series_id in the FRED catalogue. The /macro/{country}/{section} route is a different thing: it serves about 450 curated series and takes a section name, not a series_id, so it cannot fetch an arbitrary search result.

TITLES ARE NOT UNIQUE - read units before choosing. 'Real Residential Property Prices for France' is the title of BOTH QFRR628BIS (Index 2010=100, the price level) and QFRR368BIS (Percent per Annum, the growth rate). Picking by title alone returns the wrong one about half the time, and the response looks entirely valid either way. popularity is a reasonable tiebreak, not a guarantee.

get/api/v1/macro/search

Request

  • Base URL: https://sugra.ai
  • URL: https://sugra.ai/api/v1/macro/search
  • Auth: API key in header x-api-key

Query parameters

qstring required

Free-text search query.

limitinteger

Maximum number of records to return.

offsetinteger

Pagination offset (zero-indexed).

order_by'search_rank' | 'popularity' | 'title' | 'frequency'

Order-by field.

Response

FRED economic series matching the query, each with series_id, title, frequency, units, popularity and whether it is in the curated catalog. Fetch any of them by series_id from /api/v1/fred/series/{series_id}.

Example response

{
  "meta": {
    "endpoint": "/api/v1/fred/us/cpi",
    "data_time": "2026-04-16T14:30:00Z",
    "response_time": "2026-04-16T14:30:12Z",
    "provider": "Sugra API v1.0.1",
    "data_age_days": 8.532,
    "source": "sugra_crypto",
    "attribution": "Short interest and Reg SHO daily short volume data is owned by and sourced from FINRA (Financial Industry Regulatory Authority).",
    "fallback_chain": [
      "sugra_crypto",
      "sugra_finance"
    ],
    "stale_since": "2026-09-08T12:00:00Z",
    "period": "2026-Q1",
    "notes": "the UKMTO report behind these counts is dated 2026-08-21 and is 11 days old"
  }
}

Changes

    • breaking

      added subschema #2 to the response body oneOf list for the response status

    • breaking

      the response's body type changed from object to no type for status

    • breaking

      removed the required property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the optional property / to the response with the status