Skip to content

Read presentation price

GET/v1/catalog/items/{catalogItemId}/presentation-price

Requires selling_prices:read. Reads the Affinity default and this platform's override, shared by every pharmacy and inherited by all its practices. Missing defaults are null.

Request example

curl -X GET 'https://api.affinityrx.com/v1/catalog/items/{catalogItemId}/presentation-price' \
  -H "Authorization: Bearer $AFFINITY_API_KEY" \
  -H 'Affinity-Version: 2026-09-28'

Response example

These examples show the body structure. Values can differ. Select a status code to see its response.

{
  "amountCents": "<string>",
  "version": 0,
  "currency": "USD",
  "affinityPriceCents": "<string>",
  "affinityBasis": {
    "kind": "item",
    "quantity": "1",
    "unit": "<string>",
    "quantityPrices": "<string>"
  },
  "basis": {
    "kind": "item",
    "quantity": "1",
    "unit": "<string>",
    "quantityPrices": "<string>"
  }
}
{
  "code": "<string>",
  "data": "<string>",
  "detail": "<string>",
  "instance": "<string>",
  "requestId": "<string>",
  "status": 400,
  "title": "<string>",
  "traceId": "<string>",
  "type": "<string>"
}
{
  "code": "<string>",
  "data": "<string>",
  "detail": "<string>",
  "instance": "<string>",
  "requestId": "<string>",
  "status": 401,
  "title": "<string>",
  "traceId": "<string>",
  "type": "<string>"
}
{
  "code": "<string>",
  "data": "<string>",
  "detail": "<string>",
  "instance": "<string>",
  "requestId": "<string>",
  "status": 403,
  "title": "<string>",
  "traceId": "<string>",
  "type": "<string>"
}
{
  "code": "<string>",
  "data": "<string>",
  "detail": "<string>",
  "instance": "<string>",
  "requestId": "<string>",
  "status": 404,
  "title": "<string>",
  "traceId": "<string>",
  "type": "<string>"
}
{
  "code": "<string>",
  "data": "<string>",
  "detail": "<string>",
  "instance": "<string>",
  "requestId": "<string>",
  "status": 409,
  "title": "<string>",
  "traceId": "<string>",
  "type": "<string>"
}
{
  "code": "<string>",
  "data": "<string>",
  "detail": "<string>",
  "instance": "<string>",
  "requestId": "<string>",
  "status": 429,
  "title": "<string>",
  "traceId": "<string>",
  "type": "<string>"
}

Implementation specification

Use these field types and limits to build your integration. Download the OpenAPI document for the complete contract.

Path parameters

catalogItemIdstringrequired

Pattern: ^cat_[0-7][0-9a-hjkmnp-tv-z]{25}$

Query parameters

practiceIdstring | null
Show schema
Any of · 1: string

string

Pattern: ^prac_[0-7][0-9a-hjkmnp-tv-z]{25}$

Any of · 2: null

null

Headers

Affinity-Versionstring

Selects the HTTP API contract for this request only. When omitted, API-key requests use their service account’s stored version. Does not change the stored default.

Pin requests to 2026-09-28.

Response specifications

200Successful response

application/json

amountCentsany & any | nullrequired
Show amountCents fields
Any of · 1: any & any
All of · 1: any

any

Greater than: 0

All of · 2: any

any

Maximum: 2147483647

Any of · 2: null

null

versionintegerrequired
currencystringrequired

Allowed: "USD"

affinityPriceCentsany & any | nullrequired
Show affinityPriceCents fields
Any of · 1: any & any
All of · 1: any

any

Greater than: 0

All of · 2: any

any

Maximum: 2147483647

Any of · 2: null

null

affinityBasisobject | nullrequired
Show affinityBasis fields
Any of · 1: object
Any of · 1: object
kindstringrequired

Allowed: "item"

quantitystringrequired

Allowed: "1"

unitanyrequired
Show unit fields
All of · 1: any

any

Minimum length: 1

