{"openapi":"3.1.0","info":{"title":"PerpsMatch API","version":"1.0.0","summary":"Read-only data on crypto perpetual-futures prop-trading firms and trading guides.","description":"Structured versions of the data on https://perpsmatch.com: every tracked perps prop firm (evaluation plans and prices, drawdown and payout rules, leverage caps, on-chain payout verification, discount codes) and the PerpsMatch guides. No authentication, no API key. Data changes as firms change their terms; each firm has a `lastVerified` date. Errors are JSON: `{ \"error\": { \"status\", \"code\", \"message\", \"hint\", \"docs\" } }`.","contact":{"name":"PerpsMatch","email":"hello@perpsmatch.com","url":"https://perpsmatch.com/developers"}},"externalDocs":{"description":"Developer docs","url":"https://perpsmatch.com/developers"},"servers":[{"url":"https://perpsmatch.com/api/v1"}],"security":[],"tags":[{"name":"Firms","description":"Perps prop firms and their evaluation plans."},{"name":"Guides","description":"Educational guides on perps and prop-firm rules."}],"paths":{"/firms":{"get":{"operationId":"listFirms","tags":["Firms"],"summary":"List perps prop firms","description":"Every listed (non-delisted) perps prop firm in directory order, with headline numbers. Use getFirm for plans and full rules.","responses":{"200":{"description":"All listed firms.","content":{"application/json":{"schema":{"type":"object","required":["count","firms"],"properties":{"count":{"type":"integer","example":18},"firms":{"type":"array","items":{"$ref":"#/components/schemas/FirmSummary"}}}}}}},"405":{"description":"Only GET is supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/firms/{slug}":{"get":{"operationId":"getFirm","tags":["Firms"],"summary":"Get one firm","description":"Full record for one firm: every evaluation plan, trading rules, per-market leverage, payout terms and wallets, discount code, highlights, red flags and sources.","parameters":[{"name":"slug","in":"path","required":true,"description":"The firm's URL slug, as returned by the list endpoint.","schema":{"type":"string","pattern":"^[a-z0-9-]+$","example":"myfundedperps"}}],"responses":{"200":{"description":"The firm.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Firm"}}}},"404":{"description":"No firm with that slug. Call listFirms for valid slugs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Only GET is supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/guides":{"get":{"operationId":"listGuides","tags":["Guides"],"summary":"List guides","description":"Every guide with its title, category and summary. Use getGuide for the full text.","responses":{"200":{"description":"All guides.","content":{"application/json":{"schema":{"type":"object","required":["count","guides"],"properties":{"count":{"type":"integer","example":28},"guides":{"type":"array","items":{"$ref":"#/components/schemas/GuideSummary"}}}}}}},"405":{"description":"Only GET is supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/guides/{slug}":{"get":{"operationId":"getGuide","tags":["Guides"],"summary":"Get one guide","description":"Full guide: short answer, key takeaways, sections, FAQs and sources.","parameters":[{"name":"slug","in":"path","required":true,"description":"The guide's URL slug, as returned by the list endpoint.","schema":{"type":"string","pattern":"^[a-z0-9-]+$","example":"what-are-perpetual-futures"}}],"responses":{"200":{"description":"The guide.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Guide"}}}},"404":{"description":"No guide with that slug. Call listGuides for valid slugs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Only GET is supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["status","code","message","hint"],"properties":{"status":{"type":"integer","description":"HTTP status code.","example":404},"code":{"type":"string","enum":["not_found","method_not_allowed"],"description":"Stable machine-readable code."},"message":{"type":"string","description":"What went wrong."},"hint":{"type":"string","description":"How to fix the request."},"docs":{"type":"string","format":"uri"}}}}},"Discount":{"type":["object","null"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"pct":{"type":"number"}}},"FirmSummary":{"type":"object","required":["slug","name","url","status","venue","verification","lastVerified"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri","description":"Firm page on the site."},"tagline":{"type":"string"},"status":{"type":"string","enum":["live","beta","waitlist","defunct"]},"venue":{"type":"string","description":"Where traders trade, e.g. Hyperliquid."},"segment":{"type":"string","enum":["exchange-owned","onchain","exchange-routed","independent"]},"capital":{"type":"string","enum":["real","simulated","hybrid","unknown"]},"minPrice":{"type":["number","null"],"description":"Cheapest evaluation fee in USD (0 = free)."},"maxAccountSize":{"type":["number","null"],"description":"Largest account size in USD."},"profitSplit":{"type":"string","example":"80% → 90%"},"maxSplitPct":{"type":["number","null"]},"maxLeverage":{"type":["string","null"]},"verification":{"type":"string","enum":["contract","wallet","claimed","none"],"description":"How much of the payout record can be checked on-chain: contract or wallet = checkable."},"discount":{"$ref":"#/components/schemas/Discount"},"lastVerified":{"type":"string","format":"date"}}},"Plan":{"type":"object","required":["name","steps","size"],"properties":{"name":{"type":"string","example":"1-Step Classic"},"steps":{"type":"integer","enum":[0,1,2],"description":"0 = instant funding."},"size":{"type":"number","description":"Account size in USD."},"price":{"type":["number","null"],"description":"Evaluation fee in USD."},"profitTarget":{"type":["string","null"]},"dailyLoss":{"type":["string","null"]},"maxDrawdown":{"type":["string","null"]},"drawdownType":{"type":"string","enum":["static","trailing","eod","unknown"]}},"additionalProperties":true},"Firm":{"allOf":[{"$ref":"#/components/schemas/FirmSummary"},{"type":"object","properties":{"website":{"type":"string","format":"uri"},"launched":{"type":["string","null"]},"company":{"type":["string","null"]},"jurisdiction":{"type":["string","null"]},"assets":{"type":"string"},"plans":{"type":"array","items":{"$ref":"#/components/schemas/Plan"}},"minDays":{"type":["string","null"]},"timeLimit":{"type":["string","null"]},"consistencyRule":{"type":["string","null"]},"weekendHolding":{"type":"string","enum":["yes","no","unknown"]},"newsTrading":{"type":"string","enum":["yes","no","unknown"]},"payoutToken":{"type":["string","null"]},"payoutChain":{"type":["string","null"]},"payoutSpeed":{"type":["string","null"]},"verificationNote":{"type":"string"},"kyc":{"type":"string","enum":["yes","no","unknown"]},"usAllowed":{"type":"string","enum":["yes","no","unknown"]},"highlights":{"type":"array","items":{"type":"string"}},"redFlags":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"string","format":"uri"}}},"additionalProperties":true}]},"GuideSummary":{"type":"object","required":["slug","title","description","category","url","updated"],"properties":{"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string","enum":["perps-basics","risk-and-margin","markets","prop-firms","prop-rules","industry"]},"url":{"type":"string","format":"uri"},"updated":{"type":"string","format":"date"}}},"Guide":{"allOf":[{"$ref":"#/components/schemas/GuideSummary"},{"type":"object","properties":{"answer":{"type":"string","description":"Short, quotable direct answer."},"keyTakeaways":{"type":"array","items":{"type":"string"}},"sections":{"type":"array","items":{"type":"object","properties":{"heading":{"type":"string"},"blocks":{"type":"array","items":{"type":"object"}}}}},"faqs":{"type":"array","items":{"type":"object","properties":{"q":{"type":"string"},"a":{"type":"string"}}}},"sources":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"url":{"type":"string"}}}}}}]}}}}