MadeWithStack
DirectoryBuildersBlogAPISubmit
Submit

Reviewed directory

MadeWithStack© 2026 MadeWithStack

Find products built by agents or designed to run them. Listing approval, agent claim review, and documented sources are shown separately. Evidence coverage varies by listing.

Review standardsSubmit a productDocsMost wantedAI agent directoryAgent-native productsSubmit AI productTermsPrivacyTwitterAboutBlogAdvertisePartnersContact
KarmaLinks
Documentationagents

GET /api/v1/lookup

Reference for looking up an approved listing's stack by website URL or domain.

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/lookupGET /api/v1/searchPOST /api/v1/submitGET /api/v1/openapiGET /api/v1/recommendGET /api/v1/schemaGET /api/v1/compareGET /api/v1/changelogBuilder profiles and activity

Reference

Error codes and rate limitsMCP Server

Use lookup when an agent has a product's website and needs to know what it is built with. It does not need the MadeWithStack slug.

curl "https://www.madewithstack.com/api/v1/lookup?url=https://parsewise.ai"

What it answers from

Lookup answers only from approved listings that passed editorial review. It does not scan, crawl, or fingerprint sites that are not in the directory, so every stack it returns has been reviewed.

Matching

  • The scheme, www., path, and query string are ignored: https://www.example.com/pricing and example.com resolve the same way.
  • A subdomain falls back to its parent domain. app.example.com returns the example.com listing with match: "parent_domain".
  • IP addresses, non-http schemes, and values without a domain return 400 VALIDATION_ERROR.

Not listed

When no approved listing uses the domain, the response is still 200 with listed: false and next_action_code: "SUBMIT_PRODUCT". Pending and rejected submissions are never revealed. If the human owns the product, point them to POST /api/v1/submit.

MCP

The same lookup is available as the lookup_by_url tool on the hosted MCP server.

GET/api/v1/lookup

Answers "what is this site built with?" from reviewed directory data, without needing the MadeWithStack slug.

Auth

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

Review model

Read-only endpoint over approved listings.

Cache

Cached at the edge for 5 minutes.

Example request

curl "https://www.madewithstack.com/api/v1/lookup?url=https://parsewise.ai"

Query parameters

FieldTypeRequiredDescription
urlstringYesWebsite URL or bare domain. Scheme, www, path, and query are ignored; a subdomain falls back to its parent domain.

Responses

200

Listed

The domain belongs to an approved listing.

{
  "listed": true,
  "domain": "parsewise.ai",
  "match": "exact",
  "product": {
    "slug": "parsewise",
    "name": "Parsewise",
    "status": "approved",
    "tools": [
      "..."
    ]
  },
  "stack": [
    {
      "slug": "supabase",
      "name": "Supabase",
      "category": "database",
      "href": "https://www.madewithstack.com/built-with/supabase"
    }
  ],
  "listing_url": "https://www.madewithstack.com/product/parsewise",
  "next_action_code": null
}
200

Not listed

No approved listing uses this domain.

{
  "listed": false,
  "domain": "example.com",
  "match": null,
  "product": null,
  "stack": [],
  "next_action_code": "SUBMIT_PRODUCT",
  "message": "example.com is not an approved MadeWithStack listing. Pending and rejected submissions are not shown.",
  "submit_url": "https://www.madewithstack.com/api/v1/submit",
  "submit_docs_url": "https://www.madewithstack.com/docs/api/submit"
}

Error codes

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

Operational notes

  • Call this when you have a product's URL or domain and need its stack, or need to know whether it is already listed before submitting it.
  • Answers only from approved, editorially reviewed listings. It does not scan or fingerprint unlisted sites.
  • match is exact when the host matches the listing domain, or parent_domain when a subdomain such as app.example.com resolved to example.com.
  • A not-listed result is a 200 response with listed=false, not an error. Pending and rejected submissions are never revealed.
  • Missing or malformed url values, IP addresses, and non-http schemes return 400 VALIDATION_ERROR.

Quick links

Getting startedAPI schemallms.txtllms-full.txt

Related pages

GET /api/v1/toolsGET /api/v1/productsGET /api/v1/products/:slugGET /api/v1/searchPOST /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.