An API for opening hours.

Over 100 documented endpoints: search by distance, the live open or closed status, and every location's details in 33 languages. The widgets read the same data, so your app and your website always agree.

documented endpoints
100+
searchable documentation sections
680+
languages the API answers in
33

$GET /api/v2/shops?search=bakery&latitude=46.52&longitude=6.63&radius_km=5

200application/json

{  "status": "success",  "data": [    {      "id": 123,      "sid": "shop_xyz789",      "name": "Boulangerie Petit Cadran",      "town": { "name": "Lausanne", "postcode": "1003" }    },    ...  ]}

What you can work with

Locations, hours and content, behind one API.

Shops

Create, read, update and delete locations, search them, find them by distance and read their history of changes.

GET /api/v2/shops

Search works across all of them: autocomplete, distance and several filters at once.

Pleasant to build with

Predictable, documented and multilingual.

  • Predictable REST conventions and one response format
  • Clear validation errors that say what to fix
  • Pagination for long lists
  • Answers in each location's own time zone
  • Translations, with a fallback when one is missing
  • Rate limiting, and CORS for browser apps
  • Interactive Swagger documentation with code examples, over 680 searchable sections

Interactive API documentation

  • GET/api/v2/shopsSearch shops
  • POST/api/v2/shopsCreate a new shop
  • GET/api/v2/shops/by-town/{townId}List shops by town
  • GET/api/v2/shops/sid/{sid}Get shop by SID
  • PUT/api/v2/shops/sid/{sid}Update shop by SID
  • GET/api/v2/search/townsSearch towns
  • GET/api/v2/shops/pid/{pid}Get shop by PID
  • DELETE/api/v2/shops/sid/{sid}Delete shop by SID

200application/json

{
  "status": "success",
  "data": [
    {
      "id": 123,
      "sid": "shop_xyz789",
      "version": 4,
      "locale": "fr",
      "name": "Boulangerie Petit Cadran",
      "description": "Pain au levain",
      "url": "https://example.com",
      "town": {
        "name": "Lausanne",
        "postcode": "1003",
        "translations": {
          "de": { "name": "Lausanne" },
          "it": { "name": "Losanna" }
        }
      }
    }
  ]
}

What you can build with it

Bring the hours into anything you build.

  • Mobile apps

    Location data, photos, reviews and live status for an app, without running your own database.

  • Websites and directories

    Your own pages and listings, built on the same data the widgets show.

  • Store finders

    Search by distance and an "open now" answer for a map of your own design.

  • Your other systems

    Keep OpeningTimes in step with your other tools by reading and writing through the same API.

Building something with opening hours?

Tell us what you are building. We will walk you through the API and its documentation, and set up your account.

We reply within 24 hours on working days.