Skip to content

Filtered offer scan (keyset-paged)

GET
/v1/catalog/offers
curl --request GET \
--url 'https://api.oldsteelarsenal.com/v1/catalog/offers?distributor=example&fields=full&limit=500&dropship_ready=false&include_discontinued=false' \
--header 'x-client-id: <x-client-id>' \
--header 'x-signature: <x-signature>' \
--header 'x-timestamp: <x-timestamp>'

Filter whitelist mirrors the POS select_catalog contract: department (repeatable), manufacturer, min_qty, max_cost, ffl_required, dropship_ready (⇒ not blocked + no vendor approval), search (description ILIKE), include_discontinued. fields=sku returns bare SKUs for bulk selection; fields=full returns full rows for cache rebuild / rules preview. Page with cursor = last sku of the previous page. Scope: catalog:read.

distributor
required
Distributor
string
fields
Fields
string
default: full /^(full|sku)$/
cursor
Any of:
string
limit
Limit
integer
default: 500 >= 1 <= 2000
department
Any of:
Array<string>
manufacturer
Any of:
string
min_qty
Any of:
integer
max_cost
Any of:
number
ffl_required
Any of:
boolean
dropship_ready
Dropship Ready
boolean
search
Any of:
string
include_discontinued
Include Discontinued
boolean
x-client-id
Any of:
string
x-timestamp
Any of:
string
x-signature
Any of:
string

Successful Response

Media typeapplication/json
Any of:
OffersFullResponse
object
cursor
required
Any of:
string
rows
required
Rows
Array<object>
OfferFull
object
caliber
required
Caliber
string
cost
required
Cost
number
department
required
Department
string
discontinued
required
Discontinued
boolean
distributor
required
Distributor
string
dropship_blocked
required
Dropship Blocked
boolean
ffl_required
required
Ffl Required
boolean
image_name
required
Image Name
string
image_url
required
Image Url
string
image_url_hires
required
Image Url Hires
string
long_description
required
Long Description
string
manufacturer
required
Manufacturer
string
map
required
Map
number
map_policy
Map Policy

Manufacturer price-policy mark when the distributor ships one (ss: ‘M’ = enforceable MAP, ‘U’ = suggested MSRP, ‘’ = no policy — render ‘’ as ‘no policy’, never as MAP $0). Always ‘’ for rsr.

string
""
mfg_number
required
Mfg Number
string
model
required
Model
string
msrp
required
Msrp
number
product_class
required
Product Class

Handgun / Long Gun / Other Firearm / Ammunition / Accessory, from this distributor’s own department code — the one class table; a client keeps none of its own.

string
prop65
required
Prop65
boolean
qty
required
Qty
integer
ships_ground_only
required
Ships Ground Only
boolean
short_description
required
Short Description
string
signature_required
required
Signature Required
boolean
sku
required
Sku
string
status_flag
required
Status Flag
string
upc
required
Any of:
string
vendor_approval_required
required
Vendor Approval Required
boolean
weight_lb
required
Weight Lb
number
Example
{
"rows": [
{
"map_policy": ""
}
]
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}