---
title: "Public: list visible propfirms with offers, challenges and overview"
method: GET
path: "/api/propfirms/list"
tags: ["propfirms"]
---

# Public: list visible propfirms with offers, challenges and overview

`GET /api/propfirms/list`

## Request

- Base URL: `https://app.luxalgo.com`
- URL: `https://app.luxalgo.com/api/propfirms/list`
- Auth: none declared
- TypeScript: <https://skmtc.dev/luxalgo/apis/luxalgo-public-api/docs/api/propfirms/list/get.ts> (a function with typed inputs; its response is checked against the schema)

## Response `200`

Success. The payload is wrapped in the standard { data, errors } envelope.

- object
  - `data` object, required
    - `propfirms` object[], required
      - `name` string, required
      - `yearFounded` number, nullable, required
      - `productTypes` string[], required
      - `commissionAmount` number, nullable, required
      - `countryIso2` string, nullable, required
      - `currency` string, nullable, required
      - `isPreferredPartner` boolean, required
      - `isVisible` boolean, required
      - `logoImageUrl` string, nullable, required
      - `paymentMethods` string[], required
      - `payoutMethods` string[], required
      - `restrictedCountries` string[], required
      - `reviewsTrustPilotCount` number, nullable, required
      - `reviewsTrustPilotScore` number, nullable, required
      - `tradedMarketTypes` string[], required
      - `tradingPlatforms` string[], required
      - `id` string, required
      - `propfirmId` string, required
      - `offers` object[], required
        - `offerId` string, required
        - `propfirmId` string, required
        - `promoCode` string, nullable, required
        - `affiliateLink` string, nullable, required
        - `discountIsPercent` boolean, required
        - `discountValue` number, nullable, required
        - `shortDescription` string, nullable, required
        - `fullDescription` string, nullable, required
        - `isActive` boolean, required
        - `isFeatured` boolean, required
        - `hasEndDate` boolean, required
        - `endsAt` string, nullable, required
        - `scopeType` string, nullable, required
        - `scopeRaw` unknown, required
      - `challenges` object[], required
        - `challengeId` string, required
        - `challengeName` string, required
        - `accountSize` number, required
        - `steps` number, required
        - `profitTarget` number[], required
        - `profitTargetIsPercent` boolean, required
        - `minTradingDays` number, nullable, required
        - `dailyLoss` number, nullable, required
        - `maxLoss` number, nullable, required
        - `dailyLossType` string, nullable, required
        - `maxLossType` string, nullable, required
        - `lossIsPercent` boolean, required
        - `maxLeverage` number, nullable, required
        - `newsTrading` boolean, nullable, required
        - `copyTrading` boolean, nullable, required
        - `autoTrading` boolean, nullable, required
        - `weekendHolding` boolean, nullable, required
        - `overnightHolding` boolean, nullable, required
        - `stoplossRequired` boolean, nullable, required
        - `activationFee` number, nullable, required
        - `resetFee` number, nullable, required
        - `maxContractSize` object, nullable, required
          - `minis` number, nullable, required
          - `micros` number, nullable, required
        - `profitSplitPercent` number, nullable, required
        - `profitSplitDetails` string, nullable, required
        - `payoutFrequency` string, nullable, required
        - `isFeeRefundable` boolean, nullable, required
        - `price` number, nullable, required
        - `interval` string, nullable, required
        - `maxLossMode` 'static-initial' | 'trailing-realized-eod' | 'trailing-intraday-unrealized', nullable
        - `maxLossLocksAtInitial` boolean, nullable
        - `maxLossLockOffset` number, nullable
        - `maxLossIsPercent` boolean, nullable
        - `dailyLossBasis` 'prior-day-balance' | 'prior-day-equity', nullable
        - `dailyLossLimitBasis` 'initial-balance' | 'anchor', nullable
        - `dailyLossIncludesOpenPnl` boolean, nullable
        - `dailyLossEvaluation` 'intraday' | 'end-of-day', nullable
        - `dailyLossIsPercent` boolean, nullable
        - `consistencyMaxBestDayPct` number, nullable
        - `payoutIntervalDays` number, nullable
        - `payoutMinWinningDays` number, nullable
        - `payoutWinningDayMinProfit` number, nullable
        - `payoutMaxPct` number, nullable
        - `payoutMaxAmount` number, nullable
        - `payoutBufferAmount` number, nullable
        - `fundedConsistencyPct` number, nullable
        - `firstPayoutMinDays` number, nullable
        - `feeCurrency` string, nullable
        - `sourceUrl` string, nullable
        - `lastVerifiedAt` string, nullable
      - `overview` object, required
        - `about` string, required
        - `leverage` string, required
        - `rules` object, required
        - `payoutPolicy` object, required
        - `faq` object, required
  - `errors` unknown

## Other responses

- `400`: Validation error — errors[].details carries the zod issues.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/luxalgo/apis/luxalgo-public-api.md) - [All operations](https://skmtc.dev/luxalgo/apis/luxalgo-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/luxalgo/apis/luxalgo-public-api/revisions/226c2d642643?raw)
