Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: PXWeb Market Data History API
description: "ProphetX Web services, in short __PXWeb__, provides the facility to access real time quotes and historical market information \nfrom a JSON and REST based web service.\n\nPXWeb end points are divided into four categories: Quotes, History, Information, and Option Series. Requests in the quotes category\nare for getting the most recent prices on a symbol. History is for requesting prices from specific time periods in the past and supports \ndaily, minute, and tick history. Information contains a request for searching for symbols based on text strings and a request for \nquerying the market hours of a symbol. The option series category contains on request for getting quotes on many futures options\nbased on an option root and an expiration."
version: 1.0.2
servers:
- description: Production (PROD)
url: https://pxweb.dtn.com
- description: Customer Acceptance Testing (CAT)
url: https://pxwebcat.dtn.com
- description: QA Testing (PRE)
url: https://prx-ws-pre.dtn.com
- description: Development (DEV)
url: https://prx-app1-dev.dtn.com
tags:
- name: History
paths:
/market_data/history/daily:
get:
tags:
- History
summary: Get daily history
description: "Get end of day open/high/low/close prices for symbols filtered by a date range or limit.\n\n\n**Note: The Dev Portal 'Try' feature does not currently work for the Market Data API. To try the API, please see this site: https://pxweb.dtn.com/PXWebDoc/OAS/index.html or use the attached Postman collection. Contact DTN here: https://www.dtn.com/contact-us/ for a trial account.** \n"
operationId: getDailyHistory
parameters:
- $ref: '#/components/parameters/symbolParam'
- $ref: '#/components/parameters/intervalParam'
- $ref: '#/components/parameters/startDateParam'
- $ref: '#/components/parameters/endDateParam'
- $ref: '#/components/parameters/dailyLimitParam'
- $ref: '#/components/parameters/symbolLimitParam'
- $ref: '#/components/parameters/pageTokenParam'
- $ref: '#/components/parameters/marketParam'
responses:
'200':
description: The overall request was successful. Individual symbols and patterns will each have their own status codes.
content:
application/json:
schema:
type: object
required:
- meta
- data
properties:
meta:
$ref: '#/components/schemas/Meta'
data:
type: array
items:
$ref: '#/components/schemas/DailyHistory'
5XX:
description: An internal server error has occurred. Sending the error response to support will help with troubleshooting.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/market_data/history/minute:
get:
tags:
- History
summary: Get minute history
description: "Get open/high/low/close prices for each minute of the trading day for symbols filtered by a date range or limit.\n\n\n**Note: The Dev Portal 'Try' feature does not currently work for the Market Data API. To try the API, please see this site: https://pxweb.dtn.com/PXWebDoc/OAS/index.html or use the attached Postman collection. Contact DTN here: https://www.dtn.com/contact-us/ for a trial account.** \n"
operationId: getMinuteHistory
parameters:
- $ref: '#/components/parameters/symbolParam'
- $ref: '#/components/parameters/intervalParam'
- $ref: '#/components/parameters/startTimeParam'
- $ref: '#/components/parameters/endTimeParam'
- $ref: '#/components/parameters/minuteLimitParam'
- $ref: '#/components/parameters/symbolLimitParam'
- $ref: '#/components/parameters/pageTokenParam'
- $ref: '#/components/parameters/marketParam'
responses:
'200':
description: The overall request was successful. Individual symbols and patterns will each have their own status codes.
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta'
data:
type: array
items:
$ref: '#/components/schemas/MinuteHistory'
5XX:
description: An internal server error has occurred. Sending the error response to support will help with troubleshooting.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/market_data/history/tick:
get:
tags:
- History
summary: Get tick history
description: "Get individual trades for symbols filtered by a date range or limit.\n\n\n**Note: The Dev Portal 'Try' feature does not currently work for the Market Data API. To try the API, please see this site: https://pxweb.dtn.com/PXWebDoc/OAS/index.html or use the attached Postman collection. Contact DTN here: https://www.dtn.com/contact-us/ for a trial account.** \n"
operationId: getTickHistory
parameters:
- $ref: '#/components/parameters/symbolParam'
- $ref: '#/components/parameters/filterParam'
- $ref: '#/components/parameters/intervalParam'
- $ref: '#/components/parameters/startTimeParam'
- $ref: '#/components/parameters/endTimeParam'
- $ref: '#/components/parameters/tickLimitParam'
- $ref: '#/components/parameters/symbolLimitParam'
- $ref: '#/components/parameters/pageTokenParam'
- $ref: '#/components/parameters/marketParam'
responses:
'200':
description: The overall request was successful. Individual symbols and patterns will each have their own status codes.
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta'
data:
type: array
items:
$ref: '#/components/schemas/TickHistory'
5XX:
description: An internal server error has occurred. Sending the error response to support will help with troubleshooting.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/market_data/history/forward-curve:
get:
tags:
- History
summary: Get futures root daily history
description: "Retrieve historical prices for each expiration of a futures contract chain for a given root symbol.\n\n\n**Note: The Dev Portal 'Try' feature does not currently work for the Market Data API. To try the API, please see this site: https://pxweb.dtn.com/PXWebDoc/OAS/index.html or use the attached Postman collection. Contact DTN here: https://www.dtn.com/contact-us/ for a trial account.** \n"
operationId: getForwardCurve
parameters:
- $ref: '#/components/parameters/rootParam'
- $ref: '#/components/parameters/curveDateParam'
- $ref: '#/components/parameters/limitParam'
- $ref: '#/components/parameters/marketParam'
responses:
'200':
description: The overall request was successful. Individual symbols and patterns will each have their own status codes.
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta'
data:
type: array
items:
$ref: '#/components/schemas/ForwardCurve'
5XX:
description: An internal server error has occurred. Sending the error response to support will help with troubleshooting.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Meta:
type: object
properties:
timestamp:
type: string
format: date-time
count:
type: number
description: Number of symbols returned by request
dataSrc:
type: string
description: A value used by DTN support for troublshooting any issues
duration:
type: string
description: The duration of time DTN servers spent processing the request. Does not include internet transit time.
userId:
type: string
description: The user that made the request.
operation:
type: string
description: The name of the operation called
pageToken:
type: string
description: A page token returned from a previous request. It is used to resume a request that matched more symbols than the Limit allowed in one request.
TickHistory:
type: object
properties:
description:
type: string
description: Detailed description for symbol.
examples:
- CORN September 2018
historicPrices:
type: array
description: List of the historic prices based on the query param limitations
items:
$ref: '#/components/schemas/TickHistoricPrice'
marketName:
type: string
description: Market symbol belongs too.
examples:
- CBOT
symbol:
type: string
description: The symbol requested.
examples:
- '@C@1'
tickerSymbol:
type: string
description: The official current ticker symbol.
examples:
- '@CU18'
vendor:
type: string
description: Vendor for symbol.
examples:
- DTN
description: A simple object to contain the list of historic prices.
BarHistoricPrice:
required:
- close
- high
- low
- open
- startDateTime
- volume
type: object
properties:
oi:
type:
- integer
- 'null'
format: int32
open:
$ref: '#/components/schemas/NullablePrice'
close:
$ref: '#/components/schemas/NullablePrice'
low:
$ref: '#/components/schemas/NullablePrice'
startDateTime:
type: string
description: The date for the related values.
format: date-time
high:
$ref: '#/components/schemas/NullablePrice'
volume:
type:
- number
- 'null'
description: Volume.
examples:
- 1010
description: Price information for a particular time interval.
MinuteHistory:
type: object
properties:
description:
type: string
description: Detailed description for symbol.
examples:
- CORN September 2018
historicPrices:
type: array
description: List of the historic prices based on the query param limitations
items:
$ref: '#/components/schemas/BarHistoricPrice'
marketName:
type: string
description: Market symbol belongs too.
examples:
- CBOT
symbol:
type: string
description: The symbol requested.
examples:
- '@C@1'
tickerSymbol:
type: string
description: The official current ticker symbol.
examples:
- '@CU18'
vendor:
type: string
description: Vendor for symbol.
examples:
- DTN
description: A simple object to contain the list of historic prices.
ForwardCurve:
type: object
required:
- description
- marketName
- vendor
- year
- month
- expiration
- tickerSymbol
- dailyPriceBar
properties:
description:
type: string
description: Description of root.
examples:
- CORN
marketName:
type: string
description: Market symbol belongs too.
examples:
- CBOT
vendor:
type: string
description: Vendor for symbol.
examples:
- DTN
year:
type: number
description: The year this contract expires.
month:
type: string
description: The month this contract expires.
expiration:
type: string
format: date
description: The date this contract expires.
tickerSymbol:
type: string
description: The symbol for this contract.
dailyPriceBar:
$ref: '#/components/schemas/BarHistoricPrice'
description: The daily price bar for this contract
description: A simple object to contain the list of historic prices.
TickHistoricPrice:
required:
- price
- volume
- bate
- tickDateTime
type: object
properties:
price:
$ref: '#/components/schemas/NullablePrice'
tickDateTime:
type: string
description: The datetime the tick occured.
format: date-time
bate:
type: string
description: A field used by tick history to indicate if the tick was a Trade (T), a Bid (B), or an Ask (A).
enum:
- T
- B
- A
examples:
- T
volume:
type:
- number
- 'null'
description: Volume.
examples:
- 1010
description: Information from a single trade.
DailyHistory:
type: object
properties:
description:
type: string
description: Detailed description for symbol.
examples:
- CORN September 2018
historicPrices:
type: array
description: List of the historic prices based on the query param limitations
items:
$ref: '#/components/schemas/BarHistoricPrice'
marketName:
type: string
description: Market symbol belongs too.
examples:
- CBOT
symbol:
type: string
description: The symbol requested.
examples:
- '@C@1'
tickerSymbol:
type: string
description: The official current ticker symbol.
examples:
- '@CU18'
vendor:
type: string
description: Vendor for symbol.
examples:
- DTN
description: A simple object to contain the list of historic prices.
Error:
type: object
properties:
meta:
type: object
properties:
type:
type: string
description: A more detailed or finer grained type declaration. In some cases could be a 'class' to assist with automated Exception throwing.
eventId:
type: string
description: A UUID that represents this unique request. This can be used to help troubleshoot errors.
dateTime:
type: string
format: date-time
description: Repeat of optional dateTime from the messages section.
messages:
type: array
items:
type: object
properties:
type:
type: string
description: The error type. These can vary and have a general definition of the potential problem. Some potential values are ERROR, NotFound, InvalidParameters, NotAuthorized.
examples:
- NotAuthorized
id:
type: string
description: An identifier for the error. This can represent a unique identifier for the error that occurred, but in many cases a unique number does not exist and it might simply be a 500. Some API's will make better use of this value and it will be used to help track down particular problems.
examples:
- '401'
status:
type: integer
format: int32
description: Deprecated - this represents the HTTP Status code, but should not be used or relied upon. Future version will remove this.
examples:
- 401
message:
type: string
description: A concise description for the error. In some cases the description may provide means to resolve the problem.
examples:
- Unauthorized access to service.
NullablePrice:
type:
- 'null'
- string
description: Prices are represented as strings to prevent float rounding problems
examples:
- '123.25'
parameters:
dailyLimitParam:
name: limit
in: query
description: The maximum number of rows of history to return per symbol. The maximum number of points for a single symbol in one request is 3,660. For requests that match multiple symbols, a per symbol limit will be set so that one entire request doesn't return more than 1,020,000 data points.
schema:
type: integer
default: 260
maximum: 3660
limitParam:
name: limit
in: query
description: The maximum number of symbols to return.
schema:
type: integer
default: 200
maximum: 4998
symbolParam:
name: symbol
in: query
description: 'A comma separated list of security symbols, security aliases, or search patterns. Information about search patterns can be found here: [https://pxweb.dtn.com/PXWebDoc/pages/SearchPatterns.aspx](https://pxweb.dtn.com/PXWebDoc/pages/SearchPatterns.aspx) Keyword based symbol search can be done with the /market_data/symbol-search endpoint. Or symbols can be searched for manually here: [https://ws1.dtn.com/PX/Search/](https://ws1.dtn.com/PX/Search/)
'
required: true
examples:
corn:
summary: CBOT Corn Front Month Alias
value: '@C@1'
oil:
summary: NYMEX Crude Oil Front Month Alias
value: QCL@1
msft:
summary: Microsoft stock
value: MSFT
countyAverage:
summary: CORN/YELLOW, County Average Spot Cash Price, Pipestone, MN
value: CORN$.MN.F27117
schema:
type: string
startTimeParam:
name: startTime
in: query
description: Earliest datetime to include in the result. Datetime in ISO 8601 format YYYY-MM-DDTHH:MM:SS
schema:
type: string
format: datetime
endDateParam:
name: endDate
in: query
description: The latest date to include in the result. Date in ISO 8601 format YYYY-MM-DD
schema:
type: string
format: date
minuteLimitParam:
name: limit
in: query
description: The maximum number of rows of history to return per symbol. The maximum number of points for a single symbol in one request is 100,000. For requests that match multiple symbols, a per symbol limit will be set so that one entire request doesn't return more than 1,020,000 data points.
schema:
type: integer
default: 1440
maximum: 100000
startDateParam:
name: startDate
in: query
description: Earliest date to include in the result. Date in ISO 8601 format YYYY-MM-DD
schema:
type: string
format: date
symbolLimitParam:
name: symbolLimit
in: query
description: The number of symbols to return in one request up to a maximum of 4000.
schema:
type: integer
default: 600
maximum: 4000
pageTokenParam:
name: pageToken
in: query
description: "A page token returned from a previous request. It is used to resume a request that \n matched more symbols than the SymbolLimit allowed in one request. More information on how to \n make requests for many symbols can be found here: [https://pxweb.dtn.com/PXWebDoc/pages/ManySymbols.aspx](https://pxweb.dtn.com/PXWebDoc/pages/ManySymbols.aspx)\n"
schema:
type: string
marketParam:
name: market
in: query
description: 'A market identifier to apply to all symbols and patterns in the request. A list of markets can be found here: [https://pxweb.dtn.com/PXWebDoc/pages/Markets.aspx](https://pxweb.dtn.com/PXWebDoc/pages/Markets.aspx)
'
schema:
type: string
curveDateParam:
name: curveDate
in: query
description: The date to return prices for when requesting a forward curve. Leave blank for most recent history.
schema:
type: string
format: date
intervalParam:
name: inteval
in: query
description: The number of bars to combine together into one bar.
required: false
schema:
type: integer
default: 1
endTimeParam:
name: endTime
in: query
description: The latest datetime to include in the result. Datetime in ISO 8601 format YYYY-MM-DDTHH:MM:SS
schema:
type: string
format: datetime
rootParam:
name: root
in: query
description: A single futures root. A futures root is the part of a symbol that does not change with expiration.
required: true
examples:
corn:
summary: CBOT Corn root
value: '@C'
oil:
summary: NYMEX Crude Oil root
value: QCL
schema:
type: string
filterParam:
name: filter
in: query
description: Specify 0 to return Trades, Bids, and Asks, or speicfy 1 to just return Trades.
schema:
type: number
enum:
- 0
- 1
default: 1
tickLimitParam:
name: limit
in: query
description: The maximum number of rows of history to return per symbol. The maximum number of points for a single symbol in one request is 50,000. For requests that match multiple symbols, a per symbol limit will be set so that one entire request doesn't return more than 1,020,000 data points.
schema:
type: integer
default: 1000
maximum: 50000
securitySchemes:
clientCredentials:
type: oauth2
x-receive-token-in: request-body
flows:
clientCredentials:
tokenUrl: https://api.auth.dtn.com/v1/tokens/authorize
description: "# Using DAIS for M2M/API Auth\nYou have been given a Client ID and a Client Secret, which are used to request a DTN Access Token. DTN Access Tokens are required when making calls to each and every DTN API endpoint. The following information provides additional details on these tokens and how they are generated.\n## What is an Access Token and how is it different from an API Key?\nAn API Key is a random string of characters that an API uses to authorize whether or not a calling client has approved access to an endpoint. These keys are a non-standard approach to API authorization and are generally issued on a per-API basis.\n\nAn Access Token is also a string of characters but is a base-64 encoded JavaScript Object Notation Web Token, or JWT. JWTs are a widely accepted standard that use OAuth concepts and approaches. \n\nBoth API Keys and Access Tokens are used in an Authorization Request Header as a Bearer, meaning there is no difference in where you put this string of characters when you make calls to DTN APIs.\n## How to generate an Access Token?\nWhen requested, an Access Token is generated for your specific Client (ID/Secret) and for a specific API. The DTN Auth and Identity Service (DAIS) generates new Access Tokens for your client. The DAIS endpoint is `POST https://api.auth.dtn.com/v1/tokens/authorize`.\n\nThis endpoint takes two Header parameters:\n * `Content-Type: application/json`\n * `Accept: application/json`\n\nThis endpoint takes four parameters in the Request Body:\n * `grant_type`: this should always be client_credentials for generating machine-to-machine tokens.\n * `client_id`: this is the Client ID or Application ID using the token and is given to you by DTN's Identity Team. This ID will never change for your client/application.\n * `client_secret`: this is the Client Secret that is associated with the Application ID and is given to you by DTN's Identity Team. This key is subject to rotation for security purposes but always with the client's knowledge.\n * `audience`: this is the API for which this Access Token will be used. For the DTN Market Data, you need to use the following audience: https://pxweb.dtn.com\n\nYou can use this CURL command template as a reference for obtaining an access token:\n ```\n curl --location --request POST 'https://api.auth.dtn.com/v1/tokens/authorize' \\\n--header 'Accept: application/json' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n\"grant_type\": \"client_credentials\",\n\"client_id\": \"insert your client id here\",\n\"client_secret\": \"insert your client secret here\",\n\"audience\": \"insert your audience here\"\n}' \n ```\n\n*This document, for demonstration purposes, supplies a client_id and client_secret in all code examples. This client/application is for a fictitious API and cannot be used in practice to gain unauthorized access to any other DTN API.*\nUpon generating a new Access Token, you should receive an HTTP Response from DAIS similar to this:\n ```\n {\n \"data\": {\n \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InpfX21pZW13NGhoTmdvQWQxR3N6ciJ9.eyJodHRwczovL2F1dGguZHRuLmNvbS9jdXN0b21lcklkIjoiMTIzNDU2Nzg5MERlbW8iLCJodHRwczovL2F1dGguZHRuLmNvbS9wcm9kdWN0Q29kZSI6IkRlbW9BcGlQIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcmVxdWVzdGVySXAiOiIxOC4yMTMuMTc0LjI3IiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcnBzIjoiMTAwIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vdGllciI6IkJhc2ljIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcXVvdGEiOiI5OTk5OTkiLCJpc3MiOiJodHRwczovL2lkLmF1dGguZHRuLmNvbS8iLCJzdWIiOiJuZnlPM0tpS1BSOE4wREtSNUNMOGpTOUdGQkNEZXlGTUBjbGllbnRzIiwiYXVkIjoiaHR0cHM6Ly9kZW1vLWFwaS5hdXRoLmR0bi5jb20vIiwiaWF0IjoxNjU2MDk5MDY4LCJleHAiOjE2NTYwOTkxNTgsImF6cCI6Im5meU8zS2lLUFI4TjBES1I1Q0w4alM5R0ZCQ0RleUZNIiwic2NvcGUiOiJyZWFkOmRlbW8gY3JlYXRlOmRlbW8gdXBkYXRlOmRlbW8iLCJndHkiOiJjbGllbnQtY3JlZGVudGlhbHMiLCJwZXJtaXNzaW9ucyI6WyJyZWFkOmRlbW8iLCJjcmVhdGU6ZGVtbyIsInVwZGF0ZTpkZW1vIl19.0VHdyp1w9PPFVI0FPheAwuKZwb5C25rwP-LPMXcSNoRmouvga1DZtNLA67ZzE_sAlc_VpaDRr6daLKr_Alw4347mw9sdjP8wKR27kCZa9JZK5PGQMmXHscATbzBEJYpCPklfyGaajgymqTBGnedcv8F0UvlRzQPsFeRPnVoX7BWOSXpMbyToGiXWkQLBQT7r96KAmLZOPJFZspPtjw-wH2mSL2WNa_nkB4j5vMGhGxlKiNRsKb30TH_WAel2hsxNlcPK3XHCmrMTYsNnu7HNqOTMn2i0__0rvBrhSWEw-_grqQDmWFJuWd7Qhi1q81AaJcdqgoSa_efz93QFclJUNw\",\n \"scope\": \"read:demo create:demo update:demo\",\n \"expires_in\": 90,\n \"token_type\": \"Bearer\"\n },\n \"meta\": {\n \"date_time\": \"2022-06-24T19:09:42.963Z\",\n \"name\": \"v1.tokens.authorize\",\n \"uuid\": \"ee6f9feb-dcf8-4421-a6fd-efd6beabdaa9\",\n \"start_timestamp\": 1656097782509,\n \"end_timestamp\": 1656097782963,\n \"execution_time\": 454\n }\n }\n ```\nLooking at this Response, you will see:\n * `access_token`: contains the JWT Access Token string you will use as your Bearer token.\n * `scope`: contains the scopes that this Access Token gives you permissions to access.\n * `expires_in`: contains the length of time before this Access Token will expire, in seconds.\n * `token_type`: verifies that this Access Token should be used as a Bearer token.\n\n## How to use an Access Token after one is generated?\nOnce a new Access Token is obtained, it is used in each call to a DTN API endpoint as a Bearer token in an Authorization Request Header. For example:\n ```\n Header: 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InpfX21pZW13NGhoTmdvQWQxR3N6ciJ9.eyJodHRwczovL2F1dGguZHRuLmNvbS9jdXN0b21lcklkIjoiMTIzNDU2Nzg5MERlbW8iLCJodHRwczovL2F1dGguZHRuLmNvbS9wcm9kdWN0Q29kZSI6IkRlbW9BcGlQIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcmVxdWVzdGVySXAiOiIxOC4yMTMuMTc0LjI3IiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcnBzIjoiMTAwIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vdGllciI6IkJhc2ljIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcXVvdGEiOiI5OTk5OTkiLCJpc3MiOiJodHRwczovL2lkLmF1dGguZHRuLmNvbS8iLCJzdWIiOiJuZnlPM0tpS1BSOE4wREtSNUNMOGpTOUdGQkNEZXlGTUBjbGllbnRzIiwiYXVkIjoiaHR0cHM6Ly9kZW1vLWFwaS5hdXRoLmR0bi5jb20vIiwiaWF0IjoxNjU2MDk5MDY4LCJleHAiOjE2NTYwOTkxNTgsImF6cCI6Im5meU8zS2lLUFI4TjBES1I1Q0w4alM5R0ZCQ0RleUZNIiwic2NvcGUiOiJyZWFkOmRlbW8gY3JlYXRlOmRlbW8gdXBkYXRlOmRlbW8iLCJndHkiOiJjbGllbnQtY3JlZGVudGlhbHMiLCJwZXJtaXNzaW9ucyI6WyJyZWFkOmRlbW8iLCJjcmVhdGU6ZGVtbyIsInVwZGF0ZTpkZW1vIl19.0VHdyp1w9PPFVI0FPheAwuKZwb5C25rwP-LPMXcSNoRmouvga1DZtNLA67ZzE_sAlc_VpaDRr6daLKr_Alw4347mw9sdjP8wKR27kCZa9JZK5PGQMmXHscATbzBEJYpCPklfyGaajgymqTBGnedcv8F0UvlRzQPsFeRPnVoX7BWOSXpMbyToGiXWkQLBQT7r96KAmLZOPJFZspPtjw-wH2mSL2WNa_nkB4j5vMGhGxlKiNRsKb30TH_WAel2hsxNlcPK3XHCmrMTYsNnu7HNqOTMn2i0__0rvBrhSWEw-_grqQDmWFJuWd7Qhi1q81AaJcdqgoSa_efz93QFclJUNw'\n ```\n\n## Deconstructing the Access Token\nA DTN Access Token carries information within its JWT Body that is available on every API call. By deconstructing the JWT token, our Access Tokens will resemble:\n ```\n {\n \"https://auth.dtn.com/customerId\": \"1234567890Demo\",\n \"https://auth.dtn.com/productCode\": \"DemoApiP\",\n \"https://auth.dtn.com/requesterIp\": \"18.213.174.27\",\n \"https://auth.dtn.com/rps\": \"100\",\n \"https://auth.dtn.com/tier\": \"Basic\",\n \"https://auth.dtn.com/quota\": \"999999\",\n \"iss\": \"https://id.auth.dtn.com/\",\n \"sub\": \"nfyO3KiKPR8N0DKR5CL8jS9GFBCDeyFM@clients\",\n \"aud\": \"https://demo-api.auth.dtn.com/\",\n \"iat\": 1656099068,\n \"exp\": 1656099158,\n \"azp\": \"nfyO3KiKPR8N0DKR5CL8jS9GFBCDeyFM\",\n \"scope\": \"read:demo create:demo update:demo\",\n \"gty\": \"client-credentials\",\n \"permissions\": [\n \"read:demo\",\n \"create:demo\",\n \"update:demo\"\n ]\n }\n ```\n### Description of Claims\n\n | Claim | Type | Description |\n | -----------------------------------| --------------------------------------------| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n | `https://auth.dtn.com/customerId` | String | Custom DTN claim containing the Customer ID found in the DTN Order Management/Salesforce system associated with this token. |\n | `https://auth.dtn.com/productCode` | String | Custom DTN claim containing the Identity product code associated with this token. |\n | `https://auth.dtn.com/requesterIp` | String | Custom DTN claim containing the IP address of the requesting client. |\n | `https://auth.dtn.com/rps` | String | Custom DTN claim containing the maximum rate per second this customer is authorized to utilize. |\n | `https://auth.dtn.com/tier` | String | Custom DTN claim containing the data tier the customer purchased for the requested access. |\n | `https://auth.dtn.com/quota` | String | Custom DTN claim containing the maximum yearly quota t
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dtn/refs/heads/main/openapi/dtn-history-api-openapi.yml