Skip to content
Docs

03API reference

Version 1.0.0Made from openapi.yaml

Catalog

The store's products as it lists them. Public keys work from a browser; private keys also from a server.

Search the store's products

GET/products
Public (rm_pub_) or private (rm_prv_) key

A search of the key's own store, best match first, or (with updated_since) the listings changed since a time, oldest change first. Both kinds of key get the public columns; a public key's search cannot match a distributor's item number.

Paging. limit is 1 to 60 (default 20). If more is left, next_cursor is a string; pass it as cursor with the same other parameters. The cursor names a position in a total order, so it survives a catalog rebuild: a row never appears twice and a row that was there is not skipped. To mirror a whole catalog, use updated_since=1970-01-01 and follow next_cursor; later, call again with the time you started that walk.

An empty q with no filter returns no products.

Parameters

NameInTypeDescription
qquerystring

Search text, cut to 120 characters. If nothing matches and the last word ends in a plural "s", it is tried once more without it.

limitqueryinteger

Default 20. 1 to 60.

in_stockquerystring

1 or true: only products in stock.

categoryquerystring

A category id. Lists without q.

typequerystring

A type id.

firearmquery"yes" | "no"
updated_sincequerystring

ISO 8601 date or time. Lists the listings changed at or after it, oldest change first, and names those no longer visible in removed. Cannot be combined with q or the filters.

cursorquerystring

The next_cursor of the previous page. Opaque; do not build or change one. A cursor belongs to the request that produced it; with other parameters it is bad_cursor.

Up to 2048 characters.

Responses

Headers: X-Request-Id, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

FieldTypeDescription
queryrequiredstring
totalrequiredinteger | null

Matches for a search. Null for an updated_since list.

productsrequiredobject[]
products[].keyrequiredstring
products[].upcstring | null
products[].mfrPartstring
products[].modelstring
products[].manufacturerstring
products[].brandstring | null
products[].titlerequiredstring
products[].descriptionstring
products[].featuresstring[]
products[].specsobject[]
products[].specs[].labelstring
products[].specs[].valuestring
products[].images(string (uri))[]
products[].categoryobject | null
products[].category.idstring
products[].category.namestring
products[].typeobject | null
products[].type.idstring
products[].type.namestring
products[].attrsobject
products[].firearmrequiredboolean
products[].weightOznumber | null
products[].dimsInnumber[] | null

3 to 3 items.

products[].prop65object | null
products[].prop65.messagestring
products[].casePackobject | null
products[].casePack.roundsnumber
products[].casePack.boxesnumber
products[].casePack.roundsPerBoxnumber
products[].pricerequiredobject

What the price shows. Only show carries an amount. A MAP rule or a missing rule removes the amount.

products[].price.displayrequired"show" | "cart" | "contact" | "signin" | "none"
products[].price.amountnumber

Dollars.

products[].inStockrequiredboolean
products[].restrictedStatesstring[]
products[].groundOnlyboolean
products[].adultSignatureboolean
removedstring[]

Only with updated_since. Products that changed and are no longer visible; drop them from your copy.

next_cursorrequiredstring | null

Pass as cursor for the next page. Null on the last page.

Errors400401403429503in the error envelope.

Example

Shell
curl "https://app.getrollmark.com/api/v1/products" \
  -H "Authorization: Bearer $ROLLMARK_KEY"

One product

GET/products/{key}
Public (rm_pub_) or private (rm_prv_) key

One product of the key's store, public columns only. Returned only if it is active, not switched off by a brand rule and not hidden from the store.

Parameters

NameInTypeDescription
keyrequiredpathstring

The product key, URL-encoded (upc:<upc> or mpn:<MAKER>|<PART>).

Responses

Headers: X-Request-Id

FieldTypeDescription
productrequiredobject
product.keyrequiredstring
product.upcstring | null
product.mfrPartstring
product.modelstring
product.manufacturerstring
product.brandstring | null
product.titlerequiredstring
product.descriptionstring
product.featuresstring[]
product.specsobject[]
product.specs[].labelstring
product.specs[].valuestring
product.images(string (uri))[]
product.categoryobject | null
product.category.idstring
product.category.namestring
product.typeobject | null
product.type.idstring
product.type.namestring
product.attrsobject
product.firearmrequiredboolean
product.weightOznumber | null
product.dimsInnumber[] | null

3 to 3 items.

product.prop65object | null
product.prop65.messagestring
product.casePackobject | null
product.casePack.roundsnumber
product.casePack.boxesnumber
product.casePack.roundsPerBoxnumber
product.pricerequiredobject

What the price shows. Only show carries an amount. A MAP rule or a missing rule removes the amount.

product.price.displayrequired"show" | "cart" | "contact" | "signin" | "none"
product.price.amountnumber

Dollars.

product.inStockrequiredboolean
product.restrictedStatesstring[]
product.groundOnlyboolean
product.adultSignatureboolean
Errors401403404429503in the error envelope.

Example

Shell
curl "https://app.getrollmark.com/api/v1/products/<key>" \
  -H "Authorization: Bearer $ROLLMARK_KEY"

One product with what only the store may see (private key)

GET/staff/products/{key}
Private key (rm_prv_), from a server

The product with cost, MAP, MSRP, total quantity and the distributors' offers. It does not apply the hidden or inactive filters, so it also answers for a product the store has hidden. A public key gets 403.

Parameters

NameInTypeDescription
keyrequiredpathstring

The product key, URL-encoded (upc:<upc> or mpn:<MAKER>|<PART>).

Responses

Headers: X-Request-Id

FieldTypeDescription
productrequiredobject
product.keyrequiredstring
product.upcstring | null
product.mfrPartstring
product.modelstring
product.manufacturerstring
product.brandstring | null
product.titlerequiredstring
product.descriptionstring
product.featuresstring[]
product.specsobject[]
product.specs[].labelstring
product.specs[].valuestring
product.images(string (uri))[]
product.categoryobject | null
product.category.idstring
product.category.namestring
product.typeobject | null
product.type.idstring
product.type.namestring
product.attrsobject
product.firearmrequiredboolean
product.weightOznumber | null
product.dimsInnumber[] | null

3 to 3 items.

product.prop65object | null
product.prop65.messagestring
product.casePackobject | null
product.casePack.roundsnumber
product.casePack.boxesnumber
product.casePack.roundsPerBoxnumber
product.pricerequiredobject

What the price shows. Only show carries an amount. A MAP rule or a missing rule removes the amount.

product.price.displayrequired"show" | "cart" | "contact" | "signin" | "none"
product.price.amountnumber

Dollars.

product.inStockrequiredboolean
product.restrictedStatesstring[]
product.groundOnlyboolean
product.adultSignatureboolean
product.costrequirednumber | null
product.maprequirednumber | null
product.msrprequirednumber | null
product.totalQtyrequirednumber | null
product.offersrequiredobject[]
product.offers[].distributorrequiredstring
product.offers[].skurequiredstring
product.offers[].coststring | null

The distributor's cost in dollars as a decimal string (for example "51.25"), as the database returns it. The product-level cost, map and msrp are numbers.

product.offers[].qtynumber | null
product.offers[].statusstring | null
Errors401403404503in the error envelope.

Example

Shell
curl "https://app.getrollmark.com/api/v1/staff/products/<key>" \
  -H "Authorization: Bearer $ROLLMARK_KEY"
Rollmark is made by Illumina Studios LLC. It was built at Ironcrest Arms LLC. Sample dealers, license numbers and costs in these docs are made up. Questions: [email protected].