Web Hosting & POS Provider API
For web hosting platforms and POS systems managing multiple dealers
Quick Start Checklist
- 1 Provide a list of all active dealers in your network
- 2 Include store locations for each dealer (enables local search)
- 3 Supply product inventory for each dealer (queryable by dealerId or domain)
- 4 Dealers not found in the active list will be removed from listings
Overview
This API is designed for web hosting platforms and Point of Sale (POS) systems that manage inventory feeds for multiple firearm dealers. The integration follows a two-step process: first, provide a list of active dealers, then provide items for each dealer.
Active Dealers Feed
Provide a list of all active dealers in your network with their store locations.
Dealer Items Feed
Provide product inventory for each dealer, queryable by dealerId or domain.
How It Works
- Provide a list of all active dealers in your network
- Supply product inventory for each active dealer (queryable by dealerId or domain)
- Dealers not found in the active list will be considered inactive and removed from listings
- Supports both JSON and XML formats
Step 1: List of Active Dealers
This feed should include only active dealers. Dealers not found in this list will be considered Inactive and deleted from our listings.
Each dealer must have a unique dealerId and domainName. Store locations are optional but recommended for local search functionality.
| Field | Type | Required | Description |
|---|---|---|---|
| dealerId | string | Yes | Unique identifier for the dealer in your system |
| domainName | string | Yes | Dealer's website domain (e.g., exampledealer.com) |
| storeLocations | array | No | Array of physical store locations for this dealer |
| storeLocations.storeId | string | Yes | Unique identifier for the store location |
| storeLocations.storeName | string | Yes | Store display name |
| storeLocations.street | string | Yes | Street address |
| storeLocations.city | string | Yes | City name |
| storeLocations.state | string | Yes | State abbreviation (e.g., "TX") |
| storeLocations.zip | string | Yes | ZIP code |
| storeLocations.phone | string | No | Store phone number |
{
"dealers": [
{
"dealerId": "12345",
"domainName": "exampledealer.com",
"storeLocations": [
{
"storeId": "001",
"storeName": "Bill's Gun Shop",
"street": "123 Main Street",
"city": "Townsville",
"state": "TX",
"zip": "12345",
"phone": "1234567891"
},
{
"storeId": "002",
"storeName": "Bill's Gun Shop",
"street": "456 Side Street",
"city": "Villagetown",
"state": "AL",
"zip": "67890",
"phone": "1234567891"
}
]
},
{
"dealerId": "67890",
"domainName": "smithsoutdoors.com",
"storeLocations": [
{
"storeId": "001",
"storeName": "Smith's Outdoor Sports",
"street": "555 Hunter Lane",
"city": "Springfield",
"state": "MO",
"zip": "65801",
"phone": "4175550123"
},
{
"storeId": "002",
"storeName": "Smith's Outdoor Sports",
"street": "789 Sportsman Way",
"city": "Branson",
"state": "MO",
"zip": "65616",
"phone": "4175550124"
}
]
}
]
}Step 2: Get Items for Each Active Dealer
For each dealer in your active dealers list, provide their product inventory. We can send dealerId or domain as a query parameter if necessary.
Product Field Reference
See the Product Reference for valid category values, ammo fields, and reloading fields.
Query Parameters
dealerId- Query items by dealer ID (e.g., ?dealerId=12345)domain- Query items by domain (e.g., ?domain=exampledealer.com)
Products should include location-specific pricing and availability when dealers have multiple stores.
| Field | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | Product title/name |
| url | string | Yes | URL to product page on dealer site |
| imageUrl | string | No | URL to product image |
| departmentName | string | Yes | Department (Firearms, Ammunition, etc.) |
| categoryName | string | Yes | Category within department |
| subcategoryName | string | No | Subcategory (if applicable) |
| manufacturerName | string | Yes | Manufacturer/brand name |
| model | string | No | Model name/number |
| upc | string | Yes | Universal Product Code |
| mfgNumber | string | No | Manufacturer part number |
| locations | array | Yes | Per-store pricing and availability |
| locations.storeId | string | Yes | Links to storeId in Active Dealers feed |
| locations.price | number | Yes | Current selling price at this location |
| locations.inStock | boolean | Yes | Whether item is currently available |
| locations.inStore | boolean | Yes | Whether item is on the shelf at this location |
| locations.eligibleForFinancing | boolean | No | Qualifies for financing options |
| locations.condition | string | Yes | Item condition (new, used, refurbished) |
| locations.shippingInfo | string | No | Shipping cost or policy |
| attributes | array | No | Product attributes (caliber, capacity, etc.) |
| hideFFLAddress | boolean | No | Hide dealer from local search results |
{
"products": [
{
"title": "GLOCK 19x Semi-Auto Pistol with Coyote Finish",
"url": "https://examplegundealer.com/glock/19x",
"imageUrl": "https://examplegundealer.com/images/19x.webp",
"departmentName": "Firearms",
"categoryName": "Pistols",
"subcategoryName": "Semi-Automatic",
"manufacturerName": "Glock",
"model": "19x",
"upc": "123456789012",
"mfgNumber": "MFG123456",
"locations": [
{
"storeId": "001",
"price": 599.99,
"inStock": true,
"inStore": false,
"eligibleForFinancing": true,
"condition": "new",
"shippingInfo": "19.99 over 500 ships free"
},
{
"storeId": "002",
"price": 589.99,
"inStock": true,
"inStore": true,
"eligibleForFinancing": true,
"condition": "new",
"shippingInfo": "19.99 over 500 ships free"
}
],
"attributes": [
{
"attributeName": "Caliber",
"attributeValue": "9MM"
},
{
"attributeName": "Capacity",
"attributeValue": "17"
}
],
"hideFFLAddress": false
}
]
}Additional Documentation
Contact Us
Finished with your feed? Have questions about integration?
dealers@gunmade.com