Simply Wall St - Pro API Reference
Access to the Pro API will end on June 30th, 2025 and the feature will be removed from the platform shortly after that date.
Welcome to the SimplyWallSt Pro API documentation!
You can use our API to retrieve company data, historical, pricing information, company insights and more.
This documentation is designed to help you get started with our API and to provide you with all the information you need about the operations and types we support.
If you have any questions, please submit a Pro API / Developer support ticket or leave us feedback.
Note: this in early access mode, meaning we reserve the right to make changes, have outages, etc... and we make no guarantees on service availabilty or accuracy whilst in this phase.
API Endpoints
https://api.simplywall.st/graphql
Example #1: Find Tesla's UUID for future usage.
Search for companies using 'tesla' as the query.
* Note: Replace <pro-api-token>
with your own generated API key
curl --location 'https://api.simplywall.st/graphql' \
--header 'Authorization: Bearer <pro-api-token>' \
--header 'Content-Type: application/json' \
--data '{"query":"query searchCompanies($query: String!) {searchCompanies(query: $query) {id,name,exchangeSymbol,tickerSymbol}}","variables":{"query":"tesla"}}'
Example #2: Get Basic Company Information
Once you have retrieved the UUID of a company from the example above, you can use it to perform a query to retrieve basic company information about tesla
curl --location 'https://api.simplywall.st/graphql' \
--header 'Authorization: Bearer <pro-api-token>' \
--header 'Content-Type: application/json' \
--data '{"query":"query Query($id: ID!) {company (id: $id) {id,name,tickerSymbol}}","variables":{"id":"65dce5ea-70d6-417f-9cac-1eaa92fb7f1c"}}'
Example #3: Get Basic Company Information via ticker symbol and exchange
Another option is to retriev the company information about tesla via ticker symbol and exchange. Remember that ticker symbols might change.
curl --location 'https://api.simplywall.st/graphql' \
--header 'Authorization: Bearer <pro-api-token>' \
--header 'Content-Type: application/json' \
--data '{"query":"query companyByExchangeAndTickerSymbol($exchange: String!,$symbol:String!) {\n companyByExchangeAndTickerSymbol(exchange: $exchange,tickerSymbol:$symbol) {id,name,exchangeSymbol,tickerSymbol}\n}\n","variables":{"exchange":"NasdaqGS","symbol":"TSLA"}}'
Example #4: List Exchanges Supported
Get a list of exchanges.
curl --location 'https://api.simplywall.st/graphql' \
--header 'Authorization: Bearer <pro-api-token>' \
--header 'Content-Type: application/json' \
--data '{"query":"query {exchanges {symbol}}","variables":{}}'
Example #5: Get Companies by Exchange
Get a paginated list of ASX companies, showing 10 results per page, offset by the 2nd page.
curl --location 'https://api.simplywall.st/graphql' \
--header 'Authorization: Bearer <pro-api-token>' \
--header 'Content-Type: application/json' \
--data '{"query":"query {companies(exchange: \"ASX\", limit: 10, offset: 2) {id,name,tickerSymbol}}","variables":{}}'
Queries
companies
Response
Returns [Company!]!
Example
Query
query Companies(
$exchange: String!,
$offset: Int!,
$limit: Int!
) {
companies(
exchange: $exchange,
offset: $offset,
limit: $limit
) {
id
exchangeSymbol
tickerSymbol
name
marketCapUSD
primaryIndustry {
name
}
secondaryIndustry {
name
}
tertiaryIndustry {
name
}
market {
name
iso2
}
closingPrices
statements {
name
title
area
type
value
outcome
description
state
severity
outcomeName
}
listings {
id
exchangeSymbol
tickerSymbol
name
marketCapUSD
primaryIndustry {
...IndustryFragment
}
secondaryIndustry {
...IndustryFragment
}
tertiaryIndustry {
...IndustryFragment
}
market {
...MarketFragment
}
closingPrices
statements {
...StatementFragment
}
listings {
...CompanyFragment
}
owners {
...OwnerFragment
}
insiderTransactions {
...InsiderTransactionFragment
}
members {
...MemberFragment
}
active
classificationStatus
}
owners {
name
type
sharesHeld
percentOfSharesOutstanding
holdingDate
periodStartDate
periodEndDate
rankSharesHeld
rankSharesSold
}
insiderTransactions {
type
ownerName
ownerType
description
tradeDateMin
tradeDateMax
shares
priceMin
priceMax
transactionValue
percentageSharesTraded
percentageChangeTransShares
isManagementInsider
filingDate
}
members {
age
name
title
tenure
compensation
}
active
classificationStatus
}
}
Variables
{
"exchange": "xyz789",
"offset": 0,
"limit": 100
}
Response
{
"data": {
"companies": [
{
"id": "4",
"exchangeSymbol": "xyz789",
"tickerSymbol": "abc123",
"name": "xyz789",
"marketCapUSD": 123.45,
"primaryIndustry": Industry,
"secondaryIndustry": Industry,
"tertiaryIndustry": Industry,
"market": Market,
"closingPrices": {},
"statements": [Statement],
"listings": [Company],
"owners": [Owner],
"insiderTransactions": [InsiderTransaction],
"members": [Member],
"active": false,
"classificationStatus": "ACTIVE"
}
]
}
}
company
Description
A representation of a legal entity engaged in operating a business.
Response
Returns a Company!
Arguments
Name | Description |
---|---|
id - ID!
|
The company UUID. This will remain constant throughout the lifetime of the company even if it changes ticker symbols. |
Example
Query
query Company($id: ID!) {
company(id: $id) {
id
exchangeSymbol
tickerSymbol
name
marketCapUSD
primaryIndustry {
name
}
secondaryIndustry {
name
}
tertiaryIndustry {
name
}
market {
name
iso2
}
closingPrices
statements {
name
title
area
type
value
outcome
description
state
severity
outcomeName
}
listings {
id
exchangeSymbol
tickerSymbol
name
marketCapUSD
primaryIndustry {
...IndustryFragment
}
secondaryIndustry {
...IndustryFragment
}
tertiaryIndustry {
...IndustryFragment
}
market {
...MarketFragment
}
closingPrices
statements {
...StatementFragment
}
listings {
...CompanyFragment
}
owners {
...OwnerFragment
}
insiderTransactions {
...InsiderTransactionFragment
}
members {
...MemberFragment
}
active
classificationStatus
}
owners {
name
type
sharesHeld
percentOfSharesOutstanding
holdingDate
periodStartDate
periodEndDate
rankSharesHeld
rankSharesSold
}
insiderTransactions {
type
ownerName
ownerType
description
tradeDateMin
tradeDateMax
shares
priceMin
priceMax
transactionValue
percentageSharesTraded
percentageChangeTransShares
isManagementInsider
filingDate
}
members {
age
name
title
tenure
compensation
}
active
classificationStatus
}
}
Variables
{"id": "4"}
Response
{
"data": {
"company": {
"id": 4,
"exchangeSymbol": "abc123",
"tickerSymbol": "abc123",
"name": "abc123",
"marketCapUSD": 987.65,
"primaryIndustry": Industry,
"secondaryIndustry": Industry,
"tertiaryIndustry": Industry,
"market": Market,
"closingPrices": {},
"statements": [Statement],
"listings": [Company],
"owners": [Owner],
"insiderTransactions": [InsiderTransaction],
"members": [Member],
"active": true,
"classificationStatus": "ACTIVE"
}
}
}
companyByExchangeAndTickerSymbol
Description
A representation of a legal entity engaged in operating a business.
Response
Returns a Company!
Example
Query
query CompanyByExchangeAndTickerSymbol(
$exchange: String!,
$tickerSymbol: String!
) {
companyByExchangeAndTickerSymbol(
exchange: $exchange,
tickerSymbol: $tickerSymbol
) {
id
exchangeSymbol
tickerSymbol
name
marketCapUSD
primaryIndustry {
name
}
secondaryIndustry {
name
}
tertiaryIndustry {
name
}
market {
name
iso2
}
closingPrices
statements {
name
title
area
type
value
outcome
description
state
severity
outcomeName
}
listings {
id
exchangeSymbol
tickerSymbol
name
marketCapUSD
primaryIndustry {
...IndustryFragment
}
secondaryIndustry {
...IndustryFragment
}
tertiaryIndustry {
...IndustryFragment
}
market {
...MarketFragment
}
closingPrices
statements {
...StatementFragment
}
listings {
...CompanyFragment
}
owners {
...OwnerFragment
}
insiderTransactions {
...InsiderTransactionFragment
}
members {
...MemberFragment
}
active
classificationStatus
}
owners {
name
type
sharesHeld
percentOfSharesOutstanding
holdingDate
periodStartDate
periodEndDate
rankSharesHeld
rankSharesSold
}
insiderTransactions {
type
ownerName
ownerType
description
tradeDateMin
tradeDateMax
shares
priceMin
priceMax
transactionValue
percentageSharesTraded
percentageChangeTransShares
isManagementInsider
filingDate
}
members {
age
name
title
tenure
compensation
}
active
classificationStatus
}
}
Variables
{
"exchange": "xyz789",
"tickerSymbol": "abc123"
}
Response
{
"data": {
"companyByExchangeAndTickerSymbol": {
"id": 4,
"exchangeSymbol": "abc123",
"tickerSymbol": "xyz789",
"name": "xyz789",
"marketCapUSD": 987.65,
"primaryIndustry": Industry,
"secondaryIndustry": Industry,
"tertiaryIndustry": Industry,
"market": Market,
"closingPrices": {},
"statements": [Statement],
"listings": [Company],
"owners": [Owner],
"insiderTransactions": [InsiderTransaction],
"members": [Member],
"active": true,
"classificationStatus": "ACTIVE"
}
}
}
exchanges
Response
Returns [Exchange!]!
Example
Query
query Exchanges {
exchanges {
symbol
companiesCount
}
}
Response
{
"data": {
"exchanges": [
{
"symbol": "xyz789",
"companiesCount": 987
}
]
}
}
searchCompanies
Description
Searches for companies using an input query.
Response
Returns [Company!]!
Arguments
Name | Description |
---|---|
query - String!
|
The search query. |
Example
Query
query SearchCompanies($query: String!) {
searchCompanies(query: $query) {
id
exchangeSymbol
tickerSymbol
name
marketCapUSD
primaryIndustry {
name
}
secondaryIndustry {
name
}
tertiaryIndustry {
name
}
market {
name
iso2
}
closingPrices
statements {
name
title
area
type
value
outcome
description
state
severity
outcomeName
}
listings {
id
exchangeSymbol
tickerSymbol
name
marketCapUSD
primaryIndustry {
...IndustryFragment
}
secondaryIndustry {
...IndustryFragment
}
tertiaryIndustry {
...IndustryFragment
}
market {
...MarketFragment
}
closingPrices
statements {
...StatementFragment
}
listings {
...CompanyFragment
}
owners {
...OwnerFragment
}
insiderTransactions {
...InsiderTransactionFragment
}
members {
...MemberFragment
}
active
classificationStatus
}
owners {
name
type
sharesHeld
percentOfSharesOutstanding
holdingDate
periodStartDate
periodEndDate
rankSharesHeld
rankSharesSold
}
insiderTransactions {
type
ownerName
ownerType
description
tradeDateMin
tradeDateMax
shares
priceMin
priceMax
transactionValue
percentageSharesTraded
percentageChangeTransShares
isManagementInsider
filingDate
}
members {
age
name
title
tenure
compensation
}
active
classificationStatus
}
}
Variables
{"query": "abc123"}
Response
{
"data": {
"searchCompanies": [
{
"id": "4",
"exchangeSymbol": "abc123",
"tickerSymbol": "abc123",
"name": "abc123",
"marketCapUSD": 987.65,
"primaryIndustry": Industry,
"secondaryIndustry": Industry,
"tertiaryIndustry": Industry,
"market": Market,
"closingPrices": {},
"statements": [Statement],
"listings": [Company],
"owners": [Owner],
"insiderTransactions": [InsiderTransaction],
"members": [Member],
"active": true,
"classificationStatus": "ACTIVE"
}
]
}
}
Types
Boolean
Description
The Boolean
scalar type represents true
or false
.
Example
true
ClassificationStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"ACTIVE"
Company
Description
A representation of a legal entity engaged in operating a business.
Fields
Field Name | Description |
---|---|
id - ID!
|
The UUID of a company. This will remain constant throughout the lifetime of the company even if it changes ticker symbols. Use this value to perform lookups on a company. |
exchangeSymbol - String!
|
A short abbreviation used to uniquely identify publicly traded shares of a particular stock on a particular stock market |
tickerSymbol - String!
|
A unique series of letters assigned to a security for trading purposes |
name - String!
|
Name of company |
marketCapUSD - Float!
|
Total market cap value represented in US dollars |
primaryIndustry - Industry
|
Primary tier industry classification |
secondaryIndustry - Industry
|
Secondary tier industry classification |
tertiaryIndustry - Industry
|
Tertiary tier industry classification |
market - Market!
|
The market where parties can engage in economic transactions |
closingPrices - JSONObject!
|
A historical collection of the last price traded during a regular trading session |
statements - [Statement!]!
|
A collection of evaluated opinions about a company |
Arguments
|
|
listings - [Company!]!
|
A listing for a company whose shares are bought and sold to the public through a stock exchange |
owners - [Owner!]!
|
|
insiderTransactions - [InsiderTransaction!]!
|
|
members - [Member!]!
|
|
active - Boolean!
|
Whether or not this listing is active. |
classificationStatus - ClassificationStatus!
|
The classification status of the listing. |
Example
{
"id": "4",
"exchangeSymbol": "abc123",
"tickerSymbol": "xyz789",
"name": "xyz789",
"marketCapUSD": 987.65,
"primaryIndustry": Industry,
"secondaryIndustry": Industry,
"tertiaryIndustry": Industry,
"market": Market,
"closingPrices": {},
"statements": [Statement],
"listings": [Company],
"owners": [Owner],
"insiderTransactions": [InsiderTransaction],
"members": [Member],
"active": false,
"classificationStatus": "ACTIVE"
}
DateTime
Description
A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.
Example
"2007-12-03T10:15:30Z"
Exchange
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
123.45
ID
Description
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID.
Example
4
Industry
Description
Group of companies that are related based on their primary business activities.
Fields
Field Name | Description |
---|---|
name - String!
|
Example
{"name": "xyz789"}
InsiderTransaction
Description
A transaction that represents a trade of stocks and securities based on non-public insider information.
Fields
Field Name | Description |
---|---|
type - TransactionType!
|
Determines if the transaction is a BUY or SELL type |
ownerName - String!
|
Name of transaction owner |
ownerType - OwnerType!
|
Type of owner. Can be an Individual or Company |
description - String!
|
Description of the insider transaction |
tradeDateMin - DateTime
|
First trade date |
tradeDateMax - DateTime
|
Last trade date |
shares - Float!
|
Number of shares |
priceMin - Float!
|
The minimum price traded |
priceMax - Float!
|
The maximum price traded |
transactionValue - Float!
|
Total transaction value |
percentageSharesTraded - Float
|
Percentage of owner shares traded |
percentageChangeTransShares - Float
|
Percentage changed when transacting shares |
isManagementInsider - Boolean!
|
Flag to signify if the owner is a management member |
filingDate - DateTime
|
Date when the transaction was filed |
Example
{
"type": "BUY",
"ownerName": "abc123",
"ownerType": "INDIVIDUAL",
"description": "xyz789",
"tradeDateMin": "2007-12-03T10:15:30Z",
"tradeDateMax": "2007-12-03T10:15:30Z",
"shares": 123.45,
"priceMin": 123.45,
"priceMax": 123.45,
"transactionValue": 987.65,
"percentageSharesTraded": 987.65,
"percentageChangeTransShares": 123.45,
"isManagementInsider": true,
"filingDate": "2007-12-03T10:15:30Z"
}
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
JSONObject
Description
The JSONObject
scalar type represents JSON objects as specified by ECMA-404.
Example
{}
Market
Member
Description
A member of the board.
Example
{
"age": 987,
"name": "xyz789",
"title": "abc123",
"tenure": 987.65,
"compensation": 987.65
}
Owner
Description
An Individual
or Company
that owns outstanding shares of the company.
Fields
Field Name | Description |
---|---|
name - String!
|
Name of the owner |
type - OwnerType!
|
Type of owner. This can be an Individual or Company |
sharesHeld - Float!
|
Number of shares held |
percentOfSharesOutstanding - Float!
|
Ownership represented in percantage |
holdingDate - DateTime
|
Date when the holdings were traded |
periodStartDate - DateTime
|
Date when holdings were held |
periodEndDate - DateTime
|
Date when holdings ceased to be held |
rankSharesHeld - Float
|
Order of rank for the number of shares held, compared to other top shareholders |
rankSharesSold - Float
|
Order of rank for the number of shares sold, compared to other top shareholders |
Example
{
"name": "xyz789",
"type": "INDIVIDUAL",
"sharesHeld": 123.45,
"percentOfSharesOutstanding": 987.65,
"holdingDate": "2007-12-03T10:15:30Z",
"periodStartDate": "2007-12-03T10:15:30Z",
"periodEndDate": "2007-12-03T10:15:30Z",
"rankSharesHeld": 987.65,
"rankSharesSold": 987.65
}
OwnerType
Description
Type of owner. This can be an Individual
or Company
Values
Enum Value | Description |
---|---|
|
|
|
Example
"INDIVIDUAL"
Statement
Description
An evaluated opinion about a company.
Fields
Field Name | Description |
---|---|
name - String!
|
Unique identifying name of the statement |
title - String!
|
Title of statement |
area - StatementArea!
|
Represents a specific area or focal point of a company being evaluated. |
type - StatementType!
|
Represents specific behavioural traits about a statement. For example, the results of a RISKS statement translates to a different outcome compared to a REWARDS statement |
value - Boolean
|
The evaluation outcome |
outcome - Int!
|
A number that represents a contextualised evaluation outcome. It extends the "value" field as it is possible to have more than one variant of an evaluation outcome. |
description - String
|
Provides a description of the statement being evaluated |
state - String
|
Specific to RISKS and REWARDS StatementType , these represent whether their outcomes pass as a risky or rewardful outcome |
severity - StatementSeverity
|
Specific to RISKS and REWARDS StatementType , this value represents the degree of the outcome |
outcomeName - String!
|
Represents a specific outcome of the evaluated value |
Example
{
"name": "xyz789",
"title": "abc123",
"area": "BANK_DIVIDENDS",
"type": "RISKS",
"value": true,
"outcome": 123,
"description": "abc123",
"state": "xyz789",
"severity": "MINOR",
"outcomeName": "abc123"
}
StatementArea
Description
Represents a specific area or focal point of a company being evaluated.
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"BANK_DIVIDENDS"
StatementSeverity
Description
Specific to RISKS
and REWARDS
StatementType
, and depending on the outcome, this value represents whether it is a minor or major risk/reward.
Values
Enum Value | Description |
---|---|
|
|
|
Example
"MINOR"
StatementType
Description
The type of statement being evaluated.
RISKS
statements are checks that are more oriented towards the risky aspects of the company which can threaten the future existence of the business, cause investors to face unnecessary capital volatility, or offers lack of data which hinders informed decision making.
REWARDS
statement checks are more oriented towards what investors should expect to get in the future, whether it is capital gains through capital appreciation as mispriced shares approach fair valuation (value) or the company becomes more valuable as it grows (future), or dividend income.
STATEMENTS
are a catch-all evaluation of statements about a company.
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"RISKS"
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"xyz789"
TransactionType
Description
Determines if the transaction is a BUY
or SELL
type.
Values
Enum Value | Description |
---|---|
|
|
|
Example
"BUY"