Bullseye Locations API

The Bullseye Locations Developer Hub

Welcome to the Bullseye Locations developer hub. You'll find comprehensive guides and documentation to help you start working with Bullseye Locations as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

XML Schema

Here is the current XML schema for Bullseye imports.

This schema is designated as "2013 2.3".

The current import program can accept schema 2.1, 2.2 and 2.3.

Example:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xs3p.xsl"?>
<!-- Bullseye Web Service location import schema file -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:codegen="urn:schemas-microsoft-com:xml-msprop" targetNamespace="EVI.BullsEye" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:element name="BullseyeLocationImport">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="HeaderInfo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="BullseyeClientID" type="xs:int"/>
              <xs:element name="AdminApiKey" type="xs:string" minOccurs="0"/>
              <xs:element name="DateGenerated" type="xs:dateTime"/>
              <xs:element name="ThirdPartyID" type="xs:string" minOccurs="0"/>
              <xs:element name="ClientNotifyEmail" type="xs:string" minOccurs="0"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="BullseyeCategories" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Category" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Name" type="xs:string"/>
                    <xs:element name="ThirdPartyId" type="xs:string" minOccurs="0"/>
                    <xs:element name="CategoryData" type="xs:string" minOccurs="0"/>
                    <xs:element name="ParentThirdPartyId" type="xs:string" minOccurs="0"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="BullseyeTerritories" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Territory" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <!-- required & must be unique -->
                    <xs:element name="Name" type="xs:string"/>
                    <!-- does not currently exist in the database. -->
                    <xs:element name="ThirdPartyId" type="xs:string" minOccurs="0"/>
                    <!-- required. 1=US, 2=Canada, 3=Int'l, 4=Other Countries -->
                    <xs:element name="TypeId" type="xs:positiveInteger"/>
                    <!-- only used for 'other countries' type -->
                    <xs:element name="CountryId" type="xs:positiveInteger" minOccurs="0"/>
                    <xs:sequence>
                      <xs:element name="TerritoryItem" minOccurs="1" maxOccurs="unbounded">
                        <xs:complexType>
                          <xs:sequence>
                            <!-- 1=Country, 2=State, 3=Postal Code, 4=County, 5=City -->
                            <xs:element name="ItemTypeId" type="xs:positiveInteger"/>
                            <!-- either ItemId or ItemName must be present. -->
                            <!-- for types 1 & 2, the appropriate Bullseye code should be in ItemId. -->
                            <!-- for types 3, 4, & 5, the appropriate data should be in ItemName. -->
                            <xs:element name="ItemId" type="xs:positiveInteger" minOccurs="0"/>
                            <xs:element name="ItemName" type="xs:string" minOccurs="0"/>
                            <!-- required. true=include, false=exclude -->
                            <xs:element name="Include" type="xs:boolean"/>
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="BullseyeLocations">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Location" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Active" type="xs:boolean" minOccurs="0" />
                    <xs:element name="ID" type="xs:int" minOccurs="0"/>
                    <xs:element name="ThirdPartyID" type="xs:string" minOccurs="0"/>
                    <xs:element name="Name" type="xs:string"/>
                    <xs:element name="URL" type="xs:string" minOccurs="0"/>
                    <xs:element name="LocationType" type="xs:string" minOccurs="0"/>
                    <xs:element name="Address1" type="xs:string" minOccurs="0"/>
                    <xs:element name="Address2" type="xs:string" minOccurs="0"/>
                    <xs:element name="Address3" type="xs:string" minOccurs="0"/>
                    <xs:element name="Address4" type="xs:string" minOccurs="0"/>
                    <xs:element name="InternationalAddress" type="xs:string" minOccurs="0"/>
                    <xs:element name="City" type="xs:string" minOccurs="0"/>
                    <xs:element name="PostCode" type="xs:string" minOccurs="0"/>
                    <xs:element name="StateAbbr" type="xs:string" minOccurs="0"/>
                    <xs:element name="CountryCode" type="xs:string"/>
                    <xs:element name="EmailAddress" minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:pattern value="[a-zA-Z0-9._%'-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,14}"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="PhoneNumber" type="xs:string" minOccurs="0"/>
                    <xs:element name="FaxNumber" type="xs:string" minOccurs="0"/>
                    <xs:element name="MobileNumber" type="xs:string" minOccurs="0"/>
                    <xs:element name="ContactName" type="xs:string" minOccurs="0"/>
                    <xs:element name="ContactPosition" type="xs:string" minOccurs="0"/>
                    <xs:element name="ContactURL" type="xs:string" minOccurs="0" />
                    <xs:element name="InternetLocation" type="xs:boolean"/>
                    <xs:element name="ResponsivenessRating" type="xs:string" minOccurs="0"/>
                    <xs:element name="FacebookPageId" type="xs:string" minOccurs="0"/>
                    <xs:element name="LeadManager" type="xs:boolean"/>
                    <xs:element name="StoreLocator" type="xs:boolean"/>
                    <xs:element name="RepID" type="xs:int" minOccurs="0"/>
                    <xs:element name="TimeZoneID" type="xs:int" minOccurs="0"/>
                    <xs:element name="MondayOpen" type="xs:time" minOccurs="0"/>
                    <xs:element name="MondayClose" type="xs:time" minOccurs="0"/>
                    <xs:element name="TuesdayOpen" type="xs:time" minOccurs="0"/>
                    <xs:element name="TuesdayClose" type="xs:time" minOccurs="0"/>
                    <xs:element name="WednesdayOpen" type="xs:time" minOccurs="0"/>
                    <xs:element name="WednesdayClose" type="xs:time" minOccurs="0"/>
                    <xs:element name="ThursdayOpen" type="xs:time" minOccurs="0"/>
                    <xs:element name="ThursdayClose" type="xs:time" minOccurs="0"/>
                    <xs:element name="FridayOpen" type="xs:time" minOccurs="0"/>
                    <xs:element name="FridayClose" type="xs:time" minOccurs="0"/>
                    <xs:element name="SaturdayOpen" type="xs:time" minOccurs="0"/>
                    <xs:element name="SaturdayClose" type="xs:time" minOccurs="0"/>
                    <xs:element name="SundayOpen" type="xs:time" minOccurs="0"/>
                    <xs:element name="SundayClose" type="xs:time" minOccurs="0"/>
                    <xs:element name="Latitude" minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:decimal">
                          <xs:totalDigits value="9"/>
                          <xs:fractionDigits value="6"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Longitude" minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:decimal">
                          <xs:totalDigits value="9"/>
                          <xs:fractionDigits value="6"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="ImageURL" type="xs:string" minOccurs="0" />
                    <xs:sequence>
                      <xs:element name="Territory" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="Name" type="xs:string"/>
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:sequence>
                      <xs:element name="LocAttribute" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="Name" type="xs:string" minOccurs="0" />
                            <xs:element name="ID" type="xs:int" minOccurs="0" />
                            <xs:element name="ValueBoolean" type="xs:boolean" minOccurs="0"/>
                            <xs:element name="ValueString" type="xs:string" minOccurs="0"/>
                            <xs:element name="ValueInteger" type="xs:int" minOccurs="0"/>
                            <xs:element name="ValueOptionID" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
                            <xs:element name="ValueOptionText" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
                            <xs:element name="ValueLinkURL" type="xs:string" minOccurs="0"/>
                            <xs:element name="ValueLinkDisplayText" type="xs:string" minOccurs="0"/>
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:sequence>
                      <xs:element name="Category" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="Name" type="xs:string" minOccurs="0" />
                            <xs:element name="ID" type="xs:int" minOccurs="0" />
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:sequence>
                      <xs:element name="SEO" minOccurs="0">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="Title" type="xs:string" minOccurs="0" />
                            <xs:element name="MetaDescription" type="xs:string" minOccurs="0" />
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:sequence>
                      <xs:element name="LandingPageImage" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="URL" type="xs:string" />
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:sequence>
                      <xs:element name="SocialMediaLinks" minOccurs="0">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="Facebook" type="xs:string" minOccurs="0" />
                            <xs:element name="Twitter" type="xs:string" minOccurs="0" />
                            <xs:element name="GooglePlus" type="xs:string" minOccurs="0" />
                            <xs:element name="Pinterest" type="xs:string" minOccurs="0" />
                            <xs:element name="LinkedIn" type="xs:string" minOccurs="0" />
                            <xs:element name="Yelp" type="xs:string" minOccurs="0" />
                             <xs:element name="Instagram" type="xs:string" minOccurs="0" />
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:sequence>
                      <xs:element name="HolidayHours" minOccurs="0">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="Holiday" minOccurs="1" maxOccurs="unbounded">
                              <xs:complexType>
                                <xs:sequence>
                                  <xs:element name="ID" type="xs:int" minOccurs="0" />
                                  <xs:element name="Name" type="xs:string" minOccurs="0" />
                                  <xs:element name="Date" type="xs:date" />
                                  <xs:element name="Closed" type="xs:boolean" minOccurs="0" />
                                  <xs:element name="OpeningTime" type="xs:time" minOccurs="0" />
                                  <xs:element name="ClosingTime" type="xs:time" minOccurs="0" />
                                </xs:sequence>
                              </xs:complexType>
                            </xs:element>
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:sequence>
                      <xs:element name="Languages" minOccurs="0">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="Language" minOccurs="1" maxOccurs="unbounded">
                              <xs:complexType>
                                <xs:sequence>
                                  <xs:element name="ID" type="xs:int" />
                                  <xs:element name="LocationName" type="xs:string" minOccurs="0" />
                                  <xs:element name="Address1" type="xs:string" minOccurs="0" />
                                  <xs:element name="Address2" type="xs:string" minOccurs="0" />
                                  <xs:element name="Address3" type="xs:string" minOccurs="0" />
                                  <xs:element name="Address4" type="xs:string" minOccurs="0" />
                                  <xs:element name="City" type="xs:string" minOccurs="0" />
                                  <xs:element name="ContactPosition" type="xs:string" minOccurs="0" />
                                  <xs:sequence>
                                    <xs:element name="LocAttribute" minOccurs="0" maxOccurs="unbounded">
                                      <xs:complexType>
                                        <xs:sequence>
                                          <xs:element name="ID" type="xs:int" />
                                          <xs:element name="ValueString" type="xs:string" minOccurs="0" />
                                          <xs:element name="ValueLinkDisplayText" type="xs:string" minOccurs="0" />
                                        </xs:sequence>
                                      </xs:complexType>
                                    </xs:element>
                                  </xs:sequence>
                                  <xs:sequence>
                                    <xs:element name="SEO" minOccurs="0">
                                      <xs:complexType>
                                        <xs:sequence>
                                          <xs:element name="Title" type="xs:string" minOccurs="0" />
                                          <xs:element name="MetaDescription" type="xs:string" minOccurs="0" />
                                        </xs:sequence>
                                      </xs:complexType>
                                    </xs:element>
                                  </xs:sequence>
                                </xs:sequence>
                              </xs:complexType>
                            </xs:element>
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <!-- this attribute is used to indicate which version of the schema you are using. -->
      <xs:attribute name="schemaVersion" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:pattern value="2.[1-3]"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
</xs:schema>

XML Schema