Querying a Large Number of Symbols
A single PXWeb request can retrieve data for multiple symbols. The symbols can either be specified as a comma separated list in the symbol parameter, or with a search pattern, or as a comma separated list of search patterns.
A single GET request is limited to a length of around 2000 characters which works out to around a few hundred symbols. Search patterns can make selecting a large number of symbols simpler. (Search pattern documentation) Most PXWeb requests have a default limit of 600 symbols that can be returned from a single request. That default limit can be overridden with the SymbolLimit parameter. By setting the SymbolLimit parameter, the maximum number of symbols can be raised up to 4000.
Paging through large requests using a Page Token
If a search pattern matches more than the SymbolLimit number of symbols, then the remaining symbols can be queried using a paging method. A response that has more symbols to return will return a PageToken in the top level metadata of the response. Then if the query is made again with the same parameters plus sending the page token back in the PageToken parameter, PXWeb will return symbols that were not returned in the first request. This process can be repeated until PXWeb does not send a PageToken back which indicates there are no more symbols to return.
Finding all permisioned symbols
A common question is how to get a list of all permissioned symbols. Generally the best way to do this is to make a GetQuoteSnap request using the pattern * , and then use the paging technique to get all symbols. In order to decrease the amount of data required for these requests, it is recommended to specify only a few metadata fields in the Type parameter. One common strategy is to request only the IssueDescription field which will produce a list of symbols and descriptions. Adding other fields such as ContractDate, ExpirationDate, or ExercisePrice can be useful. (List of all possible fields)
The available symbols in PXWeb changes slowly over time. It is recommended clients keep a cache of symbols on their own system, so it is not necessary to download all symbols for every request.
Finding all symbols in a market
The same process that finds all available symbols can be used to find all symbols in a particular market. If the market code is passed to all the requests using the market parameter. PXWeb will limit the results to symbols in that market.
Example
An example of this paging technique can be found in this Python script that creates a CSV file of all available symbols: GetAllSymbolsExample.py