Getting Started

Getting Started.

Company Website: http://trustedsearch.org/

Sandbox & Production Environments

There are two endpoints / environments.

  • Production: https://api.trustedsearch.org
  • Sandbox: http://api.sandbox.trustedsearch.org

You can use the above endpoints in place of the [api_endpoint] references you will see throughout the api docs. ### Credentials

There are separate credentials for each environment.

At the time of your account creation, you will be provided initially with sandbox credentials to conduct integration and testing. Once you believe you are ready for the production environment, please contact support@trustedsearch.org for production credentials.

To authenticate your requests we use an hmac authenticaion protocol. You will be provided with a public & private key for each environment.

Support

API & Integration Support

Email support@trustedsearch.org for all support requests.

Hours of Operation

Specifying Hours of Operation

Hours of operation should be passed in a standardized format, which consists of an 11-character block per period of open business hours.

The format is DDHHMMHHMMT, where

  • D = First day of week for this time period
  • D = Last day of week for this time period
  • HHMM = Opening time (24-hour notation)
  • HHMM = Closing time (24-hour notation)
  • T = Type of time period

Stringing multiple blocks

An example of a block is MF09001700H, which indicates that the business is open Monday through Friday, from 9:00am to 5:00pm.

You can string multiple blocks together to indicate different hours for different days: MF10002000HSS10001800HNN12001700H, which indicates the hours Monday-Friday 10 - 8, Saturday 10 - 6, Sunday 12 - 5.

D

The day of the week is specified as follows:

  • M Monday
  • T Tuesday
  • W Wednesday
  • R Thursday
  • F Friday
  • S Saturday
  • N Sunday

HHMM

The times use a 24-hour clock. For example, 5:00PM is 1700. If the business is open 24 hours, use 00000000.

Another would be “MNNONENONEH” which means that no hours are specified.

T

The type of timeperiod should be specified as follows. The most common type is H:

  • H Hours Open
  • A Appointment
  • E Emergency
  • S Service
  • D Delivery
  • C Access
  • M Same Day Service/Delivery
  • N Next Day Service/Delivery
  • 1 1 Hour Service
  • L Closed

Multiple time blocks per day

While we will accept multiple time blocks per day (e.g. Open Monday through Friday from 8am to 12pm, closed from 12pm to 1pm, open from 1pm to 6pm), most publishers cannot accept split hours

The example above would be formatted as MF08001200HMF13001800H, however, we will omit the “closed” portion and publish Monday through Friday 8am to 6pm.

Common Scenarios:

Open 24/7: MN00000000H

Open 8am to 5pm, Monday through Friday: MF08001700H

Hours not specified: MNNONENONEH

PUT /v1/test-fulfillment/:uuid Seeding Fulfillment Data

Overview

Once a /local-business call has been made to the sandbox environment, there is no manual process taking place (i.e. fulfillment) to test the /directory-listings call.

Making a PUT request to /v1/test-fulfillment/:uuid, where :uuid is the UUID provided in the response of the /local-business call, will seed fake fulfillment statuses so that subsequent calls will show altered data, mimicking the real fulfillment process.

You may make as many calls to this API as necessary to complete integration testing of the /directory-listings call.

Inner Workings

This call works by simply selecting two products (publishers) at random and altering the fulfillment status and associated listing URL and other timestamp data at random. The logic is not necessarily representative of the actual flow of data (that is, it will not necessarily move a particular product from “Received” to “In Progress” to “Submitted and Awaiting Publishing” to “Submitted and Published”). The logic is purely random and only for the purposes of testing the integration of the /directory-listings API.

Available Libraries

Available SDK’s

  • Ruby Gem - A Ruby Gem for the TRUSTEDSearch API.

  • PHP Package - A PHP Package for the TRUSTEDSearch API.

Iframing a Dashboard

IFRAMEing a Dashboard

Steps

  • Get an auth token for the user whom you want to load a dashboard for.
  • Add an iframe in your website with the iframe url

Lets say your token that you get is : abcdef12345

The iframe url is: https://local.report/#?token=abcdef12345

So just add this into your html:

<iframe src="https://local.report/#?token=abcdef12345"></iframe>

By doing this, you will auto login your user to their dashboard where they can see the location(s) associated to them.

SPF Method

How to configure SPF method

This is a 4 step process.

Step 1

You need to provide us with a unique sub-domain ( one you are not using anywhere else), all emails we send will originate from this domain.

Ex: If your site was www.abc.com, perhaps you chose “em.abc.com” for your unique email sub-domain.

Step 2

Provide us with the sub domain, and we will configure it on our end. We will then provide you with YourWhiteLabelIP ex: 192.168.1.1. address for the server that we will use to send email on your behalf.

  • In the example below you would use “192.168.1.1” where you see the words “YourWhiteLabelIP”

Step 3

Record Type Host Data
A YourWhiteLabelIP em.abc.com
CNAME em.abc.com sendgrid.net
TXT v=spf1 include:sendgrid.net ~all abc.com
TXT smtpapi._domainkey.em.abc.com k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPtW5iwpXVPiH5FzJ7Nrl8USzuY9zqqzjE0D1r04xDN6qwziDnmgcFNNfMewVKN2D1O+2J9N14hRprzByFwfQW76yojh54Xu3uSbQ3JP0A7k8o8GutRF8zbFUA8n0ZH2y0cIEjMliXY4W4LwPA7m4q0ObmvSjhd63O9d8z1XkUBwIDAQAB
TXT smtpapi._domainkey.abc.com k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPtW5iwpXVPiH5FzJ7Nrl8USzuY9zqqzjE0D1r04xDN6qwziDnmgcFNNfMewVKN2D1O+2J9N14hRprzByFwfQW76yojh54Xu3uSbQ3JP0A7k8o8GutRF8zbFUA8n0ZH2y0cIEjMliXY4W4LwPA7m4q0ObmvSjhd63O9d8z1XkUBwIDAQAB

Step 4

You are done! Just let us know when you are done, and we will confirm the rest on our end.

SMTP Method

How to configure Direct SMTP method

Provide us with:

  • smtp domain
  • port
  • username
  • password

Partial Method

Partially WhiteLabeled Option

  • Sub Domain (Easiest) - ex: support@example.verifymylistings.com

How to configure Partially WhiteLabeled method

This is the easiest method, simply choose a sub-domain name tied to your business ex: “harrys” and all your emails will come from “harrys.verifymylistings.com”.

Overview

White Labeling Email

There are currently 3 methods you can choose to setup email.

Location Audits

Audits:

  • An audit is a best guess attempt to find the listing on a publisher.
  • An audit does not require a unique identifier, only basic NAPW and its data is considered temporary.
  • An audit is a one time process. It does not recur on a given interval.
  • An audit is not based upon known listing urls, its an attempt to identify the listing url via the data * provided by the partner to extract data from the page identified.

There are two components to an audit:

  • Listing identification
    • To identify a listing we employ many tactics:
    • Api’s
    • Page crawling
    • Filtering of the original content (NAPW)) to find the best match.
  • Listing data extraction from detected page.
    • Once we identify the listing that has a match rate that is acceptable we then extract the listing data.

An audit’s identification and extraction accuracy varies based upon many factors:

  • Location info provided to TRUSTEDSearch vs data publisher has
  • Publisher search options:
    • Available publisher api
    • Publisher website search
  • Changes to publisher websites

Reporting:

  • Reporting is based upon a known listing url that is verified during the fulfillment process.
  • This verification process makes the identification and data accuracy very high.
  • A report requires that the partner provides a unique external_id to refer back to this location on their end.
  • A report happens on a standard frequency which changes based upon publisher variables: publication times rate of website updates
  • A higher frequency can be set. (Requires Reporting product and additional costs)

Hooks

Refer to Subscribing to Hooks to learn how you can recieve this data.

Authentication

Request Signing

The API uses HMAC hashing with a public/private key pair to sign all requests.

To sign each request, you will need the following:

  • public_key - assigned during account creation.
  • private_key - assigned during account creation.
  • request_uri - Request URI. This does not include the hostname or query string. (e.g. “/v1/local-business”)
  • timestamp - Current epoch timestamp.
  • content_md5 - Content MD5 hash of the request body. For POST and PUT requests, this will be the value as specified in RFC 1864 (the base64-encoded binary MD5 hash of the content). For GET requests, this will generally be an empty string.

In the programming language of your choice, concatenate the request URI, Content MD5, and timestamp with no delimiters. Use an HMAC hashing method with the SHA1 algorithm to calculate the (binary) hashed value of the concatenated string, using the private key. After base64-encoding the result, you have a valid signature for the request.

php example $privateKey = "12345privatekey67890"; $stringToSign = $request_uri . $content_md5 . $timestamp; $signature = base64_encode( hash_hmac( 'sha1', $stringToSign, $privateKey, true ) ); //wnl1AVcJAwHoCm7FK9l13ZuMx8g=

Sample Post Data

  • Public key: 1234567890abcdeffedcba0987654321
  • Private key: 12345privatekey67890
  • Request URI: /v1/local-business/47139840-870c-11e2-9e96-0800200c9a66
  • Epoch timestamp: 1362648813
  • Content MD5: Q2hlY2sgSW50ZWdyaXR5IQ==

