message Region { optional string type=1; optional string latitude=2; optional string longitude=3; optional string defaultradius=4; } message Histogram { optional string name=1; repeated HistogramItem detail=2; } message HistogramItem { optional string name=1; optional int32 count=2; optional string url=3; repeated int32 tag_ids=4; } message Error { repeated string error = 1; } message Address { optional string street=1; optional string city=2; optional string state=3; optional string postalCode=4; } message Tag { optional int32 id=1; optional string name=2; } message OfferSearchResponse { optional int32 lasthit=1; optional int32 firsthit=2; optional int32 totalhits=3; optional int32 page=4; optional int32 rpp=5; optional string queryid=6; optional string uri=7; optional string didyoumean=8; repeated Region regions=9; repeated Offer offers=10; repeated Histogram histograms=11; } message Offer { optional int32 id=1; optional string reference_id=2; optional string impression_id=3; optional string title=4; optional string description=5; optional int32 popularity=6; optional string redemption_type=7; optional int64 startdate=8; optional int64 expirydate=9; optional string image_url=10; optional string content_provider_id=11; optional string content_provider_image_url=12; optional string content_provider_text=13; repeated OfferLocation location_info=14; optional int32 redemption_type_id=15; optional string redemption_code=16; optional string terms=17; } message OfferLocation { optional int32 id=1; optional int32 infousa_id=2; optional string image_url=3; optional string name=4; optional float rating=5; optional Address address=6; optional string phone=7; optional string latitude=8; optional string longitude=9; optional string business_hours=10; repeated Tag tags=11; }