Skip to content
looot docs
Esc
↑↓navigate↵open⌘Jpreview

Compare catalog items

Compares 2 to 20 catalog items you name by id. A price meaning the catalog does not state is left out, never guessed. No bearer token needed: the catalog is the same for every caller.

POST/v1/public-catalog/compare
Request body
requiredapplication/json
catalogItemIdsstring[]required
min items 2 · max items 20
Responses
200

Conservative catalog comparison

itemsPublicCatalogItem[]required
min items 2 · max items 20
Show properties
Array of PublicCatalogItem
catalogItemIdstringrequired
matches ^[a-z][a-z0-9_-]{2,127}$
revisionintegerrequired
min 1 · max 9007199254740991
providerIdstringrequired
matches ^[a-z][a-z0-9_-]{2,127}$
operationIdstringrequired
matches ^[a-z][a-z0-9_-]{2,127}$
titlestringrequired
min length 1 · max length 160
descriptionstringrequired
min length 1 · max length 2000
categoriesstring[]required
min items 1 · max items 30
capabilitiesstring[]required
max items 30
inputSchemaDigeststringrequired
matches ^sha256:[a-f0-9]{64}$
outputSchemaDigeststringrequired
matches ^sha256:[a-f0-9]{64}$
methodstring | nullrequired
Allowed:GETPOSTPUTPATCHDELETEnull
pathTemplatestring | nullrequired
min length 1 · max length 1024
parametersobject[]required
max items 100
Show properties
Array of object
namestringrequired
min length 1 · max length 120
locationanyrequired
Allowed:querypathheaderbody
requiredbooleanrequired
descriptionstring
min length 1 · max length 500
schemaDigeststring
matches ^sha256:[a-f0-9]{64}$
verificationobjectrequired
Show properties
stateanyrequired
Allowed:unverifiedfixture_verifiedauthenticated_verifiedstale
verifiedAtstring<date-time> | nullrequired
responseCaptureobjectrequired
Show properties
availablebooleanrequired
digeststring | nullrequired
matches ^sha256:[a-f0-9]{64}$
referencesobject[]required
max items 20
Show properties
Array of object
kindanyrequired
Allowed:documentationpricing
urlstring<uri>required
max length 2048
pricePublicCatalogPricerequired
Show properties
One of:
object
stateanyrequired
amountMicrosintegerrequired
min 0 · max 9007199254740991
currencystringrequired
matches ^[A-Z]{3}$
unitstringrequired
min length 1 · max length 80
effectiveAtstring<date-time>required
comparisonBasisobject
Show properties
canonicalMeterstringrequired
matches ^[a-z][a-z0-9_-]{2,127}$
billingBasisanyrequired
Allowed:per_callper_resultper_unit
tierstringrequired
min length 1 · max length 80
minimumMicrosintegerrequired
min 0 · max 9007199254740991
roundinganyrequired
Allowed:exactceilfloor
object
stateanyrequired
Allowed:unknownuncomputable
reasonstringrequired
min length 1 · max length 300
publishedAtstring<date-time>required
itemDigeststringrequired
matches ^sha256:[a-f0-9]{64}$
provenanceTieranyrequired
Allowed:officialverified_partnercommunityprivateunverified
priceComparisonobjectrequired
Show properties
One of:
object
stateanyrequired
currencystringrequired
matches ^[A-Z]{3}$
unitstringrequired
min length 1 · max length 80
amountsobject[]required
min items 2 · max items 20
Show properties
Array of object
catalogItemIdstringrequired
matches ^[a-z][a-z0-9_-]{2,127}$
amountMicrosintegerrequired
min 0 · max 9007199254740991
lowestAmountMicrosintegerrequired
min 0 · max 9007199254740991
lowestCatalogItemIdsstring[]required
min items 1 · max items 20
object
stateanyrequired
reasonanyrequired
Allowed:price_state_unknown_or_uncomputablecapability_or_contract_mismatchprice_semantics_unverifiedcurrency_or_unit_mismatch
comparisonDigeststringrequired
matches ^sha256:[a-f0-9]{64}$
400

Invalid selection

401

Only returned for a malformed request; no bearer token is required

403

Catalog read scope required

404

One or more catalog items not found

Try it
Server
Bodyapplication/json
Request
curl -X POST "https://api.looot.ai/v1/public-catalog/compare" \
  -H "Content-Type: application/json" \
  -d '{
  "catalogItemIds": [
    "string",
    "string"
  ]
}'
Response
{
  "items": [
    {
      "catalogItemId": "string",
      "revision": 1,
      "providerId": "string",
      "operationId": "string",
      "title": "string",
      "description": "string",
      "categories": [
        "string"
      ],
      "capabilities": [
        "string"
      ],
      "inputSchemaDigest": "string",
      "outputSchemaDigest": "string",
      "method": "GET",
      "pathTemplate": "string",
      "parameters": [
        {
          "name": "string",
          "location": "query",
          "required": true,
          "description": "string",
          "schemaDigest": "string"
        }
      ],
      "verification": {
        "state": "unverified",
        "verifiedAt": "2019-08-24T14:15:22Z",
        "responseCapture": {
          "available": true,
          "digest": "string"
        }
      },
      "references": [
        {
          "kind": "documentation",
          "url": "http://example.com"
        }
      ],
      "price": {
        "state": "known",
        "amountMicros": 0,
        "currency": "string",
        "unit": "string",
        "effectiveAt": "2019-08-24T14:15:22Z",
        "comparisonBasis": {
          "canonicalMeter": "string",
          "billingBasis": "per_call",
          "tier": "string",
          "minimumMicros": 0,
          "rounding": "exact"
        }
      },
      "publishedAt": "2019-08-24T14:15:22Z",
      "itemDigest": "string",
      "provenanceTier": "official"
    },
    {
      "catalogItemId": "string",
      "revision": 1,
      "providerId": "string",
      "operationId": "string",
      "title": "string",
      "description": "string",
      "categories": [
        "string"
      ],
      "capabilities": [
        "string"
      ],
      "inputSchemaDigest": "string",
      "outputSchemaDigest": "string",
      "method": "GET",
      "pathTemplate": "string",
      "parameters": [
        {
          "name": "string",
          "location": "query",
          "required": true,
          "description": "string",
          "schemaDigest": "string"
        }
      ],
      "verification": {
        "state": "unverified",
        "verifiedAt": "2019-08-24T14:15:22Z",
        "responseCapture": {
          "available": true,
          "digest": "string"
        }
      },
      "references": [
        {
          "kind": "documentation",
          "url": "http://example.com"
        }
      ],
      "price": {
        "state": "known",
        "amountMicros": 0,
        "currency": "string",
        "unit": "string",
        "effectiveAt": "2019-08-24T14:15:22Z",
        "comparisonBasis": {
          "canonicalMeter": "string",
          "billingBasis": "per_call",
          "tier": "string",
          "minimumMicros": 0,
          "rounding": "exact"
        }
      },
      "publishedAt": "2019-08-24T14:15:22Z",
      "itemDigest": "string",
      "provenanceTier": "official"
    }
  ],
  "priceComparison": {
    "state": "comparable",
    "currency": "string",
    "unit": "string",
    "amounts": [
      {
        "catalogItemId": "string",
        "amountMicros": 0
      },
      {
        "catalogItemId": "string",
        "amountMicros": 0
      }
    ],
    "lowestAmountMicros": 0,
    "lowestCatalogItemIds": [
      "string"
    ]
  },
  "comparisonDigest": "string"
}