quantityPricesany | null
Show quantityPrices fields
Any of · 1: any

Array items · object

quantityany & anyrequired
Show quantity fields
All of · 1: any

any

Maximum length: 100

All of · 2: any

any

Pattern: ^(?:0|[1-9]\d*)(?:\.\d*[1-9])?$

amountCentsanyrequired
Show amountCents fields
All of · 1: any

any

Greater than: 0

All of · 1: any

any

Minimum items: 1

Any of · 2: null

null

Any of · 2: object
kindstringrequired

Allowed: "package"

quantityany & anyrequired
Show quantity fields
All of · 1: any

any

Maximum length: 100

All of · 2: any

any

Pattern: ^(?:0|[1-9]\d*)(?:\.\d*[1-9])?$

unitanyrequired
Show unit fields
All of · 1: any

any

Minimum length: 1

Any of · 3: object
kindstringrequired

Allowed: "unit"

quantitystringrequired

Allowed: "1"

unitanyrequired
Show unit fields
All of · 1: any

any

Minimum length: 1

Any of · 2: null

null

basisobject | nullrequired
Show basis fields
Any of · 1: object
Any of · 1: object
kindstringrequired

Allowed: "item"

quantitystringrequired

Allowed: "1"

unitanyrequired
Show unit fields
All of · 1: any

any

Minimum length: 1

quantityPricesany | null
Show quantityPrices fields
Any of · 1: any

Array items · object

quantityany & anyrequired
Show quantity fields
All of · 1: any

any

Maximum length: 100

All of · 2: any

any

Pattern: ^(?:0|[1-9]\d*)(?:\.\d*[1-9])?$

amountCentsanyrequired
Show amountCents fields
All of · 1: any

any

Greater than: 0

All of · 1: any

any

Minimum items: 1

Any of · 2: null

null

Any of · 2: object
kindstringrequired

Allowed: "package"

quantityany & anyrequired
Show quantity fields
All of · 1: any

any

Maximum length: 100

All of · 2: any

any

Pattern: ^(?:0|[1-9]\d*)(?:\.\d*[1-9])?$

unitanyrequired
Show unit fields
All of · 1: any

any

Minimum length: 1

Any of · 3: object
kindstringrequired

Allowed: "unit"

quantitystringrequired

Allowed: "1"

unitanyrequired
Show unit fields
All of · 1: any

any

Minimum length: 1

Any of · 2: null

null

400HTTP 400

application/json

codestringrequired
dataobject
detailstringrequired
instancestringrequired
requestIdstringrequired
statusintegerrequired

Minimum: 400

Maximum: 599

titlestringrequired
traceIdstring
typestringrequired

Format: uri

401Unauthorized

application/json

codestringrequired
dataobject
detailstringrequired
instancestringrequired
requestIdstringrequired
statusintegerrequired

Minimum: 400

Maximum: 599

titlestringrequired
traceIdstring
typestringrequired

Format: uri

403Forbidden

application/json

codestringrequired
dataobject
detailstringrequired
instancestringrequired
requestIdstringrequired
statusintegerrequired

Minimum: 400

Maximum: 599

titlestringrequired
traceIdstring
typestringrequired

Format: uri

404Not found

application/json

codestringrequired
dataobject
detailstringrequired
instancestringrequired
requestIdstringrequired
statusintegerrequired

Minimum: 400

Maximum: 599

titlestringrequired
traceIdstring
typestringrequired

Format: uri

409Conflict

application/json

codestringrequired
dataobject
detailstringrequired
instancestringrequired
requestIdstringrequired
statusintegerrequired

Minimum: 400

Maximum: 599

titlestringrequired
traceIdstring
typestringrequired

Format: uri

429Too many requests

application/json

codestringrequired
dataobject
detailstringrequired
instancestringrequired
requestIdstringrequired
statusintegerrequired

Minimum: 400

Maximum: 599

titlestringrequired
traceIdstring
typestringrequired

Format: uri

Type to search…

↑↓ navigate↵ selectEsc close