POST body

    business: {
        name: "Joe's Plumbing",
        street: "123 Main St",
        city: "Los Angeles",
        state: "CA",
        postalCode: "90008",
        phoneLocal: "2135559876"
    }
}

Request Params

Once the signature is generated, simply append it to the query string of the request, along with the public key and timestamp from above:

https://[api_endpoint]/v1/local-business?apikey=1234567890abcdeffedcba0987654321&signature=wnl1AVcJAwHoCm7FK9l13ZuMx8g=&timestamp=1362648813

GET /v1/tokens/:username Getting an Auth Token

Auth Tokens

For many of TRUSTEDSearch’s whitelabel products, you will need a token to pass along in your api/widget urls.

Request

Requests should be made with the GET method to https://[api_endpoint]/v1/tokens/someUsername?pwd=somePassword

Query String Params

field type( length ) required options description
pwd string * - The password for the user.

Response

Sends back an a JSON object w/ the token and related user settings.

Status: 200 OK

{
  "token": "0657f0a11479968cca72284861f656394c515f3a",
  "expires": 1386102685,
  "userSettings": {
    "kpi": false,
    "home": "/partner",
    "audit": false,
    "client": false,
    "client_view": "visibility"
  }
}

POST /v1/validate Validate a Business

Validating a Location

This api is a simple validation api which can be used to pre-validate the Business Object and Contact Object which is normally supplied when submitting a business to the Submit a Business api.

This is for validating a single record only, where as the submission api does support sending multiple locations at once.

Fields

Top Level

| field | type( length ) | required | options | description | |——-|:————–:|:——–:|:——-:|————-| | externalId | string(36) | - |-| If specified, then a check to see if this location already exists matching name, street, city, state, postal code, phone. If so exception will be thrown.| | business | object | * |-| The location’s NAP+W and any associated data | | contact | object | * |-| The primary contact at the location. This ideally is somebody aware of the work being performed. Any data contained herein will NOT be published. |

Contact Object

Refer to Contact Object Definition defined here: Submit a Business

Business Object

Refer to Business Object Definition defined here: Submit a Business

Rules

Refer to rules defined here: Submit a Business

Requests should be made with the POST method to https://[api_endpoint]/v1/validate.

{
      
      "externalId": "abc123456",
      "contact":{
         "firstName":"Bob",
         "lastName":"Jones",
         "email":"bob@domain.com",
         "phone":"8005551234"
      },
      "business":{
         "name":"Bob's Fish Tacos",
         "street":"247 Ocean Way",
         "city":"San Luis Obispo",
         "state":"CA",
         "postalCode":"93401",
         "phoneLocal":"(805) 555-9876",
         "phoneTollFree":"(800) 555-4567",
         "fax":"(805) 555-0142",
         "website":"http://www.bobsfishtacos.com",
         "email":"greatfood@bobsfishtacos.com",
         "slogan":"The freshest Mexican food you'll ever eat.",
         "descriptionLong":"A really long description (maximum 1000 characters)",
         "descriptionMedium":A description that is no longer than 200 characters.",
         "descriptionShort":"A description that is no longer than 140 characters.",
         "keywords":"fish taco, mexican food, salsa",
         "paymentMethods":[
            "mastercard",
            "visa",
            "discover",
            "amex",
            "check",
            "cash"
         ],
         "yearEstablished":"2011",
         "numberEmployees":"7",
         "productsOffered":"mexican food, fish tacos",
         "languagesSpoken":"english, spanish",
         "hoursOfOperation":"MF08001700H",
         "logoUrl":"http://www.bobsfishtacos.com/logo.jpg",
         "logoSquareUrl":"http://www.bobsfishtacos.com/logo.jpg",
         "imageUrl":[
            "http://images.bobsfishtacos.com/100702_5009d194859.jpg",
            "http://images.bobsfishtacos.com/100702_5009d195016.jpg",
            "http://images.bobsfishtacos.com/100702_5009d19577a.jpg",
            "http://images.bobsfishtacos.com/100702_5009ccdf005.jpg",
            "http://images.bobsfishtacos.com/100702_5009ccdf4d0.jpg"
         ],
         "videoUrl":[
            "http://www.youtube.com/watch?v=cXuTiAHdxTg"
         ]
      }
   }

Response

Sends back an array of JSON objects, one for each submitted location containing the status, externalId, and assigned UUID.

Status: 200 OK { "status": "success", "code": 200, "message": "", "messages": [], "data": [] }

Error Message Example

{
   "status":"error",
   "code":400,
   "message":"Order Validation failed. See validations.",
   "messages":[
      {
         "text":"Order Validation failed. See validations.",
         "severity":"warn"
      }
   ],
   "error":"InvalidDataException",
   "debug":"The data specified is not of the right type or is not a valid option.",
   "validations":{
      "contact.email":[
         "The contact.email field is required."
      ]
   }
}

Error Types

  • InvalidDataException
  • RequiredFieldMissingException

GET /v1/directory-listings Get Business Updates

Receiving Location Updates

A number of mechanisms are in place to allow a partner to receive the latest information about a location and its listings. Depending on the detail level requested, this call can include the full business data, the content of each directory listing associated with the account (e.g. data obtained directly from Google+, Bing Local, etc.), as well as the current fulfillment status.

Requesting an update about a specific location

As this is a GET request, there is no entity or body associated with the call. All filtering is done in the query string parameters, but at the most basic level, a request to obtain details about a specific location would look like the following. Of course, all requests must be signed and authenticated. “:uuid” would be replaced by the location’s UUID provided in the response of the /local-business call.

https://[api_endpoint]/v1/directory-listings/:uuid

Regular Polling for Updates

There is also a mechanism to request changes since a given point in time. This would be useful if there was a recurring call set up to poll for changes. By recording the timestamp of the previous request, that same timestamp can be used as a “since” parameter to indicate that only changes made since that last time should be returned. The since time is exclusive, meaning that any changes made at that second are not included in the response.

https://[api_endpoint]/v1/directory-listings?since=1363385995

Update Pushes (Callbacks)

The API response described below is also available via a callback method. By providing an endpoint at which to receive callback messages, the most up-to-date information about a location and its listings can be pushed to a partner’s servers. Currently, data is aggregated every thirty minutes, and it is immediately following those aggregations that a callback would be fired.

If there have been no updates within a thirty minute window, no callback would be fired.

Pagination

Due to the potential for large amounts of data, the detail level of /directory-listings without a UUID is set lower than that of /directory-listings/:uuid. When performing a non-UUID request for a large span of time (a “since” parameter far in the past), the response may be returned in a paged format, where subsequent pages would require a separate API call with a “page” parameter.

Understanding callback data:

When looking at publishers data, if the errors block is an empty array ex: [], you can assume that we correctly found the listing and there were no issues extracting the listing data from the publisher.

Errors

If you see that the errors block is not empty, then there could be many reasons: * Publisher was down * Publisher website changed * Publisher search via api or crawl returned no records w/ a high enough match rate or not matches were found at all.

Response

The entity or body of the response will contain a JSON object with details specific to the request.

For a /directory-listings?since=:timestamp request, a response might look like:

