{"openapi":"3.1.0","info":{"title":"StableMRR directory submit API","version":"3.1.0","contact":{"name":"StableMRR","email":"stablemrr@gmail.com","url":"https://stablemrr.com/contact"},"termsOfService":"https://stablemrr.com/terms","description":"Free, no account. Verify a SaaS domain and submit it; a person approves the listing. Also available as an MCP server at /mcp."},"servers":[{"url":"https://stablemrr.com/api/v1"}],"paths":{"/submit":{"post":{"operationId":"submitDomain","summary":"Start a submission: returns the proof to publish on the domain","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","example":"example.com"},"agent":{"type":"string","description":"Name of the agent or tool submitting."}}}}}},"responses":{"200":{"description":"Already known","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["verify","pending_approval","queued","in_review","published","rejected","removed"]},"verify":{"type":"object","properties":{"domain":{"type":"string"},"token":{"type":"string"},"methods":{"type":"object"},"verifyUrl":{"type":"string"}}},"message":{"type":"string"},"product":{"type":"object","properties":{"slug":{"type":"string"},"domain":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"logoUrl":{"type":["string","null"]}}},"statusUrl":{"type":"string"},"nextSteps":{"type":"array","items":{"type":"string"}}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["verify","pending_approval","queued","in_review","published","rejected","removed"]},"verify":{"type":"object","properties":{"domain":{"type":"string"},"token":{"type":"string"},"methods":{"type":"object"},"verifyUrl":{"type":"string"}}},"message":{"type":"string"},"product":{"type":"object","properties":{"slug":{"type":"string"},"domain":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"logoUrl":{"type":["string","null"]}}},"statusUrl":{"type":"string"},"nextSteps":{"type":"array","items":{"type":"string"}}}}}}},"422":{"description":"Invalid or unresolvable domain"},"429":{"description":"Rate limited"}}}},"/submit/verify":{"post":{"operationId":"verifyDomain","summary":"Check the proof and submit the domain","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"},"agent":{"type":"string"}}}}}},"responses":{"200":{"description":"Not verified yet, or already known","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["verify","pending_approval","queued","in_review","published","rejected","removed"]},"verify":{"type":"object","properties":{"domain":{"type":"string"},"token":{"type":"string"},"methods":{"type":"object"},"verifyUrl":{"type":"string"}}},"message":{"type":"string"},"product":{"type":"object","properties":{"slug":{"type":"string"},"domain":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"logoUrl":{"type":["string","null"]}}},"statusUrl":{"type":"string"},"nextSteps":{"type":"array","items":{"type":"string"}}}}}}},"201":{"description":"Verified and submitted","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["verify","pending_approval","queued","in_review","published","rejected","removed"]},"verify":{"type":"object","properties":{"domain":{"type":"string"},"token":{"type":"string"},"methods":{"type":"object"},"verifyUrl":{"type":"string"}}},"message":{"type":"string"},"product":{"type":"object","properties":{"slug":{"type":"string"},"domain":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"logoUrl":{"type":["string","null"]}}},"statusUrl":{"type":"string"},"nextSteps":{"type":"array","items":{"type":"string"}}}}}}}}}},"/submit/{domain}":{"get":{"operationId":"getSubmissionStatus","summary":"Status of a submission, by domain or slug","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["verify","pending_approval","queued","in_review","published","rejected","removed"]},"verify":{"type":"object","properties":{"domain":{"type":"string"},"token":{"type":"string"},"methods":{"type":"object"},"verifyUrl":{"type":"string"}}},"message":{"type":"string"},"product":{"type":"object","properties":{"slug":{"type":"string"},"domain":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"logoUrl":{"type":["string","null"]}}},"statusUrl":{"type":"string"},"nextSteps":{"type":"array","items":{"type":"string"}}}}}}},"404":{"description":"Unknown"}}}},"/mcp":{"post":{"operationId":"mcp","summary":"MCP server (JSON-RPC 2.0 over HTTP)","responses":{"200":{"description":"JSON-RPC response"}}}}}}