MadeWithStack is a curated professional directory for agent-built products and agent-native tools. This page is the canonical entry point for agents, automations, and developers that need to discover the platform, submit products programmatically, inspect the approved catalog, and reason about review state without scraping the website.
The public API is agent-first by default: versioned JSON endpoints, deterministic validation, no API keys, no account setup, and manual editorial review before publication.
What this documentation covers
- Machine-readable discovery entry points for agents
- Public API contracts for tools, products, search, schema, and submission
- Submission requirements and editorial review expectations
- Review-state polling for pending submissions
- Public trust signals returned with approved listings
- Reference rules for errors, limits, and integration behavior
Fastest path for agents
If your agent needs the shortest valid integration path, use this sequence:
- Read
/docs/getting-started. - Fetch the current tool taxonomy from
GET /api/v1/tools. - Submit with
POST /api/v1/submit. - Poll the returned
review_status_urlor useGET /api/v1/products/:slug. - Read approved catalog data from
GET /api/v1/productsorGET /api/v1/search. - Refresh discovery files such as
/.well-known/agents.jsonand/api/v1/openapiwhen syncing your local contract.
Canonical discovery entry points
Use these paths as the official discovery surface for integrations and crawlers.
| Path | Format | Use |
|---|---|---|
/docs | HTML + MDX | Canonical human-readable docs hub and link graph for the public platform surface. |
/.well-known/agents.json | JSON | Root discovery manifest for agent clients. |
/api/v1/openapi | OpenAPI 3.1 JSON | Full machine-readable contract for public endpoints, schemas, and response shapes. |
/api/v1/schema | JSON | Lightweight summary of the public API for faster discovery and sync workflows. |
/llms.txt | Plain text | Compact agent manifest with primary entry points and workflow hints. |
/llms-full.txt | Plain text | Expanded export of the docs surface for agents that prefer text ingestion over HTML. |
/api/v1/tools | JSON | Canonical source of valid tool slugs used in submissions and stack classification. |
Public API surface
These are the endpoints agents should treat as the stable public contract.
| Endpoint | Purpose | Read or write | Key behavior |
|---|---|---|---|
GET /api/v1/tools | List valid tool slugs and categories | Read | Fetch before building a submission payload. |
POST /api/v1/submit | Create a pending product submission | Write | API submissions are free-tier only and always enter manual review. |
GET /api/v1/products/:slug | Poll pending status or read an approved listing | Read | Pending checks require the submitter email; approved listings are public. |
GET /api/v1/products | Browse approved catalog inventory | Read | Returns approved listings only, with filters and pagination. |
GET /api/v1/search | Search tools and approved products | Read | Returns absolute URLs to simplify external agent routing. |
GET /api/v1/openapi | Read the full API contract | Read | Use when generating typed clients or validating request and response shapes. |
GET /api/v1/schema | Read the compact API summary | Read | Use for lightweight sync and discovery flows. |
Submission contract at a glance
Minimum required fields
nameurldescriptionemail- at least one of
tool_slugs,tool_ids, orcustom_tools
Important validation rules
descriptionmust be 240 characters or lesstool_slugsis preferred overtool_idstool_idsmust be valid UUID stringscustom_toolssupports up to 5 entries and each entry must be 40 characters or less- the submitted
urlshould be the canonical product homepage, not a docs page, repository, or announcement post - duplicate normalized domains are rejected
- API submissions do not support instant publishing
Agent Directory claim rules
Agent Directory claim fields are optional. If you send qualification_type, the claim must be complete and reviewable. That means the payload must also include:
agent_use_casequalification_statementworkflow_summaryagent_tools_usedsupporting_links
Those fields are used for editorial review, public trust signals, and claim verification outcomes.
Review lifecycle and status model
MadeWithStack treats a listing as a trust object, not just a record. Programmatic submission is intentionally lightweight, but publication is editorially controlled.
- A valid submission is accepted into the
pendingqueue. - Editors review the product, source quality, stack evidence, and any Agent Directory claim metadata.
- The listing is either approved into the public catalog, approved for the broader directory without an Agent Directory claim, or held for revision or rejection.
Successful submission and status responses include:
review_status_urlfor canonical pollingowner_claimfor submitter-inbox verification stateclaim_statusfor public claim progressionclaim_eligibilityfor directory placementnext_action_codefor machine-readable workflow handling
The current next_action_code values are:
UNDER_EDITORIAL_REVIEWCLAIM_NEEDS_REVISIONCLAIM_NOT_VERIFIEDAPPROVED_FOR_AGENT_DIRECTORYAPPROVED_FOR_ALL_PRODUCTS_ONLY
Trust and catalog guarantees
GET /api/v1/productsandGET /api/v1/searchexpose approved listings only.- Approved product detail responses include a public-safe trust object with review model, source quality, source URL, verification timing, and evidence links when available.
- Badge verification data is returned by
GET /api/v1/products/:slug. Use that payload for public badge state instead of scraping product pages. - The directory favors catalog quality over intake volume. Absence from the public catalog does not imply technical failure; it may mean the listing is still under review or did not meet editorial requirements.
Crawling and synchronization guidance
- Start with machine-readable files when available, especially
/.well-known/agents.json,/api/v1/openapi, and/api/v1/schema. - Refresh
GET /api/v1/toolsbefore submitting or on a short cache window. Tool responses are documented with a 5 minute revalidation window. - Poll
review_status_urlno more than once every 300 seconds unless the response gives stricter guidance. - Honor
Retry-Afteron429responses. - Use response URLs directly when they are provided. Search responses already return absolute URLs.
- Do not infer approval from homepage presence, sitemap appearance, or search indexing. Use
GET /api/v1/products/:slugas the approval source of truth. - Do not scrape HTML to reconstruct API state when the public JSON endpoint already exposes the contract you need.
Minimal end-to-end example
curl https://www.madewithstack.com/api/v1/tools
curl -X POST https://www.madewithstack.com/api/v1/submit \
-H "Content-Type: application/json" \
-d '{
"name": "AgentFlow",
"url": "https://agentflow.dev",
"description": "Workflow orchestration for multi-agent operations teams.",
"email": "founder@agentflow.dev",
"tool_slugs": ["claude", "supabase"],
"qualification_type": "agent_native",
"agent_use_case": "operations",
"qualification_statement": "The product centers agent-led workflow execution.",
"workflow_summary": "Users define workflows that agents execute and monitor.",
"agent_tools_used": ["Claude", "Supabase"],
"supporting_links": ["https://agentflow.dev/docs"]
}'
curl "https://www.madewithstack.com/api/v1/products/agentflow?email=founder@agentflow.dev"
curl "https://www.madewithstack.com/api/v1/products?limit=10&sort=newest&is_agent=true"
Documentation map
- Start with
Getting startedfor the recommended integration order. - Read
Submit a productif you want the workflow framing before the raw endpoint reference. - Use
POST /api/v1/submitfor the write contract. - Use
GET /api/v1/products/:slugfor review polling and approved product detail retrieval. - Use
GET /api/v1/products,GET /api/v1/search, andGET /api/v1/toolsfor catalog and taxonomy reads. - Use
Error codes and rate limitsfor operational safeguards.
What the public API is for
- Discovering valid tool slugs before submission
- Creating pending submissions programmatically
- Checking whether a pending submission was approved
- Browsing the approved public catalog
- Searching tools and products by keyword
What the public API is not for
- Instant publishing
- Account-based workflows
- API-key gated private access
- Paid fast-track checkout
- Admin operations