{
  "openapi": "3.1.0",
  "info": {
    "title": "SubmitCheck API",
    "version": "1.0.0",
    "description": "Startup, SaaS and AI-tool launch directories (516 from 11 public lists), re-checked live in October 2026: live/dead/moved status, submit URL, free option (yes / badge required / queue / paid only), lowest price seen, account needed, captcha, Tranco popularity.",
    "x-guidance": "Use GET /api/v1/categories (free) to list categories. Then GET /api/v1/directories?category=<category>&free=yes&account=no to get up to 50 reviewed, live directories sorted by popularity, each with a submit URL and conditions: use it to plan where to submit a product. GET /api/v1/directory?domain=<domain> returns the status of one directory (e.g. whether it is dead or now redirects elsewhere). Paid routes use x402 v2, USDC on Base. Invalid input is rejected with 400 before any charge.",
    "contact": {
      "email": "submitcheck@appin60.com",
      "url": "https://submitcheck.appin60.com"
    }
  },
  "servers": [
    {
      "url": "https://submitcheck.appin60.com"
    }
  ],
  "paths": {
    "/api/v1/categories": {
      "get": {
        "operationId": "listCategories",
        "summary": "Directory categories with counts (free)",
        "responses": {
          "200": {
            "description": "Categories",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/directories": {
      "get": {
        "operationId": "findDirectories",
        "summary": "Reviewed live launch directories filtered by category, free option and account requirement",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "e.g. launch-platform, saas-directory, ai-directory, mcp-directory, open-source-directory"
          },
          {
            "name": "free",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "yes-backlink",
                "queue",
                "no",
                "any"
              ]
            }
          },
          {
            "name": "account",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "yes",
                "no",
                "any"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50
            }
          }
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Matching directories",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required"
          }
        }
      }
    },
    "/api/v1/directory": {
      "get": {
        "operationId": "getDirectory",
        "summary": "Status and submission conditions of one launch directory by domain",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "e.g. betapage.co"
          }
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Directory record",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required"
          }
        }
      }
    },
    "/api/v1/dead-directories": {
      "get": {
        "operationId": "deadDirectories",
        "summary": "Dead, unreachable or moved launch directories from 11 public lists",
        "parameters": [
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "dead",
                "moved",
                "unreachable",
                "down",
                "any"
              ]
            }
          }
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.005"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "List"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required"
          }
        }
      }
    },
    "/api/v1/check": {
      "get": {
        "operationId": "checkDirectories",
        "summary": "Check up to 20 launch-directory domains: known record or live check now",
        "parameters": [
          {
            "name": "domains",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated domains"
          }
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Results"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required"
          }
        }
      }
    }
  }
}