Goldmine
Contract Evaluation

Report how much of a predicate's matched catalog the valuation can price

POST
/analytics.v1.Analytics/GetContractCoverage

Runs a contract's predicate against the catalog exactly as EvaluateContract does, but reports every matched item instead of only the ones the valuation could price. Returns the count of matched items, how many of those the valuation prices, how many it does not, and a capped sample of the unpriced item names. Use this to show a member which of their predicate's matches have no usable market price before they activate the contract.

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/GetContractCoverage" \  -H "Content-Type: application/json" \  -d '{    "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"                  ]                }              }            }          }        ]      }    },    "valuation": {      "references": [        {          "source": "market-csgo",          "metric": "listing-price",          "adjustment": -0.05        }      ],      "strategy": "VALUATION_STRATEGY_MIN"    },    "sampleLimit": 100  }'
{
  "matchedCount": 200,
  "pricedCount": 160,
  "unpricedCount": 40,
  "unpricedMarketHashNames": [
    "AK-47 | Bloodsport (Battle-Scarred)",
    "AK-47 | Vulcan (Battle-Scarred)"
  ]
}
{
  "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."
}