Welcome to the TRUSTEDSearch developer docs.

Contact support@trustedsearch.org for integration help.

Getting Started

Getting Started.

Company Website: http://trustedsearch.org/

Sandbox & Production Environments

There are two endpoints / environments.

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

Standardized Hours Format

This is specified in blocks of 11 characters in form of DDHHMMHHMMT, where

  • D = First day of week for this time period
  • D = Last day of week for this time period
  • HHMM = Opening time
  • HHMM = Closing time
  • T = Type of time period

Multiple blocks can be specified. No separator should be used.

An example of a block is “MF09001700H”. This indicates that the hours of operation are Monday through Friday, from 9:00am to 5:00pm.

An example of multiple blocks is “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. Alternatively, the following codes can be used instead of exact times:

  • ALLD All Day
  • DAYS Daytime
  • ERLY Early Morning
  • MORN Morning
  • AFTR Afternoon
  • EVNG Evening
  • LATE Late Evening
  • NITE Night
  • NONE Nothing Specified
  • WKLY Weekly
  • AFHR After Hours
  • SEAS Seasonal

An example of non-integer time periods would be “MFALLDALLDA”, which means that the business is open Monday-Friday all day by appointment.

Another would be “SNNONENONEH” 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

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

Iframing 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: www.localsearchdashboard.com/partner?token=YOURTOKENHERE

So just add this into your html:

<iframe src="www.localsearchdashboard.com/partner?token=abcdef12345"></iframe>

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

Service Status / UpTime

It is our goal to maintain high availability.

In an effort to be completly transparent we provide you with our service status page.

You can check the status here: status.trustedsearch.org

For your convienience, we have loaded that page here also.

Hours of Operation

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.

Authenticate

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 type description
10 informational Received
11 informational In Progress
20 success Submitted and Published
21 success Submitted via InfoGroup
30 pending Submitted and Awaiting Publishing
31 pending Awaiting Phone Verification
32 pending Awaiting Postcard Verification
33 pending Awaiting Directory Account Activation
40 client recommendations Claimed Listing
41 client recommendations Client Declined Phone Verification
42 client recommendations Client Declined Postcard Verification
43 client recommendations Phone Verification Attempts Exhausted
44 client recommendations Postcard Verification Attempts Exhausted
50 fulfillment blocked Directory Temporarily Unavailable
51 fulfillment blocked Directory No Longer Active
52 fulfillment blocked Directory Blocking Third-party Listings
53 fulfillment blocked Directory Temporarily Broken
54 fulfillment blocked Directory Not Accepting New Listings
55 fulfillment blocked Skipped by Client Request
56 fulfillment blocked Submission Attempts Exhausted

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 Hook Subscriptions: Update

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 Hook Subscriptions: Show

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 Hook Subscriptions: Index

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-subscriptionsz

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 Hook Subscriptions: Destroy

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 Hook Subscriptions: Create

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 Hooks: Get a list of hooks that can be subscribed to.

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"
      }’
   ]
}

/v2/about-hooks Hooks: About

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.