Evaluate a contract against current market data
Runs a contract's predicate and valuation against the latest market data and returns the matching items together with the maximum price to pay for each. Results are paginated through a cursor. Use this to preview what a contract would buy before activating it.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://loading/analytics.v1.Analytics/EvaluateContract" \ -H "Content-Type: application/json" \ -d '{ "contractId": "EBESExQVFhcYGRobHB0eHw==", "predicate": { "group": { "condition": "PREDICATE_CONDITION_AND", "rules": [ { "rule": { "field": "PREDICATE_FIELD_WEAPON", "operator": "PREDICATE_OPERATOR_EQ", "value": { "stringValue": "AK-47" } } }, { "rule": { "field": "PREDICATE_FIELD_RARITY", "operator": "PREDICATE_OPERATOR_IN", "value": { "stringListValue": { "values": [ "Covert", "Classified" ] } } } }, { "rule": { "marketData": { "source": "market-csgo", "metric": "volume" }, "operator": "PREDICATE_OPERATOR_GTE", "value": { "numberValue": 5 } } }, { "rule": { "valueField": "PREDICATE_VALUE_FIELD_COMPUTED_PRICE", "operator": "PREDICATE_OPERATOR_LTE", "value": { "numberValue": 150000 } } } ] } }, "valuation": { "references": [ { "source": "market-csgo", "metric": "listing-price", "adjustment": -0.05 } ], "strategy": "VALUATION_STRATEGY_MIN" }, "limit": 100 }'{
"intents": [
{
"marketHashName": "AK-47 | Redline (Field-Tested)",
"maxBuyPriceCents": "142500",
"referencePrices": [
{
"referenceIndex": 0,
"source": "market-csgo",
"metric": "listing-price",
"valueCents": "150000",
"priceCents": "142500"
}
],
"minFloat": 0.15,
"maxFloat": 0.38
}
],
"nextCursor": "eyJtIjoiQUstNDcgfCBSZWRsaW5lIChGaWVsZC1UZXN0ZWQpIn0="
}{
"code": "invalid_argument",
"message": "The request was malformed, such as a missing required field or an unparseable cursor."
}{
"code": "unauthenticated",
"message": "The request lacks a valid API key in the Authorization header."
}{
"code": "permission_denied",
"message": "The API key is not allowed to perform this action on this workspace."
}{
"code": "resource_exhausted",
"message": "The request was rate limited. Slow down and retry later."
}{
"code": "internal",
"message": "An internal server error occurred."
}RotateWorkspaceKey
Generates a fresh encryption key for the workspace so new sensitive data is protected under the latest key. Returns the previous and new key versions.
GetAvailableMetrics
Returns the set of source and metric combinations that currently have data for a given item, so a caller knows which series it can chart or filter on. An item with no recorded data returns an empty list.