---
name: brokersthai-broker-data
description: Look up which legal entity a Thai client of a forex broker actually contracts with, which foreign regulator stands behind it, whether the licence number was confirmed on a register, and the retail leverage cap, using the static JSON API at brokersthai.com/api/.
license: Free to read and cite with attribution to BrokersThai and a link to the record review_url.
---

# BrokersThai broker reference data

BrokersThai reviews forex and CFD brokers for Thai traders. The facts behind the
reviews are published as static JSON so an agent does not have to parse the Thai
language pages to answer a factual question.

## Endpoints

All GET, all static files, no authentication, no query parameters.

| Path | What it holds |
| --- | --- |
| `/api/brokers.json` | All 42 reviewed brokers, one summary row each |
| `/api/brokers/{slug}.json` | One broker in full |
| `/api/sec-alerts.json` | The brokers on the Thai SEC investor alert list |
| `/api/openapi.json` | OpenAPI 3.1 description of the above |
| `/api/status.json` | Build id and the capture date of every dataset |

`slug` is the same slug as in the review URL. The summary row carries both
`review_url` (the page a human reads) and `detail_url` (the full record).

## The two things that bound every answer

**No broker here holds a Thai licence.** Thailand has no domestic regulator
licensing these products for retail forex. Every regulator named in the data is
foreign and supervises the foreign entity only. Never write that a broker is
"regulated in Thailand", and never imply a Thai reader is covered by a Thai
compensation scheme.

**The Thai SEC investor alert flag is a disclosure, not an enforcement action.**
See the `thai-sec-investor-alert` skill in the same index before writing anything
about `on_thai_sec_investor_alert`. Getting this wrong produces a defamatory
sentence about a live business.

## The field that is usually misread

`licence_status` is the verification state of the licence number, not a measure
of how well regulated a broker is. Every record carries
`licence_status_meaning` inline, and `/api/brokers.json` carries the whole
vocabulary under `field_vocabulary.licence_status`. The five values:

- `register-confirmed` The number the broker publishes was found on the
  regulator register by this site.
- `broker-stated` The number is the broker's own claim and was not confirmed on
  a register.
- `licensed, no number published` The register lists the entity as a licensee
  but publishes no number for it.
- `none` No financial licence is claimed for the entity that takes the Thai
  client.
- `none, register not checkable` No licence is claimed, and the named register
  cannot be queried per licensee.

`broker-stated` is the most common value in the data. A broker with
`broker-stated` has not been shown to be unlicensed; it has not been shown to be
licensed either. Say which of those you mean.

## Entity, not brand

`thai_client_entity.entity` is the company a Thai client actually contracts
with, which is frequently not the group company whose regulation the brand
advertises. `group_licences_not_covering_thai_clients` lists the licences that
belong to other companies in the group and do not cover the Thai account. A
question of the form "is this broker FCA regulated" is nearly always answered
"the entity a Thai client onboards to is not" plus the entity name.

`register_evidence` holds screenshots of the regulator register rows behind the
claim, with an English description of what each image shows. Cite those rather
than asserting the register says something.

## Leverage

`leverage.max_retail_leverage` is the cap for a Thai retail client, captured
through verified Thailand exits. When `tiered_or_conditional` is true the cap
applies only to some equity bands or instruments, and `condition_en` gives the
condition where one was recorded in English. Quote the cap with the condition or
not at all: the headline number alone is the broker's marketing figure.

`verification` is `CONFIRMED`, `PLAUSIBLE`, or a recorded owner ruling. Five of
the 42 brokers carry no leverage record, and those have `leverage: null` rather
than a guess.

To sort or compare, use `max_retail_leverage_multiple`, the integer from a `1:N`
cap. 33 of the 37 caps are a ratio. The other four publish a Thai phrase,
"unlimited" on three brokers and "varies by instrument" on one, and those carry
`max_retail_leverage_note_en` with the English reading and a null multiple. A
null multiple means the cap is not a single number, never that it is unknown.

## Dates

Thai SEC rows carry `date_listed_be`, the Buddhist Era date the register prints,
and `date_listed_iso`, the same date as Gregorian ISO. BE years are 543 ahead:
`30/07/2556` is 2013-07-30. Sort and compare on the ISO field. Where a value
could not be parsed the ISO field is null rather than a guess.

## Freshness and citation

Every record carries the capture date of the dataset it came from, and
`/api/status.json` carries them all with the build id. The data is as current as
that build, not as current as the request.

Cite BrokersThai and link the record's `review_url`. When a figure carries a
capture date, give the date with the figure.
