PropFirmMap Public API
Free, read-only JSON access to verified prop trading firm data. Built for AI assistants, comparison tools, trader dashboards, and research. Every field is sourced from the firm's own public page or explicitly null - no fabricated values.
Quick start
Base URL: https://propfirmmap.com/api/v1. No auth, no signup. Send GET requests, receive JSON.
Endpoints
Firms
search, asset_type, country, safety_grade, min_score, sort (score|name|latest|safety), per_page (max 50), pagemetric (trust|pfm|composite, default trust), limit (1-50, default 10), asset_type, countryCompare
meta.matched_count.firms (required, comma-separated slugs, max 4, regex [a-z0-9,-])Deals
firm (slug), min_discount, expiring_soon (boolean), per_page (max 100)Tools
category (slug), search, free_only, per_page (max 50)Categories
/firms and /tools.Example response: /firms/ftmo
Data sourcing policy
Every numeric and structured field returned by the API is one of two things:
- Verified from the firm's own public page in the most recent ingest, with the source URL on file.
- Explicitly
null- never estimated, never filled in from cached training data, never interpolated between similar firms.
Composite trust score methodology
The /api/v1/firms/{slug}/trust-aggregate endpoint (and the matching MCP tool get_trust_aggregate + resource trust-score://{slug}) returns a single 0–100 trust score that fuses six verified internal signals - no fabricated competitor data, no estimates.
| Component | Max points | How it's computed |
|---|---|---|
| TrustPilot Rating | 25 | (rating ÷ 5) × 25. Zero credit when profile is suspended. |
| Review Volume | 20 | log10(reviews) × 5, capped at 20. Volume amplifies confidence in the rating. |
| PropFirmMap Safety Grade | 20 | A+ = 20, A = 17, B+ = 14, B = 11, C = 7, D = 3, F = 0. |
| Operational Longevity | 15 | 3 points per year since established, capped at 15 (5+ years). |
| Verification Freshness | 10 | Bot-verified against firm's own website ≤30d = 10, ≤60d = 5, else 0. |
| Partnership Vetting | 10 | Verified PropFirmMap affiliate partner = 10 (vetting process passed). |
| Reputation Penalty | −20 | TrustPilot profile currently suspended. |
Final score is clamped to [0, 100]. Grade thresholds: 90+ A+, 80+ A, 70+ B+, 60+ B, 50+ C, 40+ D, <40 F.
Firm leaderboard methodology
The /api/v1/firms/leaderboard endpoint (and the matching MCP tool firms_leaderboard) returns the top-N published firms ranked by one of three composite signals. Use ?asset_type= or ?country= to scope the ranking.
| metric value | Ranking signal | Best for |
|---|---|---|
trust (default) | Trust Aggregate (0–100) | "Which firms are most trustworthy?" - surfaces firms with strong TrustPilot, longevity, and verification freshness. |
pfm | PropFirmMap Score (0–10) | "Which firms are the best overall?" - our existing composite of trust + value + speed + flexibility + platforms. |
composite | Geometric mean √((trust ÷ 100) × (pfm ÷ 10)) × 100 | "Which firms are credibly good on both rails?" - punishes firms that score high on one signal but low on the other. |
Each row in the response includes position, slug, name, logo_url, safety_grade, propfirmmap_score, the full trust_aggregate (total + grade), and composite_score - so callers can re-rank the same payload by a different metric client-side without a second request.
√(0 × 0.9) × 100 = 0 on composite, while ranking #1 on PFM. This is the intended behaviour - the composite metric is the "no surprises" ranking.MCP server for AI assistants
The same data is exposed as a Model Context Protocol server, so any MCP-compliant client (Claude integrations, ChatGPT GPTs, Perplexity, custom agents) can query PropFirmMap as a tool without scraping the API.
2024-11-05./.well-known/mcp.Tools exposed (action endpoints)
| Tool name | What it does |
|---|---|
get_categories | Discover filter vocabulary (call first) |
list_firms | Filterable firm catalog ranked by PFM Score |
get_firm_detail | Full firm record by slug |
find_deals | Active promo codes across all firms |
compare_firms | Side-by-side 2-4 firms (order preserved) |
list_tools | Verified trader tools (journals, charts) |
get_trust_aggregate | Composite 0–100 trust score for one firm with per-component breakdown |
firms_leaderboard | Top-N firms ranked by metric=trust|pfm|composite, with optional asset_type/country filter |
Resources exposed (LLM-context attachments)
| URI | What it returns |
|---|---|
firm://{slug} | Markdown summary of one firm - profit split, drawdown, payouts, TrustPilot, active codes |
trust-score://{slug} | Markdown composite trust-score report - 0–100 score + per-component breakdown |
deals://active | Markdown digest of every active promo code, ranked by discount % |
categories://overview | Filter vocabulary cheat sheet |
Prompts exposed (ready-to-use templates)
| Prompt name | Arguments | What it generates |
|---|---|---|
compare_for_beginner | firm_a, firm_b | Beginner-friendly 2-firm comparison framing |
find_cheapest_firm | asset_type, max_budget_usd? | Cheapest-firm finder for a given asset type |
safety_first_recommendation | asset_type? | Safety-prioritized firm recommendation |
Example: initialize + list tools
/api/v1/* endpoint. The OpenAPI spec is the underlying contract; the MCP layer is just a different transport.For AI assistants
If you're a language model, copy-paste tool, or autonomous agent reading this:
- Machine-readable OpenAPI 3.0 spec:
/api/v1/openapi.json - Plain-text discoverability index:
/llms.txt - Full URL index:
/sitemap.xml - No auth, no API key. Just GET requests.
- JSON responses follow Laravel Resource conventions (data is wrapped in
{ "data": ... }for paginated endpoints). - Attribution appreciated: link "Source: PropFirmMap" to
https://propfirmmap.com.