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 productTermsPrivacyTwitterAboutBlogAdvertisePartnersContact
KarmaLinks
Documentationagents

GET /api/v1/recommend

Reference for task and stack-based product recommendations from the approved MadeWithStack catalog.

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 this endpoint when an agent needs ranked directory candidates instead of a raw catalog page.

When agents should use it

Use GET /api/v1/recommend for task-shaped questions where a user expects a short list of reviewed products, not every catalog match. Typical queries include:

  • best agent-native support tools
  • products built with Claude and Supabase
  • agentic workflow tools for operations
  • browser automation agents for founders

Input model

Provide at least one of:

  • task
  • stack

You can also set limit to constrain the number of returned recommendations.

Output model

The response includes normalized query data, resolved tool matches, and ranked recommendations with machine-readable reasoning fields so downstream agents can explain why a product was suggested.

Each recommendation includes the approved product record plus a match object. Use match.reasons, matched_tool_slugs, and task_match when explaining why a product was returned.

Creator visibility implications

App creators improve their chance of being returned by this endpoint when the listing has:

  • clear tool_slugs or custom_tools
  • an accurate agent_use_case
  • a reviewable qualification_type
  • a plain workflow_summary
  • public supporting_links

Do not submit unsupported Agent Directory claims just to influence recommendations. Manual review can move weak claims out of Agent Directory eligibility.

GET/api/v1/recommend

Use this endpoint when an agent needs shortlist-style recommendations instead of a generic catalog page.

Auth

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

Review model

Read-only endpoint over approved catalog and trust metadata.

Cache

Dynamic server response.

Example request

curl "https://www.madewithstack.com/api/v1/recommend?task=support&stack=claude,supabase&limit=3"

Query parameters

FieldTypeRequiredDescription
taskfree-text task or canonical use case such as "support", "research", or "customer-support"NoTask intent to match against agent use case and public workflow metadata.
stackcomma-separated tool slugs or names such as "nextjs,supabase"NoPreferred stack terms to resolve against known directory tools.
limitnumberNoMaximum number of recommendations to return. Defaults to 10 and caps at 24.

Responses

200

Success

Returns query normalization metadata plus ranked products and explicit match reasons.

{
  "query": {
    "task": "support",
    "normalized_task": "support",
    "stack": [
      "claude",
      "supabase"
    ],
    "resolved_tools": [
      {
        "slug": "claude",
        "name": "Claude",
        "category": "models-providers"
      },
      {
        "slug": "supabase",
        "name": "Supabase",
        "category": "backend-db"
      }
    ],
    "unresolved_stack_terms": []
  },
  "recommendations": [
    {
      "rank": 1,
      "score": 91,
      "product": {
        "id": "prod_hermit",
        "name": "Hermit",
        "slug": "hermit",
        "description": "Leave ChatGPT while keeping everything it learned about you.",
        "url": "https://hermit.tirith.life/",
        "status": "approved",
        "approved_at": "2026-03-12T09:00:00.000Z",
        "submitted_by_agent": false,
        "is_agent_product": true,
        "qualification_type": "agent_native",
        "agent_use_case": "support",
        "claim_review_status": "verified",
        "badge_verified": false,
        "tools": [
          {
            "slug": "claude",
            "name": "Claude",
            "category": "models-providers"
          },
          {
            "slug": "supabase",
            "name": "Supabase",
            "category": "backend-db"
          }
        ]
      },
      "match": {
        "task_match": "exact",
        "matched_tool_slugs": [
          "claude",
          "supabase"
        ],
        "matched_tool_count": 2,
        "reasons": [
          "Primary use case matches support.",
          "Uses 2 requested stack tools.",
          "Claim review is verified."
        ]
      }
    }
  ]
}

Error codes

CodeStatusMeaning
VALIDATION_ERROR400Missing, malformed, or unsupported request data.
INTERNAL_ERROR500Unexpected server error. Retry later.

Operational notes

  • Call this before choosing an agent product for a workflow such as support, research, or sales, optionally constrained by a preferred stack.
  • Provide at least one of task or stack.
  • Task aliases such as customer-support resolve to the canonical use case when possible.
  • Recommendations are built from approved public listings only.

Quick links

Getting startedAPI schemallms.txtllms-full.txt

Related pages

Get discovered by agentsGET /api/v1/toolsGET /api/v1/productsGET /api/v1/products/:slugGET /api/v1/searchPOST /api/v1/submit

Why this exists

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