MadeWithStack
Agent DirectoryCatalogDevelopersDocsSubmit
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 productDocsTermsPrivacyTwitterAboutBlogAdvertiseContact

As listed on

Featured on EarlyHuntFeatured AI Agents on AI Agents DirectoryListed on Turbo0MadeWithStack - Featured on Startup FameGood AI ToolsFeatured on Findly.toolsFazier badgeBest Digital Marketing Companies - OnToplist.com
Featured on EarlyHuntFeatured AI Agents on AI Agents DirectoryListed on Turbo0MadeWithStack - Featured on Startup FameGood AI ToolsFeatured on Findly.toolsFazier badgeBest Digital Marketing Companies - OnToplist.com
Documentationagents

GET /api/v1/compare

Reference for side-by-side comparison of two approved products in the MadeWithStack catalog.

Docs

Overview

Agent and API DocumentationGetting started

Workflows

Submit a productCheck review status

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 compare when an agent needs a structured two-product evaluation instead of stitching together multiple product reads manually.

Input model

Pass exactly two slugs through the slugs query parameter.

Output model

The response returns both product detail objects plus a comparison block covering:

  • shared and unique tools
  • shared audience tags
  • agent use case alignment
  • qualification and claim-review deltas
  • trust-oriented summary fields
GET/api/v1/compare

Use this endpoint when an agent needs shared tools, trust-state differences, and audience/use-case overlap without scraping two product pages.

Auth

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

Review model

Read-only endpoint over approved listings.

Cache

Dynamic server response.

Example request

curl "https://www.madewithstack.com/api/v1/compare?slugs=devin,lindy"

Query parameters

FieldTypeRequiredDescription
slugscomma-separated product slugsYesExactly two approved product slugs, for example devin,lindy.

Responses

200

Success

Returns both approved product detail objects plus a structured comparison summary.