Status: 200 Success { "directories": { "googleplus": { "description": "Submitted and Published", "lastupdate": 1381438418, "listingUrl": "https://plus.google.com/110443031077278695323/about?gl=us&hl=en", "log": { "1380901043": "In Progress", "1381438418": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "label": "Google+", "listing": { "city": "Grants Pass", "country": "", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": [], "id": 1206293, "image_urls": [ "https://lh3.googleusercontent.com/-kTM08MZhN6k/Uk7gXmLGYII/AAAAAAAALvw/F2Ka-hU2Y-o/w800-h800/photo.jpg", "https://lh4.googleusercontent.com/-UaJsfxEuuyM/Uk7gXgprIII/AAAAAAAALvo/uy9ldrVfx5E/w800-h800/photo.jpg", "https://lh4.googleusercontent.com/-edKyC9OzUHg/Uk7gYZ3MszI/AAAAAAAALvs/UpkTvexotqU/w800-h800/photo.jpg", "https://lh6.googleusercontent.com/-2zCKVPu1ALY/Uk7gXkWxdwI/AAAAAAAALvk/cNaZFyaDuqk/w800-h800/photo.jpg" ], "keywords": [ "establishment", "food", "grocery_or_supermarket", "health", "store" ], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:20", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": true, "listing_verified": false, "local_phone": "5414793602", "logo_url": "https://lh6.googleusercontent.com/-2zCKVPu1ALY/Uk7gXkWxdwI/AAAAAAAALvk/cNaZFyaDuqk/s0/photo.jpg", "long_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients.   Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. \r\n\r\nWe specialize in:\r\n\r\nBulk Organic Herbs\r\nTeas &amp; Spices\r\nHighest Quality Vitamins &amp; Supplements\r\nHerbal Extracts\r\nAromatherapy\r\nHomeopathy", "name": "Herb Shop", "number_of_employees": 0, "object_hash": "a90a08b1fe47520c3cb8b4573ef6e8dc8d9ff828da7e7332aa8198898ba2f9ef", "payment_methods": [], "postal_code": "97526", "products_offered": [], "short_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients.   Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. \r\n\r\nWe specialize in:\r\n\r\nBulk Organic Herbs\r\nTeas &amp; Spices\r\nHighest Quality Vitamins &amp; Supplements\r\nHerbal Extracts\r\nAromatherapy\r\nHomeopathy", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 Southwest G Street", "toll_free_phone": "", "url": "https://plus.google.com/116177505411303068587/about?hl=en", "video_urls": [], "website": "http://www.bulkherbshop.com", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": true, "logoUrl": true, "videoUrl": false, "website": true } }, "yahoolocal": { "description": "Submitted and Awaiting Publishing", "lastupdate": 1381438782, "log": { "1380902707": "In Progress", "1381438782": "Fulfillment Complete" }, "notes": [ "" ], "percentComplete": 100, "status": 30, "label": "Yahoo Local", "listing": { "city": "Grants Pass", "country": "USA", "country_iso_code": "", "email": "herbshop@bulkherbshop.com", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": [], "id": 1206299, "image_urls": [ "http://l.yimg.com/lo/api/res/1.2/WE8nLuNhByALdHQyxWF5IQ--/YXBwaWQ9eXlhaG9vbG9jYWxzO2JnPWZmZmZmZjtjYz0zMTUzNjAwMDA7Zmk9Zml0O2g9MTUzO3E9MTAwO3c9NjAw/http://localcontent.zenfs.com/269c/269c21408599a4fd65734f8758fb808e.jpg.cf.jpg" ], "keywords": [ "Alternative Medicine Retailers", "Nutrition & Supplements" ], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:21", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": false, "listing_verified": false, "local_phone": "5414793602", "logo_url": "", "long_description": "", "name": "Herb Shop", "number_of_employees": 0, "object_hash": "4d41bb9a2b9fd1ab5c0d00825a2e93d1c44cb4ddb731218d99a05803dbde0ffe", "payment_methods": [ "American more...", "American Express", "Diners Club", "Discover", "MasterCard", "MasterCard", "Visa", "Visa" ], "postal_code": "97526", "products_offered": [], "short_description": "", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 Sw G St", "toll_free_phone": "", "url": "http://local.yahoo.com/info-22039232-herb-shop-grants-pass", "video_urls": [], "website": "bulkherbshop.com", "year_established": 0 }, "content": { "description": false, "hoursOfOperation": true, "imageUrl": true, "logoUrl": false, "videoUrl": false, "website": true } }, "binglocal": { "description": "Submitted and Awaiting Publishing", "lastupdate": 1381438360, "log": { "1380900649": "In Progress", "1381438360": "Fulfillment Complete" }, "notes": [ "" ], "percentComplete": 100, "status": 30, "label": "Bing Local", "listing": { "city": "Grants Pass", "country": "", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": { "fri": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "mon": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "sat": { "open": "false" }, "sun": { "open": "false" }, "thu": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "tue": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "wed": { "closingTime": "1800", "open": "true", "openingTime": "0900" } }, "id": 1206290, "image_urls": [ "http://www.bing.com/th?id=AH%2bUTi43Y52josg480x360&h=80&w=80&pid=local&c=7", "http://www.bing.com/th?id=ALno1JXQXXTUQUA480x360&h=80&w=80&pid=local&c=7", "http://www.bing.com/th?id=APGH0qFDxbID18w480x360&h=80&w=80&pid=local&c=7", "http://www.bing.com/th?id=AaFv0vngB02%2fE3Q480x360&h=80&w=80&pid=local&c=7" ], "keywords": [], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:19", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": false, "listing_verified": false, "local_phone": "5414793602", "logo_url": "", "long_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. We specialize in: Bulk Organic Herbs Teas &amp; Spices Highest Quality Vitamins &amp; Supplements Herbal Extracts Aromatherapy Homeopathy", "name": "The Herb Shop", "number_of_employees": 0, "object_hash": "b980767e2e8e2621d4b4df19ebd2a3800a684c49ebbd99cf2e234aa928ee8f9b", "payment_methods": [], "postal_code": "97526", "products_offered": [], "short_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. We specialize in: Bulk Organic Herbs Teas &amp; Spices Highest Quality Vitamins &amp; Supplements Herbal Extracts Aromatherapy Homeopathy", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 Sw G St", "toll_free_phone": "", "url": "http://www.bing.com/local/details.aspx?lid=YN723x12583495", "video_urls": [], "website": "http://www.bulkherbshop.com", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": true, "logoUrl": false, "videoUrl": false, "website": true } }, "yelp": { "description": "Submitted and Published", "lastupdate": 1381441229, "listingUrl": "http://www.yelp.com/biz/the-herb-shop-grants-pass", "log": { "1380903598": "In Progress", "1381441229": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "label": "Yelp", "listing": { "city": "Grants Pass", "country": "", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": { "other": { "freetext": "Sat 9 am - 5 pm" } }, "id": 1206306, "image_urls": [ "http://s3-media1.ak.yelpcdn.com/bphoto/N-f6IfilgrBs7uTQJsLyiQ/xss.jpg", "http://s3-media3.ak.yelpcdn.com/bphoto/8qFGVfetcGZ_JCEeasJv6A/xss.jpg", "http://s3-media3.ak.yelpcdn.com/bphoto/JoR-QG7bcQPf2eJeYd-o5g/ms.jpg", "http://s3-media4.ak.yelpcdn.com/bphoto/MQhfSFrfNzzDm3bGKq9XWA/xss.jpg" ], "keywords": [ "Herbs & Spices", "herbsandspices" ], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:23", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": true, "listing_verified": false, "local_phone": "5414793602", "logo_url": "http://s3-media3.ak.yelpcdn.com/bphoto/JoR-QG7bcQPf2eJeYd-o5g/ms.jpg", "long_description": "Specialties: The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. We specialize in: Bulk Organic Herbs Teas &amp; Spices Highest Quality Vitamins &amp; Supplements Herbal Extracts Aromatherapy Homeopathy", "name": "The Herb Shop", "number_of_employees": 0, "object_hash": "fcd437fd9ffd46d99f336b23c0f41a309541be1dc1f7b8f95664620bd78aaa5f", "payment_methods": [ "Credit Cards" ], "postal_code": "97526", "products_offered": [], "short_description": "Very friendly staff who know their stuff. I was impressed by the size of the store, which is huge. I was also impressed that they carry a huge variety of...", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 SW G St", "toll_free_phone": "", "url": "http://www.yelp.com/biz/the-herb-shop-grants-pass", "video_urls": [], "website": "bulkherbshop.com", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": true, "logoUrl": true, "videoUrl": false, "website": true } }, "mapquest": { "description": "Submitted and Published", "lastupdate": 1380902449, "listingUrl": "http://www.mapquest.com/places/the-herb-shop-grants-pass-or-12477172/", "log": { "1380902449": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "content": { "description": true, "hoursOfOperation": true, "imageUrl": true, "logoUrl": false, "videoUrl": true, "website": true } }, "yellowpages": { "description": "Submitted and Published", "lastupdate": 1381858188, "listingUrl": "http://www.yellowpages.com/grants-pass-or/mip/herb-shop-1450956", "log": { "1380902756": "In Progress", "1381438569": "Fulfillment Complete", "1381858188": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "label": "Yellow Pages", "listing": { "city": "Grants Pass", "country": "", "country_iso_code": "", "email": "herbshop@bulkherbshop.com", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": { "fri": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "mon": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "sat": { "closingTime": "1700", "open": "true", "openingTime": "0900" }, "thu": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "tue": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "wed": { "closingTime": "1800", "open": "true", "openingTime": "0900" } }, "id": 1206285, "image_urls": [], "keywords": [ "Health & Diet Food Products", "Herbs", "Vitamins & Food Supplements" ], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:18", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": false, "listing_verified": false, "local_phone": "5414793602", "logo_url": "", "long_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients.   Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. \n \nWe specialize in: \n \nBulk Organic Herbs \nTeas & Spices \nHighest Quality Vitamins & Supplements \nHerbal Extracts \nAromatherapy \nHomeopathy", "name": "The Herb Shop", "number_of_employees": 0, "object_hash": "b4ccfb72d9239afbc8d4652f3fc211b119e1a5c090ecdd7ac24badca4b1bcfa6", "payment_methods": [ "AMEX", "CASH", "CHECK", "DEBIT", "DISCOVER", "MASTER CARD", "VISA" ], "postal_code": "97526", "products_offered": [], "short_description": "", "slogan": "Herbs, Teas & Spices, Vitamins and More.", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 SW G St", "toll_free_phone": "", "video_urls": [], "website": "http://www.bulkherbshop.com", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": false, "logoUrl": false, "videoUrl": false, "website": true } }, "whitepages": { "description": "Submitted and Awaiting Publishing", "lastupdate": 1380902605, "log": { "1380902605": "Fulfillment Complete" }, "notes": [ "90 Days to Publish via infogroup" ], "percentComplete": 100, "status": 30, "label": "Whitepages", "listing": { "city": "Grants Pass", "country": "", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": { "other": { "freetext": "Sun: Closed, Mon: 9:00am-6:00pm, Tue: 9:00am-6:00pm, Wed: 9:00am-6:00pm, Thu: 9:00am-6:00pm, Fri: 9:00am-6:00pm, Sat: 9:00am-5:00am" } }, "id": 1206364, "image_urls": [], "keywords": [ "Acupuncture", "Herbs", "Importers", "Massage Therapists", "Vitamins & Food Supplements", "Weight Control Service" ], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:25:00", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": false, "listing_verified": false, "local_phone": "5414793602", "logo_url": "", "long_description": "", "name": "Herb Shop", "number_of_employees": 0, "object_hash": "5881f78ae92b9f9f18023e0ee9d04d57a2a4c3bc6f4ab47560cae3d64d198a02", "payment_methods": [], "postal_code": "97526", "products_offered": [], "short_description": "", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 SW G St", "toll_free_phone": "", "url": "http://www.whitepages.com/business/herb-shop-grants-pass-or", "video_urls": [], "website": "http://bulkherbshop.com", "year_established": 0 }, "content": { "description": false, "hoursOfOperation": true, "imageUrl": false, "logoUrl": true, "videoUrl": false, "website": true } }, "manta": { "description": "Submitted and Published", "lastupdate": 1380902303, "listingUrl": "http://www.manta.com/c/mmgl4xd/the-herb-shop", "log": { "1380902303": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "label": "Manta", "listing": { "city": "", "country": "", "country_iso_code": "", "email": "", "errors": [ "LML\\DirectoryBot\\Bots\\Manta_Bot: Could not get Business Information: Could not find ForeignKey from search. Could not get HTML from http://www.manta.com/mb?search=herb+shop+97526" ], "fax": "", "foreign_key": "", "hours_of_operation": [], "id": 1206483, "image_urls": [], "keywords": [], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:26:06", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": false, "listing_verified": false, "local_phone": "", "logo_url": "", "long_description": "", "name": "", "number_of_employees": 0, "object_hash": "3a4a32c0f43815782dba3ca161cdf29ad8a15afddab79a9a874d3385bcb9586b", "payment_methods": [], "postal_code": "", "products_offered": [], "short_description": "", "slogan": "", "square_logo_url": "", "state": "", "status": "NOK", "street": "", "toll_free_phone": "", "video_urls": [], "website": "", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": true, "logoUrl": true, "videoUrl": false, "website": true } }, "foursquare": { "description": "Postcard Verification Attempts Exhausted", "lastupdate": 1383247640, "log": { "1380900721": "In Progress", "1383247640": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 44, "label": "Foursquare", "listing": { "city": "Grants Pass", "country": "United States", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": [], "id": 1206289, "image_urls": [], "keywords": [], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:19", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": false, "listing_verified": false, "local_phone": "5414793602", "logo_url": "", "long_description": "", "name": "The Herb Shop", "number_of_employees": 0, "object_hash": "63b1690fc1d2451b74fd53ee87fb1d646359164f09c6879f51762e9a0f6d9cf5", "payment_methods": [], "postal_code": "", "products_offered": [], "short_description": "", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 SW G St", "toll_free_phone": "", "video_urls": [], "website": "http://www.bulkherbshop.com", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": false, "logoUrl": false, "videoUrl": false, "website": true } }, "localcom": { "description": "Submitted and Published", "lastupdate": 1381335568, "listingUrl": "http://www.local.com/business/details/grants-pass-or/the-herb-shop-41698659/", "log": { "1380902095": "Fulfillment Complete", "1381335568": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "content": { "description": true, "hoursOfOperation": true, "imageUrl": false, "logoUrl": false, "videoUrl": false, "website": true } }, "merchantcircle": { "description": "Submitted and Published", "lastupdate": 1385510921, "listingUrl": "http://www.merchantcircle.com/business/The.Herb.Shop.5414793602", "log": { "1380902457": "In Progress", "1385510921": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "label": "Merchant Circle", "listing": { "city": "Grants Pass", "country": "USA", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": { "other": { "freetext": "Mon, 9am-6pm ; Tue, 9am-6pm ; Wed, 9am-6pm ; Thu, 9am-6pm ; Fri, 9am-6pm ; Sat, 9am-5pm ; Sun, Closed." } }, "id": 1206362, "image_urls": [ "http://media.merchantcircle.com/12042051/1_full.jpeg", "http://media.merchantcircle.com/12042051/2_full.jpeg", "http://media.merchantcircle.com/12042051/3_full.jpeg", "http://media.merchantcircle.com/12042051/Logo_full.jpeg" ], "keywords": [ "Banquet Rooms", "Beverage &amp; Drinks", "Beverages", "Candy &amp; Sweets", "Catering Services", "Culinary Schools", "Fast Food", "Food &amp; Produce Wholesale", "Food Services", "Grocery Stores", "Meats", "Organic Foods", "Produce Retailers", "Restaurant Equipment &amp; Services", "Restaurants", "Specialty Food Stores" ], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:25:00", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": true, "listing_verified": false, "local_phone": "5414793602", "logo_url": "http://media.merchantcircle.com/12042051/Logo_medium.jpeg", "long_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. We specialize in:Bulk Organic HerbsTeas &amp; SpicesHighest Quality Vitamins &amp; SupplementsHerbal ExtractsAromatherapyHomeopathy", "name": "The Herb Shop", "number_of_employees": 0, "object_hash": "aea83cc6701c5fa6773d74e9d3863955b767056f67528ffa33ec7e774a7517d7", "payment_methods": [ "ATM/Debit", "American Express", "Discover", "Mastercard", "Personal Checks", "Visa" ], "postal_code": "97526", "products_offered": [], "short_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. We specialize in:Bulk Organic HerbsTeas &amp; SpicesHighest Quality Vitamins &amp; SupplementsHerbal ExtractsAromatherapyHomeopathy", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 SW G St", "toll_free_phone": "", "url": "http://www.merchantcircle.com/business/The.Herb.Shop.5414793602", "video_urls": [], "website": "http://www.bulkherbshop.com", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": true, "logoUrl": false, "videoUrl": false, "website": true } }, "superpages": { "description": "Submitted and Published", "lastupdate": 1380903483, "listingUrl": "http://www.superpages.com/bp/Grants-Pass-OR/The-Herb-Shop-L0138756220.htm", "log": { "1380903483": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "label": "SuperPages", "listing": { "city": "Grants Pass", "country": "USA", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": { "fri": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "mon": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "sat": { "closingTime": "1700", "open": "true", "openingTime": "0900" }, "thu": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "tue": { "closingTime": "1800", "open": "true", "openingTime": "0900" }, "wed": { "closingTime": "1800", "open": "true", "openingTime": "0900" } }, "id": 1206357, "image_urls": [ "http://media.superpages.com/media/photos/01/38/75/62/20/images/01387562201451.jpg", "http://media.superpages.com/media/photos/01/38/75/62/20/images/01387562205184.jpg", "http://media.superpages.com/media/photos/01/38/75/62/20/images/01387562205209.jpg", "http://media.superpages.com/media/photos/01/38/75/62/20/images/01387562205646.jpg" ], "keywords": [ "Herbs Retail", "Herbs Wholesale", "Natural Healing Products &amp; Services", "Vitamins &amp; Food Supplements Retail" ], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:59", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": false, "listing_verified": false, "local_phone": "5414793602", "logo_url": "", "long_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. We specialize in: Bulk Organic Herbs Teas & Spices Highest Quality Vitamins & Supplements Herbal Extracts Aromatherapy Homeopathy", "name": "The Herb Shop", "number_of_employees": 0, "object_hash": "80310a11c42b05a47e564767c4343d2c59bae56f1c15f1efb6b63345b96e4577", "payment_methods": [ "American Express", "Cash", "Debit Cards", "Discover", "Less", "MasterCard", "More", "Personal Checks", "VISA" ], "postal_code": "97526", "products_offered": [], "short_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. We specialize in: Bulk Organic Herbs Teas & Spices Highest Quality Vitamins & Supplements Herbal Extracts Aromatherapy Homeopathy", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 SW G St", "toll_free_phone": "", "url": "http://www.superpages.com/bp/Grants-Pass-OR/The-Herb-Shop-L0138756220.htm", "video_urls": [], "website": "http://www.bulkherbshop.com", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": true, "logoUrl": false, "videoUrl": false, "website": true } }, "citysearch": { "description": "Submitted and Awaiting Publishing", "lastupdate": 1381440850, "log": { "1380903626": "In Progress", "1381440850": "Fulfillment Complete" }, "notes": [ "" ], "percentComplete": 100, "status": 30, "label": "Citysearch", "listing": { "city": "Grants Pass", "country": "", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": { "fri": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "mon": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "sat": { "closingTime": "1700", "open": true, "openingTime": "0900" }, "sun": { "closingTime": "", "open": false, "openingTime": "" }, "thu": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "tue": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "wed": { "closingTime": "1800", "open": true, "openingTime": "0900" } }, "id": 1206300, "image_urls": [ "http://images1.citysearch.net/jawr/reinvent/img/cb3120600175/assets/reinvent/img/citysearch/blank.gif" ], "keywords": [], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:22", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": true, "listing_verified": false, "local_phone": "5414793602", "logo_url": "", "long_description": "", "name": "The Herb Shop", "number_of_employees": 0, "object_hash": "691b72aa06a849012ebe60d629583919d934161582e870f9a2c9838a5a81a7e9", "payment_methods": [], "postal_code": "97526", "products_offered": [], "short_description": "", "slogan": "Herbs, Teas & Spices, Vitamins and More.", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 SW G St", "toll_free_phone": "", "url": "http://national.citysearch.com/profile/8547746/grants_pass_or/the_herb_shop.html?impressionId=000b00000006d1adf7775c4cfa98322f55e56ca567", "video_urls": [], "website": "", "year_established": 0 }, "content": { "description": false, "hoursOfOperation": true, "imageUrl": true, "logoUrl": false, "videoUrl": false, "website": true } }, "hotfrog": { "description": "Submitted and Published", "duplicateUrl": "http://www.hotfrog.com/Companies/The-Herb-Shop_6535926", "lastupdate": 1380901157, "listingUrl": "http://www.hotfrog.com/Companies/The-Herb-Shop_30865778", "log": { "1380901157": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "label": "Hotfrog", "listing": { "city": "", "country": "", "country_iso_code": "", "email": "", "errors": [ "LML\\DirectoryBot\\Bots\\Hotfrog_Bot: Could not get Business Information: Found ForeignKey from search but probability too low. Expected >= 60%. [51.425 %][http://www.hotfrog.com/Companies/The-Herb-Shop_6535926]" ], "fax": "", "foreign_key": "", "hours_of_operation": [], "id": 1206518, "image_urls": [], "keywords": [], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:26:30", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": false, "listing_verified": false, "local_phone": "", "logo_url": "", "long_description": "", "name": "", "number_of_employees": 0, "object_hash": "89f24b06dfda4e7b71ec933ad591fc79c6b766fcdad2a81ca64ebe186d6d4412", "payment_methods": [], "postal_code": "", "products_offered": [], "short_description": "", "slogan": "", "square_logo_url": "", "state": "", "status": "NOK", "street": "", "toll_free_phone": "", "video_urls": [], "website": "", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": true, "logoUrl": false, "videoUrl": false, "website": true } }, "yellowbook": { "description": "Claimed Listing", "lastupdate": 1380903534, "listingUrl": "http://beta.yellowbook.com/profile/herb-shop-the_1848123204.html", "log": { "1380903534": "Listing Claimed/Published" }, "notes": [ "Update Recommended" ], "percentComplete": 100, "status": 40, "label": "Yellowbook", "listing": { "city": "", "country": "", "country_iso_code": "", "email": "", "errors": [ "LML\\DirectoryBot\\Bots\\YellowBook_Bot: Could not get Business Information: Could not find ForeignKey from search. Could not get HTML from http://www.yellowbook.com/yellow-pages?what=herb+shop&where=97526" ], "fax": "", "foreign_key": "", "id": 1206334, "image_urls": [], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:49", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": false, "listing_verified": false, "local_phone": "", "logo_url": "", "long_description": "", "name": "", "number_of_employees": 0, "object_hash": "5a051eaf7767f8870e0ee9006a3d262332819fc29a4ea07c5dc07c999db96d31", "postal_code": "", "short_description": "", "slogan": "", "square_logo_url": "", "state": "", "status": "NOK", "street": "", "toll_free_phone": "", "video_urls": [], "website": "", "year_established": 0 }, "content": { "description": false, "hoursOfOperation": true, "imageUrl": false, "logoUrl": false, "videoUrl": false, "website": true } }, "insiderpages": { "description": "Submitted and Published", "lastupdate": 1380901679, "listingUrl": "http://www.insiderpages.com/b/3720320499/herb-shop-grants-pass", "log": { "1380901679": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "label": "InsiderPages", "listing": { "city": "Grants Pass", "country": "", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": { "other": { "freetext": "Monday: 09:00 AM - 06:00 PM,Tuesday: 09:00 AM - 06:00 PM,Wednesday: 09:00 AM - 06:00 PM,Thursday: 09:00 AM - 06:00 PM,Friday: 09:00 AM - 06:00 PM,Saturday: 09:00 AM - 05:00 PM,Sunday: Closed" } }, "id": 1206354, "image_urls": [], "keywords": [ "Food Stores", "Health Food Stores", "Herbs, nutrients, vitamins, bulk herbs, supplements, herbal formulas, organic herbs, teas, spices, herbal extracts, aromatherapy, homeopathy" ], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:57", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": true, "listing_verified": false, "local_phone": "5414793602", "logo_url": "", "long_description": "Herbs, Teas & Spices, Vitamins and More.\nThe Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. We specialize in: Bulk Organic Herbs Teas & Spices Highest Quality Vitamins & Supplements Herbal Extracts Aromatherapy Homeopathy", "name": "Herb Shop", "number_of_employees": 0, "object_hash": "42f12302245562342584b9a37b39dabbdaa71c86aa6e2817afb385b0516bdd9b", "payment_methods": [], "postal_code": "97526", "products_offered": [], "short_description": "Herbs, Teas & Spices, Vitamins and More.\nThe Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. We specialize in: Bulk Organic Herbs Teas & Spices Highest Quality Vitamins & Supplements Herbal Extracts Aromatherapy Homeopathy", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 SW G St", "toll_free_phone": "", "url": "http://www.insiderpages.com/b/3720320499/herb-shop-grants-pass", "video_urls": [], "website": "https://bulkherbshop.com", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": true, "logoUrl": false, "videoUrl": false, "website": true } }, "kudzu": { "description": "Submitted and Published", "lastupdate": 1380901469, "listingUrl": "http://www.kudzu.com/m/The-Herb-Shop-12668001", "log": { "1380901469": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "label": "Kudzu", "listing": { "city": "Grants Pass", "country": "", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": { "fri": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "mon": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "sat": { "closingTime": "1700", "open": true, "openingTime": "0900" }, "sun": { "open": false }, "thu": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "tue": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "wed": { "closingTime": "1800", "open": true, "openingTime": "0900" } }, "id": 1206304, "keywords": [ "Food & Entertainment", "Health Food & Supplements" ], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:24:23", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": true, "listing_verified": false, "local_phone": "5414793602", "logo_url": "http://www.kudzu.com/uploadImages/11000000/11979778/logo.jpg", "long_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. \r\n\r\nWe specialize in:\r\n\r\nBulk Organic Herbs\r\nTeas & Spices\r\nHighest Quality Vitamins & Supplements\r\nHerbal Extracts\r\nAromatherapy\r\nHomeopathy", "name": "The Herb Shop", "number_of_employees": 0, "object_hash": "9aa86bf4106cf7c1a6184c04dabceb25b03021324edb6029bd2566c088f33d31", "payment_methods": [ "American Express", "Debit Card", "Discover", "Mastercard", "Personal Checks", "Visa" ], "postal_code": "97526", "products_offered": [], "short_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. \r\n\r\nWe specialize in:\r\n\r\nBulk Organic Herbs\r\nTeas & Spices\r\nHighest Quality Vitamins & Supplements\r\nHerbal Extracts\r\nAromatherapy\r\nHomeopathy", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 SW G St", "toll_free_phone": "", "url": "http://www.kudzu.com/m/The-Herb-Shop-12668001", "video_urls": [], "website": "http://www.bulkherbshop.com", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": true, "logoUrl": true, "videoUrl": false, "website": true } }, "mojopages": { "description": "Submitted and Published", "lastupdate": 1380902520, "listingUrl": "http://www.mojopages.com/biz/grants-pass-or-the-herb-shop-15372932", "log": { "1380902520": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20, "label": "MojoPages", "listing": { "city": "Grants Pass", "country": "", "country_iso_code": "", "email": "", "errors": [], "fax": "", "foreign_key": "", "hours_of_operation": { "fri": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "mon": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "sat": { "closingTime": "1700", "open": true, "openingTime": "0900" }, "sun": { "closingTime": "", "open": false, "openingTime": "" }, "thu": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "tue": { "closingTime": "1800", "open": true, "openingTime": "0900" }, "wed": { "closingTime": "1800", "open": true, "openingTime": "0900" } }, "id": 1206388, "image_urls": [], "keywords": [ "Alternative Medicine", "Aromatherapy", "Bulk Herbs", "Health &amp; Diet Food Products Retail", "Herbal Extracts", "Herbs", "Herbs", "Homeopathy", "Spices", "Supplements", "Teas", "Vitamins", "herbal formulas", "nutrients", "organic herbs" ], "languages_spoken": [], "last_errors": [], "last_updated": { "date": "2014-01-10 18:25:10", "timezone": "GMT", "timezone_type": 3 }, "listing_claimed": false, "listing_verified": false, "local_phone": "5414793602", "logo_url": "", "long_description": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. We specialize in: Bulk Organic Herbs Teas & Spices Highest Quality Vitamins & Supplements Herbal Extracts Aromatherapy Homeopathy", "name": "Herb Shop", "number_of_employees": 0, "object_hash": "83d7d67edf10a240c43525ae744fe59c8ffd5b5828460ea57300aac696e50679", "payment_methods": [ "American Express", "Cash", "Check", "Debit", "Discover", "Master Card", "Visa" ], "postal_code": "97526", "products_offered": [ "Aromatherapy", "Books", "Books", "Bulk Foods", "Flower Essences", "Herbal Supplements", "Herbs", "Homeopathic Remedies", "Nature&#039;s Life", "Order by Mail" ], "short_description": "", "slogan": "", "square_logo_url": "", "state": "OR", "status": "OK", "street": "247 Sw G St", "toll_free_phone": "", "url": "http://www.mojopages.com/biz/grants-pass-or-herb-shop-15372932?sl=35520359&so=0", "video_urls": [], "website": "http://www.bulkherbshop.com", "year_established": 0 }, "content": { "description": true, "hoursOfOperation": true, "imageUrl": false, "logoUrl": false, "videoUrl": false, "website": true } }, "expressupdate": { "description": "Submitted and Published", "lastupdate": 1381441031, "listingUrl": "http://www.expressupdate.com/places/9808414c635311e29d52411a5089b2ab", "log": { "1380900688": "In Progress", "1381441031": "Listing Claimed/Published" }, "notes": [ "" ], "percentComplete": 100, "status": 20 } }, "business": { "city": "Grants Pass", "coordinates": { "latitude": 42.4395496, "longitude": -123.3295961 }, "countryCode": "US", "name": "Herb Shop, The", "phone": "5414793602", "postalCode": "97526", "state": "OR", "street": "247 SW G St", "website": { "url": "http://www.bulkherbshop.com/" }, "descriptionLong": "The Herb Shop, located in Grants Pass Oregon, has a large selection of high quality herbs and nutrients. Many people seeking alternative medicine and lifestyles have enjoyed the store. Our main goal is to provide the largest selection of high quality herbs and nutrients and formulas (like Essiac) that are available on the market today. Most of our herbs are purchased from local growers in the Rogue Valley, providing organic or wild crafted herbs whenever possible. \n\nWe specialize in:\n\nBulk Organic Herbs\nTeas & Spices\nHighest Quality Vitamins & Supplements\nHerbal Extracts\nAromatherapy\nHomeopathy", "descriptionMedium": null, "descriptionShort": null, "hoursOfOperation": "MF09001800HSS09001700H", "imageUrl": { "1": "http://clientimages.localmarketlaunch.com/4be9527dd153c6938dd16d427c1a465e/524e05eec8c1c_1.jpg" }, "keywords": null, "languagesSpoken": "", "logoSquareUrl": null, "logoUrl": null, "numberEmployees": null, "paymentMethods": [ "amex", "cash", "check", "debit", "discover", "mastercard", "visa" ], "phoneTracking": [ "" ], "productsOffered": null, "slogan": "Herbs, Teas & Spices, Vitamins and More.", "videoUrl": null, "yearEstablished": null }, "externalId": "f~29gcn1gv", "uuid": "f2c8f956-f886-5c3d-b874-c616a28f870b", "contact": { "email": "nmason@bulkherbshop.com", "firstName": "Nicholas", "lastName": "Mason", "phone": "541 479 3602" }, "received": 1380845042, "updated": 1385512383 }

Directory Statuses

#

| status | description | details | |——–|————-|———| | 10 | Received | The listing has been accepted by our system, but no work has been done | | 11 | In Progress | The listing is currently being fulfilled | | 12 | Listing Claimed - Credentials Provided | We have received credentials for a listing that was previously “Claimed Listing” (40) and can retry fulfillment | | 20 | Submitted and Published | The listing is complete | | 22 | Ongoing Submission | The listing is complete and will continue to be resubmitted regularly | | 30 | Submitted and Awaiting Publishing | The listing has been submitted to the publisher but is not yet live (deprecated) | | 31 | Awaiting Phone Verification | The publisher requires phone verification from the business to publish | | 32 | Awaiting Postcard Verification | The publisher requires postcard verification from the business to publish | | 34 | Pending Client Review of Data | We are unable to fulfill the listing with the information provided. Awaiting update from client. | | 35 | Data Partially Accepted By Directory | The publisher has accepted a portion of the data submitted and is reviewing the rest of the submission | | 40 | Claimed Listing | The listing is already in a claimed state. We cannot proceed without credentials. | | 41 | Client Declined Phone Verification | The merchant has explicitly declined phone verification | | 42 | Client Declined Postcard Verification | The merchant has explicitly declined postcard verification | | 50 | Directory Temporarily Unavailable | The publisher site is temporarily down or otherwise unavailable | | 51 | Directory No Longer Active | The publisher site is no longer active | | 52 | Directory Blocking Third-party Listings | The publisher site is not accepting listings created on behalf of the merchant | | 53 | Directory Temporarily Broken | The publisher site is non-functioning for an extended period of time | | 54 | Directory Not Accepting New Listings | The publisher site is actively refusing new listings | | 55 | Skipped by Client Request | The merchant has explicitly requested that the listing not be fulfilled | | 56 | Submission Attempts Exhausted | We have tried multiple times to claim a listing without success | | 60 | Pending SysOps Review | The listing has been flagged for manual review | | 61 | Pending Corporate Contact Verification | The listing is dependent on corporate verification |

POST /v1/local-business Submitting a Business

Submitting a Location

Submitting a location is the equivalent of placing an order. The API request contains the information about the business (name, address, phone number, description, hours of operation, etc.), the primary contact for the location (unpublished), the products/packages to be fulfilled, some white-labelling options, and optionally a user account to associate with the location for dashboard access.

External ID

We provide a pass-through parameter for partners to specify their unique ID for each location. This external ID will be passed back in all API-based communcations about a location. The use of an external ID is required, and must be unique within the partner’s account.

Universally Unique Identifier (UUID)

All locations are identified by a UUID (defined in RFC 4122). A UUID will be created for each location received and passed back in the response. An example of a UUID is: 94c459ea-7064-4ff0-8da1-43b669bf62f6.

Phone Verification and “On Behalf Of”

There are a number of directories that require phone verification in order for a listing to publish and become owner-verified. To complete this verification process, a phone verification specialist (PVS) will trigger telephone calls to the business location phone number. That phone call (typically a robo-call) will either provide a PIN over the phone which must be communciated to the PVS in real time, or there will be a prompt for the merchant to enter a PIN, which will be provided by the PVS.

To facilitate this, A PVS must be on a phone call or an online chat with an employee at the business location. We provide the option to our partners to request that a PVS call “on behalf of” a business or entity. The text provided in this field will be used verbatim in any communication with the location to maintain a white-labelled experience. Any online interaction (email, website) will be conducted in a similar manner.

Packages and Products

Depending upon your partner relationship, either the “packages” or “products” nodes will be used within “order”. If the partner agreement was based around one or more packages, those IDs will be provided to you; for those with product-based relationships, a list of available products will be provided to you prior to integration.

Only one of “packages” or “products” may be specified within a request.

Updating Business Data

When sending updated business data (after the initial submission), essentially the same request can be triggered with any number of data fields provided. In other words, if there is only a change to the business’ phone number, a request may be made that only includes the phone number; all other data will remain untouched.

Please note that any content within the “order” or “user” blocks (detailed below) will be ignored in reubsmissions.

Request

Request Data Format

When preparing to submit business information to the API server, data must be packaged into JSON objects and organized in the following way. There are three main sections of data:

  • business: all details about the business location, as well as related meta data.
  • order: details about the services being requested (generally a list of product or package skus).
  • contact: unpublished data about the primary contact at the location, typically so that we know who to ask for when performing phone verification.

It is possible to submit multiple businesses within one call. Simply comma-separate individual location entries.

Fields

Top Level

| field | type( length ) | required | options | description | |——-|:————–:|:——–:|:——-:|————-| | externalId | string(36) | * |-| The partner’s unique identifier for the location | | audit | boolean | - |-| Must be set if this should only be run as an audit. | | order | object | * |-| Details related to the requested fulfillment of the location | | business | object | * |-| The location’s NAP+W and any associated data | | contact | object | * |-| The primary contact at the location. This ideally is somebody aware of the work being performed. Any data contained herein will NOT be published. |

Order Object

| field | type( length ) | required | options | description | |——-|:————–:|:——–:|:——-:|————-| | packages | integer | * |-| id representing package to apply to location. These will be provided prior to integration. | | products | array | * |-| Array of string names representing products available to partner. These will be provided prior to integration. | | termsAccepted | boolean | - | true| Must be true to complete an order. Indicates acceptance of TOS. | | onBehalfOf | string(255) | - |-| The business or entity name a phone verification specialist will use when calling on behalf of an organization. |

Contact Object

| field | type( length ) | required | options | description | |——-|:————–:|:——–:|:——-:|————-| | firstName | string(40) | * |-| First name of the primary contact at the physical location. For data- or verification-related issues. No special characters.| | lastName | string(80) | * |-| Last name of the primary contact at the physical location. No Special characters | | fullName | string(120) | - |-| See “FullName Logic” below.| | email | string(80) | * |-| Email address of the primary contact at the physical location. | | phone | string(10) | * |-| Phone number of the primary contact. |

User Object (Optional)

| field | type( length ) | required | options | description | |——-|:————–:|:——–:|:——-:|————-| | username | string(100) | * |-| unique email address for this user. We recommend USER@yourdomain.com to reduce errors regarding uniqueness.| | password | string(8:40) | * |-| A password for this user. |

*The User object should only be supplied if you would like to assign this location to an additional user besides the user associated w/ your api credentials.

This is primarily important if you are also using our Dashboard Product.

FullName Logic

  • If we receive a “fullName” and not a “firstName” and “lastName”, we will split any content on the first space. (E.g. “James van de Kamp” will be “James” “van de Kamp”; “Le Bron James” will be “Le” “Bron James”.)
  • If the fullName does not have any spaces, we will choose a random firstName and use fullName as lastName.
  • If we receive a complete first/last in additional to a full, we will prioritize the first/last.
  • If we receive an incomplete first/last in addition to a full, we will prioritize the full.

Description Rules

  • At a minimum please provide the descriptionLong in accordance with description formatting rules.
  • The enhancement process will use the descriptionLong to generate the descriptionMedium and descriptionShort.
  • If you provide descriptionMedium and/or descriptionShort we will use exactly those values, however they may be reviewed for grammatical errors.
  • Please make sure that all descriptions (descriptionLong, descriptionMedium, descriptionShort) adhere to the character limits expressed in “Business Object - Type (length)”.
  • Provided descriptions (short, medium, long) that are longer than the defined character limits, will be rejected. You will need to revise the descriptions to meet the specified character lengths prior to resubmitting your data.

Description Formating Rules

  • No Html or special characters. They will be stripped out.
  • Human readable.

Business Object

| field | type( length ) | required | options | description | |——-|:————–:|:——–:|:——-:|————-| | name | string(100) | * |-| The full name of the business as it should be published. “Doing Business As Name - Commonly known as name. | || | || name: Cannot be provide in ALL CAPS, (except for abreviations).| || | || name: Cannot be a website. Business must have a physical store front, or be a service area business. (NO online-only businesses)| | street | string(255) | * |-| The street address of the physical company. This can include a suite number | | privateStreet | boolean | - |-| Indicates whether or not the street address should be published (defaults to false if not specified). | | city | string(255) | * |-| City of the physical address. Alpha values only (period, hyphen and apostrophe allowed) | | state | string(2) | * |-| State of the physical address. Should be state abbreviation, not spelled out. US States only (DC Included)}| | postalCode | string(5) | * |-| Zip code for the physical address. Zip code must be 5 digit (with leading zero if necessary). Numeric values only.| | countryCode | string(2) | - |-| The 2-digit ISO 3166-1-alpha-2 country code (currently only US is accepted). | | phoneLocal | string(10) | * |-| The 10-digit local (non-toll-free) phone number of the location. This number will be used for verification purposes and must ring at the business location. No extensions are allowed. | | phoneTollFree | string(10) | - |-| The 10-digit toll-free phone number of the location. | | fax | string(10) | - |-| The 10-digit fax number of the location. | | website | string(255) | - |-| Well-formed URL of the company’s website (strongly recommended). ex: http://www.trustedsearch.org | | email | string(80) | - |-| Business contact email address (to be published). ex: info@yoursitehere.com | | slogan | string(80) | - |-| A short motto or slogan for the business. ex: “A diamond is forever.” | | descriptionLong | string(5000) | - |-| A long description for the business. *(see description rules) | | descriptionMedium | string(200) | - |-| A medium-length description for the business. *(see description rules)| | descriptionShort | string(140) | - |-| A short description for the business. *(see description rules) | | keywords | string(255) | - |-| A comma-separated list of keywords that are relevent to the business (for SEO purposes). | | paymentMethods | array | - | ‘Cash’,’Check’,’MasterCard’,’VISA’,’American Express’,’Discover’,’PayPal’,’Invoice’| An array of payment methods the business accepts. Options: ‘Cash’,’Check’,’Mastercard’,’VISA’,’American Express’,’Discover’,’PayPal’,’Invoice’ | | professionalAssociations | array | - | - | An array of professional associations. Example: Better [‘Business Bureau’, ‘Local Search Association’, ‘Chicago Bar Association’]| | yearEstablished | string(4) | - |-| Year business was established. | | numberEmployees | int | - |-| The number of employees at the physical location. | | productsOffered | string(255) | - |-| List the products and services that you offer. Free Text field, use a comma to separate multiple values. | | languagesSpoken | string(100) | - |-| Languages spoken. Free Text field, use a comma to separate multiple values. ex: english,spanish | | hoursOfOperation | string(255) | - |-| The business’ hours of operation. ex: “MF08001700H” for Mon-Fri 8:00am-5:00pm | | logoUrl | string(255) | - |-| Well-formed URL of the business logo. (JPG, PNG, GIF) | | logoSquaredUrl | string | - |-| Well-formed URL for a square version of the business logo. (JPG, PNG, GIF) | | imageUrl | array(5) :: string(255) per element | - |-| An array of well-formed URLs of images for the business. (JPG, PNG, GIF) | | videoUrl | string(128) | - |-| A youtube.com video URL for the business. ex: http://www.youtube.com/watch?v=VIrBecB746c |

Requests should be made with the POST method to https://[api_endpoint]/v1/local-business.

[
   {
      "externalId":"ABC12345678",
      "order":{
         "onBehalfOf":"Partner ABC",
         "packages":555,
         "termsAccepted" : true,
         "products":[
            "see note above"
         ]
      },
      "contact":{
         "firstName":"Bob",
         "lastName":"Jones",
         "email":"bob@domain.com",
         "phone":"8005551234"
      },
      "user":{
         "username":"BobJones@yourdomain.com",
         "password":"somethingyouwillforget",
      },
      "business":{
         "name":"Bob's Fish Tacos",
         "street":"247 Ocean Way",
         "city":"San Luis Obispo",
         "state":"CA",
         "postalCode":"93401",
         "phoneLocal":"(805) 555-9876",
         "phoneTollFree":"(800) 555-4567",
         "fax":"(805) 555-0142",
         "website":"http://www.bobsfishtacos.com",
         "email":"greatfood@bobsfishtacos.com",
         "slogan":"The freshest Mexican food you'll ever eat.",
         "descriptionLong":"A really long description (maximum 1000 characters)",
         "descriptionMedium":A description that is no longer than 200 characters.",
         "descriptionShort":"A description that is no longer than 140 characters.",
         "keywords":"fish taco, mexican food, salsa",
         "paymentMethods":[
            "mastercard",
            "visa",
            "discover",
            "amex",
            "check",
            "cash"
         ],
         "yearEstablished":"2011",
         "numberEmployees":"7",
         "productsOffered":"mexican food, fish tacos",
         "languagesSpoken":"english, spanish",
         "hoursOfOperation":"MF08001700H",
         "logoUrl":"http://www.bobsfishtacos.com/logo.jpg",
         "logoSquareUrl":"http://www.bobsfishtacos.com/logo.jpg",
         "imageUrl":[
            "http://images.bobsfishtacos.com/100702_5009d194859.jpg",
            "http://images.bobsfishtacos.com/100702_5009d195016.jpg",
            "http://images.bobsfishtacos.com/100702_5009d19577a.jpg",
            "http://images.bobsfishtacos.com/100702_5009ccdf005.jpg",
            "http://images.bobsfishtacos.com/100702_5009ccdf4d0.jpg"
         ],
         "videoUrl":[
            "http://www.youtube.com/watch?v=cXuTiAHdxTg"
         ]
      }
   },{...}
]

Response

Sends back an array of JSON objects, one for each submitted location containing the status, externalId, and assigned UUID.

Status: 200 OK [ { "externalId":"ABC12345678", "uuid":"94c459ea-7064-4ff0-8da1-43b669bf62f6", "status":201 },... ]

Status codes and their meanings

The status will indicate the success of that particular location:

  • 200 indicates general success
  • 400 indicates an error in the request
  • 401 indicates an authentication error

GET /v2/locations/:id/listings Listings by Location

Retrieving your listings based upon a location id.

Request

Requests should be made with the GET method to https://[api_endpoint]/v2/locations/:id/listings

Ex: PUT https://[api_endpoint]/v2/locations/c13bdr7y-4024-58be-8c23-b4782f309ad0/listings

Response

{
   "status":"success",
   "code":200,
   "message":"",
   "messages":[],
   "data":[
      {
         "id":"1794d5ee-52c2-4375-988d-a0c245a22d20",
         "location_id":"c13bdr7y-4024-58be-8c23-b4782f309ad0",
         "product_id":31,
         "listing_status_id":1,
         "username":"arandomusername@somedomain.com",
         "password":"abc123927",
         "security_answer_1":"chair",
         "security_answer_2":"connection",
         "fulfillment_status_id":20,
         "url":null,
         "deleted_at":null,
         "created_at":"2014-01-23 23:01:03",
         "updated_at":"2014-03-17 23:23:06",
         "external_id":null,
         "notes":null
      },
      {
         "id":"ec1a2d02-5016-429f-ab31-f213a0a0587b",
         "location_id":"c13bdr7y-4024-58be-8c23-b4782f309ad0",
         "product_id":36,
         "listing_status_id":1,
         "username":"arandomusername",
         "password":"abc123927",
         "security_answer_1":"chair",
         "security_answer_2":"connection",
         "fulfillment_status_id":30,
         "url":"http:\/\/www.abcd.com\/m\/yourte-Tree-Service-LLC-60618958",
         "duplicate_url":[],
         "deleted_at":null,
         "created_at":"2014-01-23 23:01:03",
         "updated_at":"2014-03-17 23:23:06",
         "external_id":null,
         "notes":null
      },
      {
         "id":"00022220-4587-4020-88b2-057f8bca92e3",
         "location_id":"c13bdr7y-4024-58be-8c23-b4782f309ad0",
         "product_id":40,
         "listing_status_id":1,
         "username":"arandomusername@somedomain.com",
         "password":"abc123927",
         "security_answer_1":"chair",
         "security_answer_2":"connection",
         "fulfillment_status_id":30,
         "url":null,
         "duplicate_url":[],
         "deleted_at":null,
         "created_at":"2014-01-23 23:01:03",
         "updated_at":"2014-03-17 23:23:06",
         "external_id":null,
         "notes":null
      },
      {
         "id":"001f95c6-ba32-4024-8640-a923c41ee387",
         "location_id":"c13bdr7y-4024-58be-8c23-b4782f309ad0",
         "product_id":43,
         "listing_status_id":1,
         "username":"arandomusername@somedomain.com",
         "password":"abc123927",
         "security_answer_1":"chair",
         "security_answer_2":"connection",
         "fulfillment_status_id":43,
         "url":"http:\/\/www.hijklymno.com\/m\/yourte-Tree-Service-LLC-60618958",
         "duplicate_url":[],
         "deleted_at":null,
         "created_at":"2014-01-23 23:01:03",
         "updated_at":"2014-03-28 08:01:30",
         "external_id":null,
         "notes":null
      }
   ]
}

PUT /v2/hook-subscriptions/:id Update Subscription

Updating a hook subscription

Request

Requests should be made with the PUT method to https://[api_endpoint]/v2/hook-subscriptions/:id.

Ex: ``` PUT https://[api_endpoint]/v2/hook-subscriptions/5f091ee8-255c-40c9-b985-9afa4cd6de0b

{ “target_url”: “http://api.acme.com/trustedsearch/location-updates”, “hook”: “location.updates” } ```

Response

{
  "code": 200,
  "data": {
    "created_at": "2014-03-04 22:48:08",
    "hook_id": 1,
    "id": "5f091ee8-255c-40c9-b985-9afa4cd6de0b",
    "target_url": "http://api.acme.com/trustedsearch/location-updates",
    "updated_at": "2014-03-04 23:19:17",
    "user_id": 27
  },
  "message": "",
  "status": "success"
}

GET /v2/hook-subscriptions/:id Show a Subscription

Show a hook subscription

Request

Requests should be made with the GET method to https://[api_endpoint]/v2/hook-subscriptions/:id.

Ex: GET https://[api_endpoint]/v2/hook-subscriptions/5f091ee8-255c-40c9-b985-9afa4cd6de0b

Response

{
  "code": 200,
  "data": {
    "created_at": "2014-03-04 22:48:08",
    "hook_id": 1,
    "id": "5f091ee8-255c-40c9-b985-9afa4cd6de0b",
    "target_url": "http://api.acme.com/trustedsearch/location-updates",
    "updated_at": "2014-03-04 23:19:17",
    "user_id": 27
  },
  "message": "",
  "status": "success"
}

GET /v2/hook-subscriptions/:id Show all Subscriptions

Get a single subscription

Request

Requests should be made with the GET method to https://[api_endpoint]/v2/hook-subscriptions

Ex: GET https://[api_endpoint]/v2/hook-subscriptions

Response

{
  "code": 200,
  "data": [
    {
      "created_at": "2014-03-04 23:40:37",
      "hook_id": 2,
      "id": "20d01ac1-af2e-4c58-8e02-236c723ccfde",
      "target_url": "http://api.acme.com/trustedsearch/location-audit",
      "updated_at": "2014-03-04 23:40:37",
      "user_id": 27
    },
    {
      "created_at": "2014-03-04 22:48:08",
      "hook_id": 1,
      "id": "5f091ee8-255c-40c9-b985-9afa4cd6de0b",
      "target_url": "http://api.acme.com/trustedsearch/location-updates",
      "updated_at": "2014-03-04 23:19:17",
      "user_id": 27
    }
  ],
  "message": "",
  "status": "success"
}

DELETE /v2/hook-subscriptions Delete Subscription

Destroy hook subscription

Request

Requests should be made with the DELETE method to https://[api_endpoint]/v2/hook-subscriptions/:id

Ex: DELETE https://[api_endpoint]/v2/hook-subscriptions/5f091ee8-255c-40c9-b985-9afa4cd6de0b

Response

{
  "code": 200,
  "data": [
    
  ],
  "message": "Successfully removed subscription : 5f091ee8-255c-40c9-b985-9afa4cd6de0b",
  "status": "success"
}

POST /v2/hook-subscriptions Create Subscription

Creating a new hook-subscription

Request

Requests should be made with the POST method to https://[api_endpoint]/v2/hook-subscriptions.

Ex: ``` POST https://[api_endpoint]/v2/hook-subscriptions

{ “target_url”: “http://api.acme.com/trustedsearch/location-update”, “hook”: “location.updates” } ```

Response

{
  "code": 200,
  "data": {
    "created_at": "2014-03-04 22:48:08",
    "hook_id": 1,
    "id": "5f091ee8-255c-40c9-b985-9afa4cd6de0b",
    "target_url": "http://api.acme.com/trustedsearch/location-update",
    "updated_at": "2014-03-04 22:48:08",
    "user_id": 27
  },
  "message": "",
  "status": "success"
}

Notes

  • If you create multiple subscriptions for the same hook, we will notify you multiple times. This allows for you to setup different endpoints for the same hook if needed.

GET /v2/hooks Available Hooks

Hooks:

A call to this api, will provide you with a list of all the available REST hooks you can subscribe to.

field type( length ) required options description
         

Request

Requests should be made with the GET method to https://[api_endpoint]/v2/hooks.

Response

Status: 200

{
   "status":"success",
   "code":200,
   "message":"",
   "data":[
      {
         "id":1,
         "name":"location.updates",
         "description":"Data for the location has been update within TRUSTEDSearch ecosystem.",
         "product_id":null,
         "created_at":"0000-00-00 00:00:00",
         "updated_at":"0000-00-00 00:00:00"
      },
      {
         "id":2,
         "name":"location.audit",
         "description":"Results of an audit.",
         "product_id":63,
         "created_at":"0000-00-00 00:00:00",
         "updated_at":"0000-00-00 00:00:00"
      }
   ]
}

About Hooks

Hooks

Rather than needing to poll our system for changes to your locations or products, you can be notified about events that happen in our system by subscribing to hooks.

You might then use these notifications on your end to do things like:

WHY - You might want to use hooks.

  • Update your system.
  • Notify your customers about status updates.
  • Notify you customers about actions they need to perform.
  • Notify members of your company about actions they need to perform.

WHAT - Hooks are available

### location.audit ### business.updates

A notification sent when an audit has completed. ### business.updates A notification sent anything in our system changes for a given business.

Usage
  • Subscribe to location.audit hook
  • Submit an order for a location via the / POST v1/local-business API:
    • The package you specify must include the audit product.(Talk w/ your sales rep for this.)
    • The audit flag must be set to true.
  • After our system finishes the audit, a hook will be triggered and you will be notified at the resource you defined in your subscription.
Notes
  • This is the only notification you will receive, however you can queue up another audit for a given location(Limits and Throttling of requests may apply)
  • If there is an error, either update your system or disregard it. Regardless of the reason for an error, results can change on a daily basis as we continually improve our audit match algorithm and update our bots when a publisher makes a change the layout of their site.

Upcoming Hooks

  • location.report

HOW - to setup hooks

Integration is easy, lets say you want to know about changes that happen to a location.

Step 1 - Configure your servers

Setup a resource on your servers: https://api.acme.com/trustedsearch/location-updates

This resource should expect a POST of JSON data.

If your subscribing to business.updates the JSON data will be in the same format as that of the GET v1/directory-listings api call.

Step 2 - Subscribe

Subscribe to the business.updates hook via the API.

Step 3 - What happens now.

When ever any location data on our end changes, we queue up a process that will notify any subscribers associated with that location.