Skip to main content

Products API

To enable lane purchasing, you must provide an API that returns products for display on the lane UI.


Endpoint Requirements

We will query your API with a product type filter:

GET https://yourdomain.com/products?type=time
GET https://yourdomain.com/products?type=targets
GET https://yourdomain.com/products?type=ammo
GET https://yourdomain.com/products?type=rentals

We include a session-id header on each request so you can customize results per session or location.


Product Limits

TypeLimit
timeExactly 1 product. Additional items are ignored.
targetsMaximum 8 products
ammoMaximum 8 products
rentalsMaximum 8 products

Response Format

Unit-based Products (targets, ammo, rentals)

[
{
"id": "SOME-TARGET-ID",
"max_qty": 3,
"display_name": "Freddy Elm St",
"price": 2.00,
"picture_url": "https://yourdomain.com/image.webp"
}
]

Note: For unit products, increment_by and min_qty are assumed to be 1.

Time Product

[
{
"id": "time",
"max_qty": 240,
"display_name": "Range Time",
"price": 15.25,
"min_qty": 15,
"increment_by": 15
}
]
FieldDescription
idYour product identifier
max_qtyMaximum quantity a customer can purchase
min_qtyMinimum quantity (time products only)
increment_byQuantity increment step (time products only)
display_nameName shown to customer
priceUnit price
picture_urlProduct image URL (optional for time)

Note: For time products, max_qty should be divisible by increment_by.


Image Guidelines

  • Use lossy JPEG/WebP compression
  • Keep file sizes under 96KB
  • If images are unavailable, omit picture_url or return an empty string
  • Recommended aspect ratio: 1:1
  • Minimum resolution: 512x512