{
  "slugs": [
    "devin",
    "lindy"
  ],
  "products": [
    {
      "id": "string",
      "name": "string",
      "slug": "string",
      "description": "string",
      "url": "string",
      "favicon_url": "string | null",
      "founder_name": "string | null",
      "founder_twitter": "string | null",
      "founder_profile_slug": "string | null",
      "launch_date": "string | null",
      "status": "\"approved\"",
      "created_at": "string",
      "approved_at": "string | null",
      "view_count": "number",
      "is_featured": "boolean",
      "featured_rank": "number",
      "screenshot_url": "string | null",
      "submission_tier": "\"free\" | \"paid_fast_track\"",
      "review_priority": "number",
      "audience_tags": [
        "\"for-developers\" | \"for-founders\" | \"b2b\" | \"consumer\""
      ],
      "badge_verified": "boolean",
      "is_agent_product": "boolean",
      "qualification_type": "\"agent_native\" | \"agent_built\" | \"agentic_workflow\" | null",
      "agent_use_case": "\"support\" | \"research\" | \"operations\" | \"sales\" | \"voice\" | \"browser_automation\" | null",
      "qualification_statement": "string | null",
      "workflow_summary": "string | null",
      "agent_tools_used": "string[]",
      "supporting_links": "string[]",
      "claim_review_status": "\"submitted\" | \"verified\" | \"not_verified\" | \"needs_revision\" | null",
      "claim_reviewed_at": "string | null",
      "claim_review_notes": "string | null",
      "claim_verified_by": "string | null",
      "claim_evidence_summary": "string | null",
      "tools": [
        {
          "id": "string",
          "name": "string",
          "slug": "string",
          "description": "string | null",
          "icon_url": "string | null",
          "category": "string",
          "product_count": "number",
          "created_at": "string"
        }
      ],
      "overview": "string | null",
      "editorial_summary": "string | null",
      "trust": {
        "review_model": "\"manual\"",
        "source_kind": "\"curated\" | \"user_submission\" | \"other\"",
        "source_quality": "\"curated_evidence\" | \"reviewed_with_evidence\" | \"manual_review_only\"",
        "source_url": "string",
        "verified_at": "string | null",
        "public_note": "string | null",
        "evidence": [
          {
            "type": "string",
            "url": "string"
          }
        ]
      },
      "compatibility_matrix": [
        {
          "tool": {
            "id": "string",
            "name": "string",
            "slug": "string",
            "description": "string | null",
            "icon_url": "string | null",
            "category": "string",
            "product_count": "number",
            "created_at": "string"
          },
          "status": "\"core_stack\" | \"has_integration\" | \"supports_deployment\" | \"works_with\"",
          "note": "string | null"
        }
      ]
    },
    {
      "id": "string",
      "name": "string",
      "slug": "string",
      "description": "string",
      "url": "string",
      "favicon_url": "string | null",
      "founder_name": "string | null",
      "founder_twitter": "string | null",
      "founder_profile_slug": "string | null",
      "launch_date": "string | null",
      "status": "\"approved\"",
      "created_at": "string",
      "approved_at": "string | null",
      "view_count": "number",
      "is_featured": "boolean",
      "featured_rank": "number",
      "screenshot_url": "string | null",
      "submission_tier": "\"free\" | \"paid_fast_track\"",
      "review_priority": "number",
      "audience_tags": [
        "\"for-developers\" | \"for-founders\" | \"b2b\" | \"consumer\""
      ],
      "badge_verified": "boolean",
      "is_agent_product": "boolean",
      "qualification_type": "\"agent_native\" | \"agent_built\" | \"agentic_workflow\" | null",
      "agent_use_case": "\"support\" | \"research\" | \"operations\" | \"sales\" | \"voice\" | \"browser_automation\" | null",
      "qualification_statement": "string | null",
      "workflow_summary": "string | null",
      "agent_tools_used": "string[]",
      "supporting_links": "string[]",
      "claim_review_status": "\"submitted\" | \"verified\" | \"not_verified\" | \"needs_revision\" | null",
      "claim_reviewed_at": "string | null",
      "claim_review_notes": "string | null",
      "claim_verified_by": "string | null",
      "claim_evidence_summary": "string | null",
      "tools": [
        {
          "id": "string",
          "name": "string",
          "slug": "string",
          "description": "string | null",
          "icon_url": "string | null",
          "category": "string",
          "product_count": "number",
          "created_at": "string"
        }
      ],
      "overview": "string | null",
      "editorial_summary": "string | null",
      "trust": {
        "review_model": "\"manual\"",
        "source_kind": "\"curated\" | \"user_submission\" | \"other\"",
        "source_quality": "\"curated_evidence\" | \"reviewed_with_evidence\" | \"manual_review_only\"",
        "source_url": "string",
        "verified_at": "string | null",
        "public_note": "string | null",
        "evidence": [
          {
            "type": "string",
            "url": "string"
          }
        ]
      },
      "compatibility_matrix": [
        {
          "tool": {
            "id": "string",
            "name": "string",
            "slug": "string",
            "description": "string | null",
            "icon_url": "string | null",
            "category": "string",
            "product_count": "number",
            "created_at": "string"
          },
          "status": "\"core_stack\" | \"has_integration\" | \"supports_deployment\" | \"works_with\"",
          "note": "string | null"
        }
      ]
    }
  ],
  "comparison": {
    "shared_tools": [
      {
        "id": "string",
        "name": "string",
        "slug": "string",
        "description": "string | null",
        "icon_url": "string | null",
        "category": "string",
        "product_count": "number",
        "created_at": "string"
      }
    ],
    "unique_tools": {
      "<left-slug>": [
        {
          "id": "string",
          "name": "string",
          "slug": "string",
          "description": "string | null",
          "icon_url": "string | null",
          "category": "string",
          "product_count": "number",
          "created_at": "string"
        }
      ],
      "<right-slug>": [
        {
          "id": "string",
          "name": "string",
          "slug": "string",
          "description": "string | null",
          "icon_url": "string | null",
          "category": "string",
          "product_count": "number",
          "created_at": "string"
        }
      ]
    },
    "shared_audience_tags": [
      "\"for-developers\" | \"for-founders\" | \"b2b\" | \"consumer\""
    ],
    "agent_use_case": {
      "left": "\"support\" | \"research\" | \"operations\" | \"sales\" | \"voice\" | \"browser_automation\" | null",
      "right": "\"support\" | \"research\" | \"operations\" | \"sales\" | \"voice\" | \"browser_automation\" | null",
      "same": "boolean"
    },
    "qualification_type": {
      "left": "\"agent_native\" | \"agent_built\" | \"agentic_workflow\" | null",
      "right": "\"agent_native\" | \"agent_built\" | \"agentic_workflow\" | null",
      "same": "boolean"
    },
    "claim_review_status": {
      "left": "\"submitted\" | \"verified\" | \"not_verified\" | \"needs_revision\" | null",
      "right": "\"submitted\" | \"verified\" | \"not_verified\" | \"needs_revision\" | null",
      "same": "boolean"
    },
    "trust": {
      "<left-slug>": {
        "claim_review_status": "\"submitted\" | \"verified\" | \"not_verified\" | \"needs_revision\" | null",
        "badge_verified": "boolean",
        "is_featured": "boolean",
        "approved_at": "string | null",
        "source_quality": "\"curated_evidence\" | \"reviewed_with_evidence\" | \"manual_review_only\" | null"
      },
      "<right-slug>": {
        "claim_review_status": "\"submitted\" | \"verified\" | \"not_verified\" | \"needs_revision\" | null",
        "badge_verified": "boolean",
        "is_featured": "boolean",
        "approved_at": "string | null",
        "source_quality": "\"curated_evidence\" | \"reviewed_with_evidence\" | \"manual_review_only\" | null"
      }
    },
    "summary": [
      "string"
    ]
  }
}

Error codes

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

Operational notes

  • Call this after you already have candidate slugs and need a machine-readable comparison object for decision-making or ranking explanations.
  • The endpoint requires exactly two unique slugs.
  • Both products must already be approved and public.

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.