latestOpenAPI 3.1.02026-08-2152107376.3 KB

fa3bfc305677

Catalog

Get Technologies And Buying Intents

List all keywords tracked by TheirStack, including both technologies and buying intent topics. Search for any keyword and filter by one or more categories.

Calls to this endpoint don't cost you credits.

  • To get technologies only: filter with keyword_type=technology
  • To get only buying intent topics: filter with keyword_type_not=technology

Building an autocomplete? This endpoint is designed to be queried, not downloaded — there are 42k keywords, so pulling them all is a ~27MB response and should never sit on a user's path:

  • On open, with no query: ?limit=50. Results are sorted by number of companies, so you get the most popular technologies for the empty state. Cache this for hours or a day; it moves slowly.
  • As the user types: ?q=snow&limit=10. This is the search path and ranks the closest matches first.
  • Debounce keystrokes by ~200ms so a four-letter query fires one request, not four.

Fetching the full catalog with a large limit is only appropriate for an offline, server-side sync — never for a picker.

Response always includes data (array of keywords) and metadata (total_results, page, limit).

get/v0/catalog/keywords

Query parameters

keyword_type'technology' | 'software_product' | 'technology_concept' | 'operational_activity' | 'strategic_initiative' | 'metric_or_concept' | 'product_or_service_offered' | 'regulation' | 'threat_or_risk' | 'event' | 'commodity' | 'industry_vertical' | 'physical_equipment' | 'medical_research' | 'government_body'

Keyword type to filter by

keyword_type_notKeywordType[] nullable

Exclude keywords of these types

Exclude keywords of these types

name_patternstring nullable

Case-insensitive text to search for in the keyword name

Case-insensitive text to search for in the keyword name

slugstring[] nullable

Keyword slug of a single keyword

Keyword slug of a single keyword

slugsstring[] nullable

Keyword slugs of one or many keywords

Keyword slugs of one or many keywords

category_patternstring nullable

Case-insensitive text to search for in the keyword category. For example, data to find 'data tools'.

Case-insensitive text to search for in the keyword category. For example, data to find 'data tools'.

category_slugstring nullable

Keyword category slug

Keyword category slug

parent_category_slugstring nullable

Keyword parent category slug

Keyword parent category slug

parent_category_patternstring nullable

Case-insensitive text to search for in the keyword parent category name

Case-insensitive text to search for in the keyword parent category name

qstring nullable

General search query. Searches across keyword name, keyword type, category, and parent category (case-insensitive). Results where the keyword name starts with the query are ranked first.

General search query. Searches across keyword name, keyword type, category, and parent category (case-insensitive). Results where the keyword name starts with the query are ranked first.

starts_withstring nullable

Filter keywords whose name starts with this string (e.g. 'A' for glossary). Special value 'other' selects keywords whose name does not start with letters A-Z.

Filter keywords whose name starts with this string (e.g. 'A' for glossary). Special value 'other' selects keywords whose name does not start with letters A-Z.

include_metadataboolean

Deprecated, metadata is always included now

Deprecated, metadata is always included now

pageinteger

Page number.

Page number.

limitinteger

Number of results per page

Number of results per page

Response

Successful Response

Example response

{
  "data": [
    {
      "name": "PostgreSQL",
      "category": "Relational Database",
      "slug": "kafka",
      "category_slug": "message-queue",
      "parent_category": "Data Stores",
      "parent_category_slug": "data-stores",
      "one_liner": "Apache Kafka"
    }
  ]
}