CME Account Management Service API
CME Account Management Service API 1.x provides API access to Account Management Services for CME Direct (CME Globex), CME ClearPort, and Inline Credit Controls (ICC) accounts.
Through simple calls the client of the API can retrieve all registered accounts and account details, including: permitted products, eligible brokers, and position limits & utilization. Clients can also update existing account information via the API.
AMS API is a RESTful JSON service with HATEOAS (hypermedia as the engine of application state). HATEOAS allows for hypermedia links to be returned within the payload from the API so the client can dynamically navigate to the next appropriate resource.
CME Direct and ClearPort Access Flow and Inline Credit Controls (ICC) Access Flow show available functions visually.
Specifications
This page includes the following topics:
Getting Started
Contact Global Account Managers - Customer Service for onboarding and certification information for CME Account Management Services API.
Certification for the API is required.
Hours of Availability
The CME Account Management Services API will have continuous availability, with the exception of the scheduled maintenance window from Friday 6:00 PM CT through Sunday 12:00 PM CT.
CME Group Production support is available through the Global Command Center on the normal schedule for testing and production.
CME Group New Release and Certification Support is available through Certification Support for Electronic Trading (CSET).
Success or Failure Scenario
Expected results for query / post success or failure.
Action | Successful | Bad Requests like a bad JSON format Request body | Invalid data in Request Body |
---|---|---|---|
GET, POST | GET - Result set returned POST - Updated data is returned When using the delete attribute, the resulting data set is returned after the delete. | Sample Error Message { | Sample Error Message
|
HATEOAS Description
HATEOAS (hypermedia as the engine of application state) – The client of the API can interact with the application as it provides information dynamically through hypermedia. In this case, the client doesn’t need to know about how to interact with the API beyond using the hypermedia provided in the payload returned from the API. The client will initially start by requesting _/myFirms at which point every subsequent potential call will be known through the hypermedia provided.
These links will be at the bottom of applicable calls, in the "links" section. For example:
"links": [
{
"rel": "Retrieve CMED Accounts",
"href": "_/v#/accounts/clearing/CMED/GREENTEA_API_CLEARING2"
},
{
"rel": "Retrieve CPC Accounts",
"href": "_/v#/accounts/clearing/CPC/GREENTEA_API_CLEARING2"
},
{
"rel": "Retrieve ICC Accounts",
"href": "_/v#/accounts/clearing/ICC/GREENTEA_API_CLEARING2"
}
]
Pagination Links
Use to navigate between the returned pages. Limit can be configured as part of the call.
Example:
_/v#/brokerPermissions /[Type]/[Service]/[Clearing Firm]/[Account Number]?limit=60
Name | Example | definition |
---|---|---|
limit | limit=50 | Number of records per page. The default limit is 50. |
offset | offset=2 | Current page number of a result set. |
availableOffsets | availableOffsets=4 | Total number of pages. |
Health Check
A health check to test the status of the environment can be run at any time using:
_/v#/health
Expected result:
{
"payload": [
{
"status": "HEALTHY",
"lastUpdateTime": "2019-08-13T18:41:11.505Z"
}
]
}
POST Call Examples
POST calls to CME Account Management Service API allow specific information to be copied, updated or deleted.
POST calls require a body that contains the update information. A request call can be used to retrieve related information, and then the return can be modified and used as the body for the POST call.
Example call and return for an update
This example shows an update to the limits utilization for a product. The same steps (GET call to retrieve current information, modify the retrieved content for the POST update, perform the POST call) can be used for all POST calls.
The example does not include HATEOAS links.
1) GET Call: _/v#/accountLimitsUtilization/[Type]/[Service]/[Clearing Firm]/[Account Number]
Return from call:
("service": "CPC",
"clearingFirm": "GREENTEA_API_CLEARING2",
"accountNumber": "DV101218B",
"limits": [
{
"type": "Span Limit",
"currency": "USD",
"limit": 8888888,
"usage": 0
},
{
"type": "Max Qty Long",
"scope": "PRODUCT",
"product": "71.OOF.CBT",
"productFullName": "Cleared OTC Ethanol Option on Forward Month Swaps",
"limit": 300,
"usage": 0
}
]
}
2) Utilize the return as the body for the Post call. For example, for product "71.OOF.CBT", update:
"limit": 300 to:
"limit": 500
The entire return is not required:
Example Post Body:
3) POST Call: Use the same URL as in (1), and use the modified request as the POST body, in JSON format.
Return from post call should include all information:
Example call and return for deleting records
Record information can be deleted using the POST call by appending "?delete=true" to the end of a POST call. This will delete the specified information from the record(s).
1) GET Call: /amsapi/rest/v#/accountLimitsUtilization/clearing/CPC/9999999/TESTGREEN1
Return from call:
2) Utilize the return as the body for the Post call. For example, delete the Span Limit.
Example Post Body:
3) POST Call: Use the same URL as in (1), and add: "?delete= true": /amsapi/rest/v#/accountLimitsUtilization/clearing/CPC/9999999/TESTGREEN1?delete=true. Use the modified request as the POST body, in JSON format.
Return from POST call should include all information:
CME Direct and CME ClearPort Access Flow
Inline Credit Controls Access Flow
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.