DEPRECATED Offer Feed XML V1 Specification


The following document provides detailed instructions about XML file format that we use as a source for our weapons, ammunition and other guns-related listings. Feed format explained here is used to import these offers.

Feed should be a valid XML document defined by this schema. You can manually validate your XML file using this validator.

Overview

The XML should contain productlist as a root element with the list of product elements as its children. Every product element describes one product, with its offer price, status, a link to the vendor's store, and other useful information. The contents of an product element may differ based on the product type (ammunition, weapon, parts, reloading, etc.). An product must include all required data in order to be listed.

This is a brief overview of the XML file format. Note the required type attribute and the fields used for every product type. Read the full specification for details.

<?xml version="1.0" encoding="UTF-8" ?>
<productlist xmlns="https://api.gunengine.com/ingest/XMLSchema/feed/v1/offers">
    <!-- Ammo -->
    <product type="ammunition">
        <upc>...</upc>
        <mpn>...</mpn>
        <title>...</title>
        <url>...</url>
        <availability>...</availability>
        <price>...</price>
        <map>...</map>
        <shipping_price>...</shipping_price>
        <image_url>...</image_url>
        <caliber>...</caliber>
        <numrounds>...</numrounds>
        <brand>...</brand>
        <model>...</model>
    </product>

    <!-- Firearm -->
    <product type="firearm">
        <upc>...</upc>
        <mpn>...</mpn>
        <title>...</title>
        <url>...</url>
        <availability>...</availability>
        <price>...</price>
        <map>...</map>
        <shipping_price>...</shipping_price>
        <image_url>...</image_url>
        <caliber>...</caliber>
        <brand>...</brand>
        <model>...</model>
    </product>

    <!-- Part -->
    <product type="part">
        <upc>...</upc>
        <mpn>...</mpn>
        <title>...</title>
        <url>...</url>
        <availability>...</availability>
        <price>...</price>
        <map>...</map>
        <shipping_price>...</shipping_price>
        <image_url>...</image_url>
        <brand>...</brand>
        <model>...</model>
    </product>

    <!-- Reloading -->
    <product type="bullet">
        <upc>...</upc>
        <mpn>...</mpn>
        <title>...</title>
        <url>...</url>
        <availability>...</availability>
        <price>...</price>
        <map>...</map>
        <shipping_price>...</shipping_price>
        <image_url>...</image_url>
        <caliber>...</caliber>
        <numrounds>...</numrounds>
        <brand>...</brand>
        <model>...</model>
    </product>

    <product type="primer">
        <upc>...</upc>
        <mpn>...</mpn>
        <title>...</title>
        <url>...</url>
        <availability>...</availability>
        <price>...</price>
        <map>...</map>
        <shipping_price>...</shipping_price>
        <image_url>...</image_url>
        <caliber>...</caliber>
        <numrounds>...</numrounds>
        <brand>...</brand>
        <model>...</model>
    </product>

    <product type="brass">
        <upc>...</upc>
        <mpn>...</mpn>
        <title>...</title>
        <url>...</url>
        <availability>...</availability>
        <price>...</price>
        <map>...</map>
        <shipping_price>...</shipping_price>
        <image_url>...</image_url>
        <caliber>...</caliber>
        <numrounds>...</numrounds>
        <brand>...</brand>
        <model>...</model>
    </product>
</productlist>
<?xml version="1.0" encoding="UTF-8" ?>
<productlist xmlns="https://api.gunengine.com/ingest/XMLSchema/feed/v1/offers">
    <!-- List of multiple products -->
    <!-- Attribute "type" is required - select appropriate type -->
    <product type="ammunition|firearm|part|accessory|bullet|primer|brass">
        <upc>string</upc> <!-- Required -->
        <mpn>string</mpn> <!-- Recommended -->
        <title>string</title> <!-- Required -->
        <url>URL</url> <!-- Required -->
        <availability>string</availability> <!-- Required: "in stock", "out of stock" or "backorder" -->
        <price>1000.00</price> <!-- Required -->
        <map>yes|no</map> <!-- Optional: "yes" to hide price, "no" or leave blank to display price -->
        <shipping_price>string</shipping_price><!-- Optional: price or 60 chars long textual description -->
        <image_url>URL</image_url> <!-- Recommended -->
        <caliber>string</caliber> <!-- Required for types: firearm, ammunition, brass, primer, bullet -->
        <numrounds>1000</numrounds> <!-- Required for types: ammunition, brass, primer, bullet -->
        <brand>string</brand> <!-- Optional -->
        <model>string</model> <!-- Optional -->
    </product>
