PROS Performance Quoting - Domains API (1.2.2)
Download OpenAPI specification:Download
The Domains API provides various operations to validate, check and store a domain.
- Clients consuming this API, or servers implementing this API, must assume that JSON objects are open for extension. Client and Server must not reject new fields that are not part of the Open API contract. This is consistent with the OpenAPI 2.0 specification that is based on the JSON schema specification: Open API object definitions are considered open for extension by default, an additionalProperties directive is not required to make an object definition extensible. OpenAPI specification: https://swagger.io/specification/v2/
- When using any public API (even polling ones):
- One may be aware of the different "Governor Limits" of the product and API: See https://connect.pros.com/products/pros-smart-cpq/help-topics/ section "General" link "Governor Limits" for details.
- As a general rule, to cope with transient slowdowns, we recommend using a socket read timeout of at least:
- 3 minutes in general
- 1 minute in the particular case of an Azure Function customization called by the quote
- One should ensure that his/her code handles "Too many requests" 429 and "Service unavailable" 503 http errors due to "rate limiting" governor limits or transient errors.
- One should use the Retry-After response header when received.
- When this response header is not received, there must be a minimal waiting time of 0.5 sec before any retry. The recommended approach is to use the following exponential backoff retry logic: 0.5 sec before first retry then 1-2-4-8-etc. sec between subsequent calls.
As the Smart CPQ API evolves, APIs are periodically reorganized or upgraded. Wherever possible, APIs are updated so that they are compatible with earlier versions (according to the OpenAPI standard).
When the changes don’t allow a backward compatibility and the old API can't be supported indefinitely, the old API is deprecated and guidance is provided to help replace the deprecated API.
The deprecation period is 12 months. During this time, the deprecated API will be supported. The first major version following the 12 month deprecation period will be the end of life: the deprecated API will be removed and no longer supported.
No additional delay can and will be granted. Please read here ( https://connect.pros.com/products/smart-configure-price-quote/guides/developer-guide/138511) ** for more details, including how to get deprecation notification.
Initialize a session
Initializes a session and returns a session identifier which is required for any further call to the Quote API.
Authorizations:
header Parameters
X-quotex-environment | string Deprecated: Environment identifier. This parameter is deprecated and the environment will be automatically retrieved. If used the provided environment value will be checked against the the environment value automatically found. This header should NOT be used to pass AppPortal environment value. |
X-quotex-userId | string The user identifier -> Optional user email. It will replace the authenticated usedId for certain roles if provided. |
X-quotex-customer-correlation-context | string Use this optional header to pass external context information. |
Request-Id | string Use this optional header to correlate many calls to the public API for the same external operation. Must be a UUID without "-" caracters. |
X-quotex-system-mode | boolean Use this optional header to run the API in system mode. ARMs are by-passed during the request processing when this option is enabled. (Note : API_SUPER_USER role is required to enable this option) |
Responses
Response samples
- 200
- default
{- "sessionId": "string"
}
upload a domain file
This operation uploads a domain file and stores it to be activated later
Authorizations:
path Parameters
domainName required | string The name of the domain |
header Parameters
X-quotex-sessionId required | string Session identifier. Call initDomainSession API to get a session Id |
X-quotex-environment | string Deprecated: Environment identifier. This parameter is deprecated and the environment will be automatically retrieved. If used the provided environment value will be checked against the the environment value automatically found. This header should NOT be used to pass AppPortal environment value. |
X-quotex-userId | string The user identifier -> Optional user email. It will replace the authenticated usedId for certain roles if provided. |
Request-Id | string Use this optional header to correlate many calls to the public API for the same external operation. Must be a UUID without "-" caracters. |
X-quotex-system-mode | boolean Use this optional header to run the API in system mode. ARMs are by-passed during the request processing when this option is enabled. (Note : API_SUPER_USER role is required to enable this option) |
Request Body schema: multipart/form-data
importFile required | string <binary> File to import must be plain JSON and have format like DomainsFileFormat defined in model part of this view. The file can also be a ZIP containing one JSON file as described. |
Responses
Response samples
- 200
- default
{- "domainName": "string",
- "domainFileIdentifier": "string"
}
Activate domain files
This operation activates all given domain files.
Authorizations:
header Parameters
X-quotex-sessionId required | string Session identifier. Call initDomainSession API to get a session Id |
X-quotex-environment | string Deprecated: Environment identifier. This parameter is deprecated and the environment will be automatically retrieved. If used the provided environment value will be checked against the the environment value automatically found. This header should NOT be used to pass AppPortal environment value. |
X-quotex-userId | string The user identifier -> Optional user email. It will replace the authenticated usedId for certain roles if provided. |
Request-Id | string Use this optional header to correlate many calls to the public API for the same external operation. Must be a UUID without "-" caracters. |
X-quotex-system-mode | boolean Use this optional header to run the API in system mode. ARMs are by-passed during the request processing when this option is enabled. (Note : API_SUPER_USER role is required to enable this option) |
Request Body schema: application/json
domainName | string |
domainFileIdentifier | string |
Responses
Request samples
- Payload
[- {
- "domainName": "string",
- "domainFileIdentifier": "string"
}
]
Response samples
- 200
- default
[- {
- "domainName": "string",
- "revision": 0,
- "status": "INACTIVE"
}
]
upload and activate a domain file
This operation upload a domain file and activate it to current environment.
Authorizations:
path Parameters
domainName required | string The name of the domain |
header Parameters
X-quotex-sessionId required | string Session identifier. Call initDomainSession API to get a session Id |
X-quotex-environment | string Deprecated: Environment identifier. This parameter is deprecated and the environment will be automatically retrieved. If used the provided environment value will be checked against the the environment value automatically found. This header should NOT be used to pass AppPortal environment value. |
X-quotex-userId | string The user identifier -> Optional user email. It will replace the authenticated usedId for certain roles if provided. |
Request-Id | string Use this optional header to correlate many calls to the public API for the same external operation. Must be a UUID without "-" caracters. |
X-quotex-system-mode | boolean Use this optional header to run the API in system mode. ARMs are by-passed during the request processing when this option is enabled. (Note : API_SUPER_USER role is required to enable this option) |
Request Body schema: multipart/form-data
importFile required | string <binary> File to import must be plain JSON and have format like DomainsFileFormat defined in model part of this view. The file can also be a ZIP containing one JSON file as described. |
Responses
Response samples
- 200
- default
{- "domainName": "string",
- "revision": 0,
- "status": "INACTIVE"
}
Export a domain file
This operation exports a domain JSON file with the provided domain name. By default it will export the lastest active domain file revision. A query parameter is available to get a specific domain file revision
Authorizations:
path Parameters
domainName required | string The name of the domain |
query Parameters
revision | integer The domain file revision to export. Lastest active revision is exported if not provided. |
header Parameters
X-quotex-sessionId required | string Session identifier. Call initDomainSession API to get a session Id |
X-quotex-environment | string Deprecated: Environment identifier. This parameter is deprecated and the environment will be automatically retrieved. If used the provided environment value will be checked against the the environment value automatically found. This header should NOT be used to pass AppPortal environment value. |
X-quotex-userId | string The user identifier -> Optional user email. It will replace the authenticated usedId for certain roles if provided. |
Request-Id | string Use this optional header to correlate many calls to the public API for the same external operation. Must be a UUID without "-" caracters. |
X-quotex-system-mode | boolean Use this optional header to run the API in system mode. ARMs are by-passed during the request processing when this option is enabled. (Note : API_SUPER_USER role is required to enable this option) |
Responses
Response samples
- 200
- default
"string"
get list of available domain versions
This operation get the list of all revisions for the given domain.
Authorizations:
path Parameters
domainName required | string The name of the domain |
header Parameters
X-quotex-sessionId required | string Session identifier. Call initDomainSession API to get a session Id |
X-quotex-environment | string Deprecated: Environment identifier. This parameter is deprecated and the environment will be automatically retrieved. If used the provided environment value will be checked against the the environment value automatically found. This header should NOT be used to pass AppPortal environment value. |
X-quotex-userId | string The user identifier -> Optional user email. It will replace the authenticated usedId for certain roles if provided. |
Request-Id | string Use this optional header to correlate many calls to the public API for the same external operation. Must be a UUID without "-" caracters. |
X-quotex-system-mode | boolean Use this optional header to run the API in system mode. ARMs are by-passed during the request processing when this option is enabled. (Note : API_SUPER_USER role is required to enable this option) |
Responses
Response samples
- 200
- default
[- {
- "domainName": "string",
- "revision": 0,
- "status": "INACTIVE"
}
]
Store a data provider configuration
This operation stores the data provider configuration, takes a json file as input
Authorizations:
header Parameters
X-quotex-sessionId required | string Session identifier. Call initDomainSession API to get a session Id |
X-quotex-environment | string Deprecated: Environment identifier. This parameter is deprecated and the environment will be automatically retrieved. If used the provided environment value will be checked against the the environment value automatically found. This header should NOT be used to pass AppPortal environment value. |
X-quotex-userId | string The user identifier -> Optional user email. It will replace the authenticated usedId for certain roles if provided. |
Request-Id | string Use this optional header to correlate many calls to the public API for the same external operation. Must be a UUID without "-" caracters. |
X-quotex-system-mode | boolean Use this optional header to run the API in system mode. ARMs are by-passed during the request processing when this option is enabled. (Note : API_SUPER_USER role is required to enable this option) |
Request Body schema: multipart/form-data
modelFile required | string <binary> Data provider conf to store must be a json file |
Responses
Request samples
- JavaScript
// Example of JSON expected into modelFile { "name" : "LegacyCatalogHTK", "properties" : { "@class" : "com.pros.quotex.interfaces.publicapi.dataprovider.design.CatalogDefinitionPropertiesPublic", "contextDataProviders" : [ ], "sessionSettings" : { "CPE.Settings.Session.ModelVersion" : "WORKING", "CPE.Settings.Session.rootCL" : "wksHiTech/CL/catHiTech", "CPE.Settings.Session.SalesMethodName" : "smDefault", "CPE.Settings.Session.PricingMethod[1]" : "PRGM/pmDefault", "CPE.Settings.Session.SavingPolicy" : "Full", "CPE.Settings.Session.AllowIncompleteSave" : "true", "CPE.Settings.Session.Currency" : "USD", "CPE.Settings.Session.DefaultLanguage" : "en", "CPE.Settings.Session.DefaultCountry" : "US", "CPE.Settings.Session.TimeZone" : "GMT", "CPE.Settings.Session.IntegerFormat" : "#,##0", "CPE.Settings.Session.NumericFormat" : "#,##0.###", "CPE.Settings.Session.CurrencySymbol" : "$", "CPE.Settings.Session.MonetaryFormat" : "¤ #,##0.00;(¤#,##0.00)", "CPE.Settings.Session.ShortDateFormat" : "MM/dd/yyyy", "CPE.Settings.Session.LongDateFormat" : "YYYY_MM_dd DDD HH#mm#ss.s" }, "serverName" : "Legacy", "fullText" : false, "standardSearchParameters" : { "operator" : "LIKE", "caseSensitive" : false, "scope" : [ "DESCRIPTION", "NAME", "RMO_TEXT" ], "userType" : null }, "fullTextSearchParameters" : { "searchMode" : "SENTENCE", "scope" : [ "DESCRIPTION", "NAME", "RMO" ] } } }
Response samples
- 200
- default
{- "dataProviderName": "string"
}
Get all domains
This operation return all available domains in their latest revision. By default the API will return only active revisions but this behavior can be changed by setting 'latest' query param to retrieve latest revisions even if they are not active
Authorizations:
query Parameters
latest | boolean if set to true the API will return latest revision for each domain whatever it's status |
header Parameters
X-quotex-sessionId required | string Session identifier. Call initDomainSession API to get a session Id |
X-quotex-environment | string Deprecated: Environment identifier. This parameter is deprecated and the environment will be automatically retrieved. If used the provided environment value will be checked against the the environment value automatically found. This header should NOT be used to pass AppPortal environment value. |
X-quotex-userId | string The user identifier -> Optional user email. It will replace the authenticated usedId for certain roles if provided. |
Request-Id | string Use this optional header to correlate many calls to the public API for the same external operation. Must be a UUID without "-" caracters. |
X-quotex-system-mode | boolean Use this optional header to run the API in system mode. ARMs are by-passed during the request processing when this option is enabled. (Note : API_SUPER_USER role is required to enable this option) |
Responses
Response samples
- 200
- default
[- {
- "domainName": "string",
- "revision": 0,
- "status": "INACTIVE"
}
]
Get domains for given relationVariable
This operation return possible domain values for given domainContext.
[BE CAREFUL] The ascendant compatibility is not warranted, this api could be modified in next versions.
Authorizations:
path Parameters
relationVariableId required | string Domain values for relationVariableId given |
query Parameters
searchCriterion | string Filter domain to values containing the criterion |
onlyAuthorized required | boolean Only authorized values if true, otherwise return all values (forbidden/not_recommended/authorized) |
header Parameters
X-quotex-sessionId required | string Session identifier. Call initDomainSession API to get a session Id |
X-quotex-environment | string Deprecated: Environment identifier. This parameter is deprecated and the environment will be automatically retrieved. If used the provided environment value will be checked against the the environment value automatically found. This header should NOT be used to pass AppPortal environment value. |
X-quotex-userId | string The user identifier -> Optional user email. It will replace the authenticated usedId for certain roles if provided. |
Request-Id | string Use this optional header to correlate many calls to the public API for the same external operation. Must be a UUID without "-" caracters. |
X-quotex-system-mode | boolean Use this optional header to run the API in system mode. ARMs are by-passed during the request processing when this option is enabled. (Note : API_SUPER_USER role is required to enable this option) |
Request Body schema: application/json
DomainContext definition
object (Domain) Domain definition contains the list of relations to include and restricted ranges if any. | |
Array of objects (Assignments) List of existing valuation | |
object (DomainDataProviderContext) BETA - DataProvider context allows to configure the dataProvider and settings to use. (This definition may change in the future) |
Responses
Request samples
- Payload
{- "domain": {
- "relations": [
- {
- "relationId": "SoldToShipTo"
}
], - "restrictedRanges": [
- {
- "rangeType": "IntentionalDomains",
- "variable": "vShipTo",
- "values": [
- {
- "valueType": "String",
- "value": "ShipTo01"
}, - {
- "valueType": "String",
- "value": "ShipTo02"
}
]
}
]
}, - "assignments": [
- {
- "variableId": "vShipTo",
- "value": {
- "valueType": "String",
- "value": "ShipTo01"
}
}
], - "dataProviderContext": {
- "dataProviderName": "CatalogHTK",
- "contextKeyValues": [
- {
- "dataProviderKey": "CPE.Settings.Session.Locale",
- "dataProviderValue": {
- "queryType": "WHERE",
- "value": {
- "valueType": "Locale",
- "language": "en",
- "country": "US"
}
}
}
]
}
}
Response samples
- 200
- default
{- "domain": [
- {
- "status": "AUTHORIZED",
- "value": {
- "valueType": "Empty"
}
}
], - "homogeneousValueStatus": "AUTHORIZED",
- "sortingCriteria": "KEEP_DOMAIN_DEFINITION_ORDER",
- "open": true,
- "partial": true
}
Check consistency for each domainContext given
This mass operation return domain consistency for each domainContext given.
The list of list representing a grid with rows and cols. Latest revision is always used to check consistency.
[BE CAREFUL] The ascendant compatibility is not warranted, this api could be modified in next versions.
Authorizations:
header Parameters
X-quotex-sessionId required | string Session identifier. Call initDomainSession API to get a session Id |
X-quotex-environment | string Deprecated: Environment identifier. This parameter is deprecated and the environment will be automatically retrieved. If used the provided environment value will be checked against the the environment value automatically found. This header should NOT be used to pass AppPortal environment value. |
X-quotex-userId | string The user identifier -> Optional user email. It will replace the authenticated usedId for certain roles if provided. |
Request-Id | string Use this optional header to correlate many calls to the public API for the same external operation. Must be a UUID without "-" caracters. |
X-quotex-system-mode | boolean Use this optional header to run the API in system mode. ARMs are by-passed during the request processing when this option is enabled. (Note : API_SUPER_USER role is required to enable this option) |
Request Body schema: application/json
List of domainContexts
Array of objects (DomainContext) [ items ] |
Responses
Request samples
- Payload
{- "domainContexts": [
- [
- {
- "domain": {
- "relations": [
- {
- "relationId": "SoldToShipTo"
}
], - "restrictedRanges": [
- {
- "rangeType": "IntentionalDomains",
- "variable": "vShipTo",
- "values": [
- {
- "valueType": "String",
- "value": "ShipTo01"
}, - {
- "valueType": "String",
- "value": "ShipTo02"
}
]
}
]
}, - "assignments": [
- {
- "variableId": "vShipTo",
- "value": {
- "valueType": "String",
- "value": "ShipTo01"
}
}
], - "dataProviderContext": {
- "dataProviderName": "CatalogHTK",
- "contextKeyValues": [
- {
- "dataProviderKey": "CPE.Settings.Session.Locale",
- "dataProviderValue": {
- "queryType": "WHERE",
- "value": {
- "valueType": "Locale",
- "language": "en",
- "country": "US"
}
}
}
]
}
}
]
]
}
Response samples
- 200
- default
{- "domainContexts": [
- [
- true
]
]
}
This is the json to use inside a domain file
operator | string Enum: "EQ" "N_EQ" "LT" "GT" "LE" "GE" "IN" "N_IN" "BETWEEN" "R_BETWEEN" "L_BETWEEN" "S_BETWEEN" "SUBSTRING" "N_SUBSTRING" "N_BETWEEN" |
required | Array of objects (domain column definition) List of column and field domain definitions |
required | Array of objects (domain row) [ items ] List of row formats on a domain file. To be valid a row must ':' |
{- "operator": "EQ",
- "columnDef": [
- {
- "operator": "EQ",
- "var": "string",
- "type": "BIG_DECIMAL"
}
], - "rows": [
- [
- {
- "operator": "EQ",
- "values": [
- { }
]
}
]
]
}