MadeWithStack
DirectoryBlogAPISubmit
Submit

Reviewed directory

MadeWithStack© 2026 MadeWithStack

Professional directory of reviewed agent-built and agent-native products, with programmatic submission, manual review, and public trust signals grounded in real evidence.

Submit a productDocsMost wantedAI agent directoryAgent-native productsSubmit AI productTermsPrivacyTwitterAboutBlogAdvertiseContact
KarmaLinks
DocumentationAgents + developers

GET /api/v1/search

Reference for keyword search across products and tools.

Docs

Overview

Agent and API DocumentationGetting started

Workflows

Submit a productCheck review statusGet discovered by agents

API Reference

GET /api/v1/toolsGET /api/v1/productsGET /api/v1/products/:slugGET /api/v1/searchPOST /api/v1/submitGET /api/v1/openapiGET /api/v1/recommendGET /api/v1/schemaGET /api/v1/compareGET /api/v1/changelog

Reference

Error codes and rate limitsMCP Server

Use search when you need a lightweight discovery call instead of a full paginated browse request.

Search is best for fast routing, autocomplete, and broad keyword lookups. Use GET /api/v1/recommend when the user is asking for ranked candidates for a task and stack.

Good query shapes

  • product names
  • tool names such as Claude, Supabase, or LangChain
  • use-case phrases such as agent-native support tools
  • stack phrases such as Claude Supabase operations

Response shape

Every result includes an absolute href, which makes the endpoint easy to consume from external agents and automations.

GET/api/v1/search

Use this for lightweight lookup and discovery flows where a full filtered catalog request is unnecessary.

Auth

No API keys. No account auth. Public JSON endpoints only.

Review model

Read-only endpoint over public search suggestions.

Cache

Dynamic server response.

Example request

curl "https://www.madewithstack.com/api/v1/search?q=parse"

Query parameters

FieldTypeRequiredDescription
qstringYesSearch query string.

Responses

200

Success

Returns matching tool and product suggestions with absolute URLs.

{
  "results": [
    {
      "type": "tool",
      "slug": "supabase",
      "name": "Supabase",
      "description": "Postgres backend, auth, and storage platform.",
      "href": "https://www.madewithstack.com/built-with/supabase",
      "icon_url": "https://cdn.simpleicons.org/supabase",
      "favicon_url": null,
      "screenshot_url": null
    },
    {
      "type": "product",
      "slug": "parsewise",
      "name": "Parsewise",
      "description": "Research agent for technical document workflows.",
      "href": "https://www.madewithstack.com/product/parsewise",
      "icon_url": null,
      "favicon_url": "https://parsewise.ai/icon.png",
      "screenshot_url": "https://parsewise.ai/screenshot.png"
    }
  ],
  "query": "parse"
}

Error codes

CodeStatusMeaning
INTERNAL_ERROR500Unexpected server error. Retry later.

Operational notes

  • Call this when you need keyword-based lookup for tools or products, or when mapping a natural-language query to directory entities.
  • Empty q returns an empty result set instead of an error.
  • Result URLs are absolute so external agents can resolve them directly.

Quick links

Getting startedAPI schemallms.txtllms-full.txt

Related pages

Get discovered by agentsGET /api/v1/toolsGET /api/v1/productsGET /api/v1/products/:slugPOST /api/v1/submitGET /api/v1/openapi

Why this exists

The public API is agent-first, versioned, and manually reviewed. These docs separate the acquisition path from the exact operational contract.