</productlist>

Specification

Element Requirement Constraints Description Examples
<upc> required digits only Universal product code (barcode number) in the one of common formats (e.g., UPC-A, EAN, GTIN-12, GTIN-13, GTIN-14).
Do not fill this field with internal ids or invalid codes, because the offer will not be listed in that case.
Good <upc>082442908144</upc>
Bad not UPC <upc>ABCD123</upc>
Bad not UPC <upc>12</upc>
<mpn> recommended Manufacturer product number is the identification number issued and used by the manufacturer. Use the original MPN, without adding additional characters to identify manufacturer or features.
Do not fill this field with internal stock keeping numbers, or other codes, because the offer may not be listed in that case.
Good <mpn>J92FR915G</mpn>
Bad brand prefix <mpn>BERETTA-J92FR915G</mpn>
<title> required Concise product name. Shouldn't be to long, but it needs to contain enough information to identify the product.
Do not include product unrelated information, such as promotions, sale info, emojis, etc.
Good <title>Beretta 92X GR Full Size 9mm</title>
Bad to vague <title>Beretta 92</title>
Bad not product related <title>Beretta 92X GR | On Sale - 3 Left</title>
<url> required valid URI URL pointing to the offer on vendor's website. Good <url>https://example.com/beretta-92x-J92FR915G</url>
<availability> required "in stock"
"out of stock"
"backorder"
Current offer availability for online purchasing. Use only one of these values to describe availability: "in stock", "out of stock", "backorder".
Do not use different text to describe availability, because the offer may not be listed in that case.
Good <availability>in stock</availability>
Good <availability>out of stock</availability>
Bad unsupported value <availability>OOS</availability>
Bad unsupported value <availability>Limited (3 Left)</availability>
<price> required decimal number Price value in USD, in decimal notation (without a dollar sign).
Do not include currency or other text here, because the offer will not be listed in that case.
Good <price>1000.00</price>
Bad dollar sign <price>$1000.00</price>
Bad currency abbr <price>1000.00USD</price>
<map> optional "yes" or "no" Use value "yes" for the minimum advertised price, to hide price and show "MAP" instead. Ommit this element, use value "no" or leave empty to show the price. Good for MAP price <map>yes</map>
Good for regular price <map>no</map>
<shipping_price> optional 60 chars max Specify the shipping price, or briefly describe how shipping is calculated. Good <shipping_price>Free shipping over $20</shipping_price>
<image_url> recommended valid URI URL pointing to the offer image. Good <image_url>https://example.com/J92FR915G.jpg</image_url>
<caliber> required for:
- firearm,
- ammunition,
- reloading (brass, bullet, primer)
Firearm and ammunition caliber (cartridge or shotshell gauge), bullet diameter or primer size. Good for ammo/guns/brass <caliber>9mm Luger</caliber>
Good for bullet <caliber>9mm</caliber>
Good for primer <caliber>small pistol</caliber>
<numrounds> required for:
- ammunition,
- reloading (brass, bullet, primer)
integer number Number of rounds/pieces sold in this offer (total rounds sold for the given price). Good <numrounds>1000</numrounds>
Bad rounds suffix <numrounds>1000rnds</numrounds>
<brand> optional Brand (manufacturer) name. Good <brand>Glock</brand>
<model> optional Product model name. Good <model>Glock 19 Gen3</model>