openapi: 3.0.3
info:
title: 'Pulse API Documentation'
description: 'Welcome to the documentation for the Pulse API. Here you will be able to find all of our available resources and how to use them. To use our API, all endpoints require a token that can be created when you login to Pulse.'
version: 1.0.0
servers:
-
url: 'https://pulsereviews.io'
tags:
-
name: Company
description: ''
-
name: 'Google Locations'
description: 'Endpoints for managing Google locations on Pulse'
-
name: Health
description: ''
components:
securitySchemes:
default:
type: http
scheme: bearer
description: 'You can generate API tokens within Pulse when logged in. Click on your name in the bottom left, then click API Tokens, give your token a name and then click Save. Your token will only be shown that one time, so make sure to copy it there and then. Tokens can be revoked at any time.'
security:
-
default: []
paths:
/api/v1/company:
get:
summary: Show
operationId: show
description: ' This endpoint will show details of the company that the api token is for.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
name: 'Thomas Ltd'
locations: []
properties:
data:
type: object
properties:
name:
type: string
example: 'Thomas Ltd'
locations:
type: array
example: []
401:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
message: Unauthenticated
properties:
message:
type: string
example: Unauthenticated
403:
description: Forbidden
content:
application/json:
schema:
type: object
example:
message: 'This action is unauthorized.'
properties:
message:
type: string
example: 'This action is unauthorized.'
tags:
- Company
/api/v1/locations/google:
get:
summary: List
operationId: list
description: ' This endpoint will list all Google locations tied to the user.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: '65256199'
name: 'Harrison Ltd'
googleRating: 3.2
preciseGoogleRating: 3.2366
reviewsCount: 152
site: baker.com
address: "41 Wilson Keys\nDuncanhaven\nOL12 7TX"
regularHours:
MONDAY:
open: '8:00'
close: '17:00'
TUESDAY:
open: '8:00'
close: '17:00'
WEDNESDAY:
open: '8:00'
close: '21:00'
THURSDAY:
open: '8:00'
close: '21:00'
FRIDAY:
open: '8:00'
close: '21:00'
SATURDAY:
open: '8:00'
close: '17:00'
SUNDAY:
open: '10:00'
close: '16:00'
specialHours:
'2024-12-25':
status: closed
open: null
close: null
'2024-12-24':
status: open
open: '10:00'
close: '15:00'
-
id: '6140039'
name: 'Richards Ltd'
googleRating: 4.6
preciseGoogleRating: 4.5843
reviewsCount: 171
site: brown.com
address: "Flat 90z\nAva Road\nEast Keith\nFK2 8DB"
regularHours:
MONDAY:
open: '8:00'
close: '17:00'
TUESDAY:
open: '8:00'
close: '17:00'
WEDNESDAY:
open: '8:00'
close: '21:00'
THURSDAY:
open: '8:00'
close: '21:00'
FRIDAY:
open: '8:00'
close: '21:00'
SATURDAY:
open: '8:00'
close: '17:00'
SUNDAY:
open: '10:00'
close: '16:00'
specialHours:
'2024-12-25':
status: closed
open: null
close: null
'2024-12-24':
status: open
open: '10:00'
close: '15:00'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: Previous
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: Next
page: null
active: false
path: /
per_page: 15
to: 2
total: 2
properties:
data:
type: array
example:
-
id: '65256199'
name: 'Harrison Ltd'
googleRating: 3.2
preciseGoogleRating: 3.2366
reviewsCount: 152
site: baker.com
address: "41 Wilson Keys\nDuncanhaven\nOL12 7TX"
regularHours:
MONDAY:
open: '8:00'
close: '17:00'
TUESDAY:
open: '8:00'
close: '17:00'
WEDNESDAY:
open: '8:00'
close: '21:00'
THURSDAY:
open: '8:00'
close: '21:00'
FRIDAY:
open: '8:00'
close: '21:00'
SATURDAY:
open: '8:00'
close: '17:00'
SUNDAY:
open: '10:00'
close: '16:00'
specialHours:
'2024-12-25':
status: closed
open: null
close: null
'2024-12-24':
status: open
open: '10:00'
close: '15:00'
-
id: '6140039'
name: 'Richards Ltd'
googleRating: 4.6
preciseGoogleRating: 4.5843
reviewsCount: 171
site: brown.com
address: "Flat 90z\nAva Road\nEast Keith\nFK2 8DB"
regularHours:
MONDAY:
open: '8:00'
close: '17:00'
TUESDAY:
open: '8:00'
close: '17:00'
WEDNESDAY:
open: '8:00'
close: '21:00'
THURSDAY:
open: '8:00'
close: '21:00'
FRIDAY:
open: '8:00'
close: '21:00'
SATURDAY:
open: '8:00'
close: '17:00'
SUNDAY:
open: '10:00'
close: '16:00'
specialHours:
'2024-12-25':
status: closed
open: null
close: null
'2024-12-24':
status: open
open: '10:00'
close: '15:00'
items:
type: object
properties:
id:
type: string
example: '65256199'
name:
type: string
example: 'Harrison Ltd'
googleRating:
type: number
example: 3.2
preciseGoogleRating:
type: number
example: 3.2366
reviewsCount:
type: integer
example: 152
site:
type: string
example: baker.com
address:
type: string
example: "41 Wilson Keys\nDuncanhaven\nOL12 7TX"
regularHours:
type: object
properties:
MONDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '17:00'
TUESDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '17:00'
WEDNESDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '21:00'
THURSDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '21:00'
FRIDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '21:00'
SATURDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '17:00'
SUNDAY:
type: object
properties:
open:
type: string
example: '10:00'
close:
type: string
example: '16:00'
specialHours:
type: object
properties:
'2024-12-25':
type: object
properties:
status:
type: string
example: closed
open:
type: string
example: null
nullable: true
close:
type: string
example: null
nullable: true
'2024-12-24':
type: object
properties:
status:
type: string
example: open
open:
type: string
example: '10:00'
close:
type: string
example: '15:00'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
nullable: true
next:
type: string
example: null
nullable: true
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: Previous
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: Next
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
nullable: true
label:
type: string
example: Previous
page:
type: string
example: null
nullable: true
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 15
to:
type: integer
example: 2
total:
type: integer
example: 2
401:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
message: Unauthenticated
properties:
message:
type: string
example: Unauthenticated
tags:
- 'Google Locations'
'/api/v1/locations/google/{googleLocation_google_id}':
get:
summary: Show
operationId: show
description: ' This endpoint will show a specific Google location, based on Google ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: '94733922'
name: 'Khan Ltd'
googleRating: 3.9
preciseGoogleRating: 3.8581
reviewsCount: 162
site: morris.biz
address: "47 Collins Burgs\nHollyborough\nG77 6DL"
regularHours:
MONDAY:
open: '8:00'
close: '17:00'
TUESDAY:
open: '8:00'
close: '17:00'
WEDNESDAY:
open: '8:00'
close: '21:00'
THURSDAY:
open: '8:00'
close: '21:00'
FRIDAY:
open: '8:00'
close: '21:00'
SATURDAY:
open: '8:00'
close: '17:00'
SUNDAY:
open: '10:00'
close: '16:00'
specialHours:
'2024-12-25':
status: closed
open: null
close: null
'2024-12-24':
status: open
open: '10:00'
close: '15:00'
properties:
data:
type: object
properties:
id:
type: string
example: '94733922'
name:
type: string
example: 'Khan Ltd'
googleRating:
type: number
example: 3.9
preciseGoogleRating:
type: number
example: 3.8581
reviewsCount:
type: integer
example: 162
site:
type: string
example: morris.biz
address:
type: string
example: "47 Collins Burgs\nHollyborough\nG77 6DL"
regularHours:
type: object
properties:
MONDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '17:00'
TUESDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '17:00'
WEDNESDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '21:00'
THURSDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '21:00'
FRIDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '21:00'
SATURDAY:
type: object
properties:
open:
type: string
example: '8:00'
close:
type: string
example: '17:00'
SUNDAY:
type: object
properties:
open:
type: string
example: '10:00'
close:
type: string
example: '16:00'
specialHours:
type: object
properties:
'2024-12-25':
type: object
properties:
status:
type: string
example: closed
open:
type: string
example: null
nullable: true
close:
type: string
example: null
nullable: true
'2024-12-24':
type: object
properties:
status:
type: string
example: open
open:
type: string
example: '10:00'
close:
type: string
example: '15:00'
401:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
message: Unauthenticated
properties:
message:
type: string
example: Unauthenticated
403:
description: Forbidden
content:
application/json:
schema:
type: object
example:
message: 'This action is unauthorized.'
properties:
message:
type: string
example: 'This action is unauthorized.'
tags:
- 'Google Locations'
patch:
summary: Update
operationId: update
description: " This endpoint can be used to update a Google location. Currently, the Pulse API can only be\n used to update Regular and Special hours. This endpoint is subject to Google rate limits so make sure you allow\n for plenty of time for the update to complete."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
payload:
title: 'Davis Ltd'
profile:
description: 'Dolor aperiam voluptate sit voluptatem. Nemo quos nam qui natus omnis eos itaque. Voluptatem placeat a sed quas tempora sit accusamus.'
phoneNumbers:
primaryPhone: '0349 245 9232'
addititionalPhones: []
websiteUrl: fox.com
storefrontAddress:
postalCode: 'W10 6DY'
locality: Quentinport
addressLines:
- '1 Cooper Hill'
- ''
- ''
- ''
- ''
regionCode: GB
regularHours:
periods:
-
openDay: MONDAY
closeDay: MONDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: TUESDAY
closeDay: TUESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: THURSDAY
closeDay: THURSDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: FRIDAY
closeDay: FRIDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
specialHours:
specialHourPeriods:
-
closed: true
endDate:
year: 2024
month: 12
day: 25
openTime:
hours: null
minutes: null
closeTime:
hours: null
minutes: null
startDate:
year: 2024
month: 12
day: 25
-
closed: false
endDate:
year: 2024
month: 12
day: 24
openTime:
hours: 10
minutes: 0
closeTime:
hours: 15
minutes: 0
startDate:
year: 2024
month: 12
day: 24
process_at: '2026-07-04T16:22:51.000000Z'
notes: 'Nemo suscipit nostrum temporibus ex commodi ut. Rem quae eaque sint adipisci. Autem fuga ab qui.'
validateOnly: false
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
payload:
type: object
properties:
title:
type: string
example: 'Davis Ltd'
profile:
type: object
properties:
description:
type: string
example: 'Dolor aperiam voluptate sit voluptatem. Nemo quos nam qui natus omnis eos itaque. Voluptatem placeat a sed quas tempora sit accusamus.'
phoneNumbers:
type: object
properties:
primaryPhone:
type: string
example: '0349 245 9232'
addititionalPhones:
type: array
example: []
websiteUrl:
type: string
example: fox.com
storefrontAddress:
type: object
properties:
postalCode:
type: string
example: 'W10 6DY'
locality:
type: string
example: Quentinport
addressLines:
type: array
example:
- '1 Cooper Hill'
- ''
- ''
- ''
- ''
items:
type: string
regionCode:
type: string
example: GB
regularHours:
type: object
properties:
periods:
type: array
example:
-
openDay: MONDAY
closeDay: MONDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: TUESDAY
closeDay: TUESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: THURSDAY
closeDay: THURSDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: FRIDAY
closeDay: FRIDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
items:
type: object
properties:
openDay:
type: string
example: MONDAY
closeDay:
type: string
example: MONDAY
openTime:
type: object
properties: { hours: { type: integer, example: 8 }, minutes: { type: integer, example: 0 } }
closeTime:
type: object
properties: { hours: { type: integer, example: 18 }, minutes: { type: integer, example: 0 } }
specialHours:
type: object
properties:
specialHourPeriods:
type: array
example:
-
closed: true
endDate:
year: 2024
month: 12
day: 25
openTime:
hours: null
minutes: null
closeTime:
hours: null
minutes: null
startDate:
year: 2024
month: 12
day: 25
-
closed: false
endDate:
year: 2024
month: 12
day: 24
openTime:
hours: 10
minutes: 0
closeTime:
hours: 15
minutes: 0
startDate:
year: 2024
month: 12
day: 24
items:
type: object
properties:
closed:
type: boolean
example: true
endDate:
type: object
properties: { year: { type: integer, example: 2024 }, month: { type: integer, example: 12 }, day: { type: integer, example: 25 } }
openTime:
type: object
properties: { hours: { type: string, example: null, nullable: true }, minutes: { type: string, example: null, nullable: true } }
closeTime:
type: object
properties: { hours: { type: string, example: null, nullable: true }, minutes: { type: string, example: null, nullable: true } }
startDate:
type: object
properties: { year: { type: integer, example: 2024 }, month: { type: integer, example: 12 }, day: { type: integer, example: 25 } }
process_at:
type: string
example: '2026-07-04T16:22:51.000000Z'
notes:
type: string
example: 'Nemo suscipit nostrum temporibus ex commodi ut. Rem quae eaque sint adipisci. Autem fuga ab qui.'
validateOnly:
type: boolean
example: false
401:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
message: Unauthenticated
properties:
message:
type: string
example: Unauthenticated
403:
description: Forbidden
content:
application/json:
schema:
type: object
example:
message: 'This action is unauthorized.'
properties:
message:
type: string
example: 'This action is unauthorized.'
tags:
- 'Google Locations'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
regularHours:
type: array
description: ''
example: null
items:
type: object
properties:
day:
type: 'The day of the week these hours apply to. Must be a valid day of the week. If a day is closed, do not send it in the payload.'
description: ''
example: Monday
openTime:
type: 'The time that the location opens. Must be in the format `H:i`. Must be before closeTime.'
description: ''
example: '09:00'
closeTime:
type: 'The time that the location closes. Must be in the format `H:i`. Must be after openTime.'
description: ''
example: '17:00'
required:
- day
specialHours:
type: array
description: ''
example: null
items:
type: object
properties:
date:
type: 'The date that the special hours apply to. Must be in the format `Y-m-D`. If a day is closed, only send the date.'
description: ''
example: '2024-12-24'
openTime:
type: 'The time that the location opens. Must be in the format `H:i`. Must be before closeTime.'
description: ''
example: '09:00'
closeTime:
type: 'The time that the location closes. Must be in the format `H:i`. Must be after openTime.'
description: ''
example: '17:00'
required:
- date
applyChangesOn:
type: string
description: 'The date and time you wish to schedule these changes for. Can be any date and time after now.'
example: '2030-05-01 23:00:00'
notes:
type: string
description: 'Additional notes for the update you are making. Must be 255 characters or less.'
example: 'Changes Wednesday to open at 10am and close at 4pm.'
validateOnly:
type: boolean
description: 'Set to true if you want to validate the changes without actually making them. The default is false.'
example: true
required:
- applyChangesOn
- notes
parameters:
-
in: path
name: googleLocation_google_id
description: ''
example: 749845872867289688
required: true
schema:
type: 'The Google ID of the Location you want to show.'
'/api/v1/locations/google/{googleLocation_google_id}/copy-hours':
post:
summary: 'Copy Hours'
operationId: copyHours
description: " Copy this location's regular and/or special opening hours to other locations in your company.\n Creates one pending update per target location; changes are applied according to each update's process_at."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
payload:
title: 'Edwards Ltd'
profile:
description: 'Consequatur iste rerum earum voluptas aperiam aut qui. Voluptas vel veniam velit. Odio deleniti ea porro quae ut.'
phoneNumbers:
primaryPhone: '+44(0)1035 88411'
addititionalPhones: []
websiteUrl: watson.com
storefrontAddress:
postalCode: 'CF48 2SR'
locality: Huntermouth
addressLines:
- '149 Wright Common'
- ''
- ''
- ''
- ''
regionCode: GB
regularHours:
periods:
-
openDay: MONDAY
closeDay: MONDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: TUESDAY
closeDay: TUESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: THURSDAY
closeDay: THURSDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: FRIDAY
closeDay: FRIDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
specialHours:
specialHourPeriods:
-
closed: true
endDate:
year: 2024
month: 12
day: 25
openTime:
hours: null
minutes: null
closeTime:
hours: null
minutes: null
startDate:
year: 2024
month: 12
day: 25
-
closed: false
endDate:
year: 2024
month: 12
day: 24
openTime:
hours: 10
minutes: 0
closeTime:
hours: 15
minutes: 0
startDate:
year: 2024
month: 12
day: 24
process_at: '2026-07-09T16:22:51.000000Z'
notes: 'Sequi delectus hic tempore quibusdam eligendi. Minima qui praesentium modi et et ut. Accusamus culpa vel atque et sapiente.'
validateOnly: true
-
id: null
payload:
title: 'King Ltd'
profile:
description: 'Ea vitae quibusdam omnis vel maiores nulla. Ut harum sed fuga libero est. Repudiandae quis quis earum reiciendis nihil vero omnis sapiente.'
phoneNumbers:
primaryPhone: '(0293) 4584776'
addititionalPhones: []
websiteUrl: chapman.com
storefrontAddress:
postalCode: 'YO32 9SX'
locality: 'New Charlotte'
addressLines:
- "Flat 94x\nOliver Fords"
- ''
- ''
- ''
- ''
regionCode: GB
regularHours:
periods:
-
openDay: MONDAY
closeDay: MONDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: TUESDAY
closeDay: TUESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: THURSDAY
closeDay: THURSDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: FRIDAY
closeDay: FRIDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
specialHours:
specialHourPeriods:
-
closed: true
endDate:
year: 2024
month: 12
day: 25
openTime:
hours: null
minutes: null
closeTime:
hours: null
minutes: null
startDate:
year: 2024
month: 12
day: 25
-
closed: false
endDate:
year: 2024
month: 12
day: 24
openTime:
hours: 10
minutes: 0
closeTime:
hours: 15
minutes: 0
startDate:
year: 2024
month: 12
day: 24
process_at: '2026-06-28T16:22:51.000000Z'
notes: 'Iusto corporis rerum voluptas rem eum sint quaerat. Doloribus corrupti aut esse illum. Porro minus veniam accusamus repellat dolorum.'
validateOnly: true
properties:
data:
type: array
example:
-
id: null
payload:
title: 'Edwards Ltd'
profile:
description: 'Consequatur iste rerum earum voluptas aperiam aut qui. Voluptas vel veniam velit. Odio deleniti ea porro quae ut.'
phoneNumbers:
primaryPhone: '+44(0)1035 88411'
addititionalPhones: []
websiteUrl: watson.com
storefrontAddress:
postalCode: 'CF48 2SR'
locality: Huntermouth
addressLines:
- '149 Wright Common'
- ''
- ''
- ''
- ''
regionCode: GB
regularHours:
periods:
-
openDay: MONDAY
closeDay: MONDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: TUESDAY
closeDay: TUESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: THURSDAY
closeDay: THURSDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: FRIDAY
closeDay: FRIDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
specialHours:
specialHourPeriods:
-
closed: true
endDate:
year: 2024
month: 12
day: 25
openTime:
hours: null
minutes: null
closeTime:
hours: null
minutes: null
startDate:
year: 2024
month: 12
day: 25
-
closed: false
endDate:
year: 2024
month: 12
day: 24
openTime:
hours: 10
minutes: 0
closeTime:
hours: 15
minutes: 0
startDate:
year: 2024
month: 12
day: 24
process_at: '2026-07-09T16:22:51.000000Z'
notes: 'Sequi delectus hic tempore quibusdam eligendi. Minima qui praesentium modi et et ut. Accusamus culpa vel atque et sapiente.'
validateOnly: true
-
id: null
payload:
title: 'King Ltd'
profile:
description: 'Ea vitae quibusdam omnis vel maiores nulla. Ut harum sed fuga libero est. Repudiandae quis quis earum reiciendis nihil vero omnis sapiente.'
phoneNumbers:
primaryPhone: '(0293) 4584776'
addititionalPhones: []
websiteUrl: chapman.com
storefrontAddress:
postalCode: 'YO32 9SX'
locality: 'New Charlotte'
addressLines:
- "Flat 94x\nOliver Fords"
- ''
- ''
- ''
- ''
regionCode: GB
regularHours:
periods:
-
openDay: MONDAY
closeDay: MONDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: TUESDAY
closeDay: TUESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: THURSDAY
closeDay: THURSDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: FRIDAY
closeDay: FRIDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
specialHours:
specialHourPeriods:
-
closed: true
endDate:
year: 2024
month: 12
day: 25
openTime:
hours: null
minutes: null
closeTime:
hours: null
minutes: null
startDate:
year: 2024
month: 12
day: 25
-
closed: false
endDate:
year: 2024
month: 12
day: 24
openTime:
hours: 10
minutes: 0
closeTime:
hours: 15
minutes: 0
startDate:
year: 2024
month: 12
day: 24
process_at: '2026-06-28T16:22:51.000000Z'
notes: 'Iusto corporis rerum voluptas rem eum sint quaerat. Doloribus corrupti aut esse illum. Porro minus veniam accusamus repellat dolorum.'
validateOnly: true
items:
type: object
properties:
id:
type: string
example: null
nullable: true
payload:
type: object
properties:
title:
type: string
example: 'Edwards Ltd'
profile:
type: object
properties:
description:
type: string
example: 'Consequatur iste rerum earum voluptas aperiam aut qui. Voluptas vel veniam velit. Odio deleniti ea porro quae ut.'
phoneNumbers:
type: object
properties:
primaryPhone:
type: string
example: '+44(0)1035 88411'
addititionalPhones:
type: array
example: []
websiteUrl:
type: string
example: watson.com
storefrontAddress:
type: object
properties:
postalCode:
type: string
example: 'CF48 2SR'
locality:
type: string
example: Huntermouth
addressLines:
type: array
example:
- '149 Wright Common'
- ''
- ''
- ''
- ''
items:
type: string
regionCode:
type: string
example: GB
regularHours:
type: object
properties:
periods:
type: array
example:
-
openDay: MONDAY
closeDay: MONDAY
openTime: { hours: 8, minutes: 0 }
closeTime: { hours: 18, minutes: 0 }
-
openDay: TUESDAY
closeDay: TUESDAY
openTime: { hours: 8, minutes: 0 }
closeTime: { hours: 18, minutes: 0 }
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime: { hours: 8, minutes: 0 }
closeTime: { hours: 18, minutes: 0 }
-
openDay: THURSDAY
closeDay: THURSDAY
openTime: { hours: 8, minutes: 0 }
closeTime: { hours: 18, minutes: 0 }
-
openDay: FRIDAY
closeDay: FRIDAY
openTime: { hours: 8, minutes: 0 }
closeTime: { hours: 18, minutes: 0 }
items:
type: object
properties:
openDay: { type: string, example: MONDAY }
closeDay: { type: string, example: MONDAY }
openTime: { type: object, properties: { hours: { type: integer, example: 8 }, minutes: { type: integer, example: 0 } } }
closeTime: { type: object, properties: { hours: { type: integer, example: 18 }, minutes: { type: integer, example: 0 } } }
specialHours:
type: object
properties:
specialHourPeriods:
type: array
example:
-
closed: true
endDate: { year: 2024, month: 12, day: 25 }
openTime: { hours: null, minutes: null }
closeTime: { hours: null, minutes: null }
startDate: { year: 2024, month: 12, day: 25 }
-
closed: false
endDate: { year: 2024, month: 12, day: 24 }
openTime: { hours: 10, minutes: 0 }
closeTime: { hours: 15, minutes: 0 }
startDate: { year: 2024, month: 12, day: 24 }
items:
type: object
properties:
closed: { type: boolean, example: true }
endDate: { type: object, properties: { year: { type: integer, example: 2024 }, month: { type: integer, example: 12 }, day: { type: integer, example: 25 } } }
openTime: { type: object, properties: { hours: { type: string, example: null, nullable: true }, minutes: { type: string, example: null, nullable: true } } }
closeTime: { type: object, properties: { hours: { type: string, example: null, nullable: true }, minutes: { type: string, example: null, nullable: true } } }
startDate: { type: object, properties: { year: { type: integer, example: 2024 }, month: { type: integer, example: 12 }, day: { type: integer, example: 25 } } }
process_at:
type: string
example: '2026-07-09T16:22:51.000000Z'
notes:
type: string
example: 'Sequi delectus hic tempore quibusdam eligendi. Minima qui praesentium modi et et ut. Accusamus culpa vel atque et sapiente.'
validateOnly:
type: boolean
example: true
401:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
message: Unauthenticated
properties:
message:
type: string
example: Unauthenticated
403:
description: Forbidden
content:
application/json:
schema:
type: object
example:
message: 'This action is unauthorized.'
properties:
message:
type: string
example: 'This action is unauthorized.'
422:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid targets'
type: object
example:
message: 'All target locations must belong to your company and not be the source location.'
properties:
message:
type: string
example: 'All target locations must belong to your company and not be the source location.'
-
description: 'Must choose regularHours and/or specialHours'
type: object
example:
message: 'Please select at least one of Regular hours or Special hours.'
properties:
message:
type: string
example: 'Please select at least one of Regular hours or Special hours.'
tags:
- 'Google Locations'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
target_google_ids:
type: array
description: 'Google IDs of the target locations to copy hours to.'
example:
- 749845872867289689
- 749845872867289690
items:
type: string
hours_to_copy:
type: array
description: 'What to copy: regularHours and/or specialHours.'
example:
- regularHours
- specialHours
items:
type: string
apply_changes_on:
type: string
description: 'When to apply the changes. Defaults to now if omitted.'
example: '2030-05-01 23:00:00'
notes:
type: string
description: 'Optional notes for the pending updates.'
example: qui
required:
- target_google_ids
- hours_to_copy
parameters:
-
in: path
name: googleLocation_google_id
description: ''
example: 749845872867289688
required: true
schema:
type: 'The Google ID of the source location to copy hours from.'
'/api/v1/locations/google/{googleLocation_google_id}/updates':
get:
summary: 'List Updates'
operationId: listUpdates
description: ' This endpoint will list all updates for the specified Google location.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
payload:
title: 'Moore Ltd'
profile:
description: 'Rerum vel mollitia ut. Assumenda harum non reiciendis numquam sit voluptas. Illo iusto delectus dolorum animi consectetur.'
phoneNumbers:
primaryPhone: '+44(0)1560 89623'
addititionalPhones: []
websiteUrl: thompson.com
storefrontAddress:
postalCode: 'CM22 6DR'
locality: 'West Mandy'
addressLines:
- "Flat 83\nWard Land"
- ''
- ''
- ''
- ''
regionCode: GB
regularHours:
periods:
-
openDay: MONDAY
closeDay: MONDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: TUESDAY
closeDay: TUESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: THURSDAY
closeDay: THURSDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: FRIDAY
closeDay: FRIDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
specialHours:
specialHourPeriods:
-
closed: true
endDate:
year: 2024
month: 12
day: 25
openTime:
hours: null
minutes: null
closeTime:
hours: null
minutes: null
startDate:
year: 2024
month: 12
day: 25
-
closed: false
endDate:
year: 2024
month: 12
day: 24
openTime:
hours: 10
minutes: 0
closeTime:
hours: 15
minutes: 0
startDate:
year: 2024
month: 12
day: 24
process_at: '2026-07-02T16:22:51.000000Z'
notes: 'Et magnam ut aut reprehenderit veniam dolores illo amet. Molestias quisquam in enim recusandae tempora autem quos. Delectus occaecati esse ipsam molestiae qui libero ab.'
validateOnly: true
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
payload:
type: object
properties:
title:
type: string
example: 'Moore Ltd'
profile:
type: object
properties:
description:
type: string
example: 'Rerum vel mollitia ut. Assumenda harum non reiciendis numquam sit voluptas. Illo iusto delectus dolorum animi consectetur.'
phoneNumbers:
type: object
properties:
primaryPhone:
type: string
example: '+44(0)1560 89623'
addititionalPhones:
type: array
example: []
websiteUrl:
type: string
example: thompson.com
storefrontAddress:
type: object
properties:
postalCode:
type: string
example: 'CM22 6DR'
locality:
type: string
example: 'West Mandy'
addressLines:
type: array
example:
- "Flat 83\nWard Land"
- ''
- ''
- ''
- ''
items:
type: string
regionCode:
type: string
example: GB
regularHours:
type: object
properties:
periods:
type: array
example:
-
openDay: MONDAY
closeDay: MONDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: TUESDAY
closeDay: TUESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: THURSDAY
closeDay: THURSDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: FRIDAY
closeDay: FRIDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
items:
type: object
properties:
openDay:
type: string
example: MONDAY
closeDay:
type: string
example: MONDAY
openTime:
type: object
properties: { hours: { type: integer, example: 8 }, minutes: { type: integer, example: 0 } }
closeTime:
type: object
properties: { hours: { type: integer, example: 18 }, minutes: { type: integer, example: 0 } }
specialHours:
type: object
properties:
specialHourPeriods:
type: array
example:
-
closed: true
endDate:
year: 2024
month: 12
day: 25
openTime:
hours: null
minutes: null
closeTime:
hours: null
minutes: null
startDate:
year: 2024
month: 12
day: 25
-
closed: false
endDate:
year: 2024
month: 12
day: 24
openTime:
hours: 10
minutes: 0
closeTime:
hours: 15
minutes: 0
startDate:
year: 2024
month: 12
day: 24
items:
type: object
properties:
closed:
type: boolean
example: true
endDate:
type: object
properties: { year: { type: integer, example: 2024 }, month: { type: integer, example: 12 }, day: { type: integer, example: 25 } }
openTime:
type: object
properties: { hours: { type: string, example: null, nullable: true }, minutes: { type: string, example: null, nullable: true } }
closeTime:
type: object
properties: { hours: { type: string, example: null, nullable: true }, minutes: { type: string, example: null, nullable: true } }
startDate:
type: object
properties: { year: { type: integer, example: 2024 }, month: { type: integer, example: 12 }, day: { type: integer, example: 25 } }
process_at:
type: string
example: '2026-07-02T16:22:51.000000Z'
notes:
type: string
example: 'Et magnam ut aut reprehenderit veniam dolores illo amet. Molestias quisquam in enim recusandae tempora autem quos. Delectus occaecati esse ipsam molestiae qui libero ab.'
validateOnly:
type: boolean
example: true
401:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
message: Unauthenticated
properties:
message:
type: string
example: Unauthenticated
tags:
- 'Google Locations'
parameters:
-
in: path
name: googleLocation_google_id
description: ''
example: 749845872867289688
required: true
schema:
type: 'The Google ID of the location you want to list updates for'
'/api/v1/locations/google/{googleLocation_google_id}/updates/{pendingGoogleLocationUpdate_id}':
get:
summary: 'Show Update'
operationId: showUpdate
description: ' This endpoint will show a specific update for the specified Google location.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
payload:
title: 'Khan Ltd'
profile:
description: 'Harum similique velit omnis aspernatur dolores. Labore provident sunt repellendus. Velit error laboriosam voluptatem omnis et corporis omnis.'
phoneNumbers:
primaryPhone: '06102352678'
addititionalPhones: []
websiteUrl: richards.com
storefrontAddress:
postalCode: 'G12 9BH'
locality: 'South Mikemouth'
addressLines:
- '55 Rob Plains'
- ''
- ''
- ''
- ''
regionCode: GB
regularHours:
periods:
-
openDay: MONDAY
closeDay: MONDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: TUESDAY
closeDay: TUESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: THURSDAY
closeDay: THURSDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: FRIDAY
closeDay: FRIDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
specialHours:
specialHourPeriods:
-
closed: true
endDate:
year: 2024
month: 12
day: 25
openTime:
hours: null
minutes: null
closeTime:
hours: null
minutes: null
startDate:
year: 2024
month: 12
day: 25
-
closed: false
endDate:
year: 2024
month: 12
day: 24
openTime:
hours: 10
minutes: 0
closeTime:
hours: 15
minutes: 0
startDate:
year: 2024
month: 12
day: 24
process_at: '2026-07-09T16:22:51.000000Z'
notes: 'Distinctio iusto tempore sequi laboriosam laudantium quis quae. Aut porro dolores mollitia pariatur maxime aut molestias est. Nulla sunt dolor ab sed aut.'
validateOnly: true
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
payload:
type: object
properties:
title:
type: string
example: 'Khan Ltd'
profile:
type: object
properties:
description:
type: string
example: 'Harum similique velit omnis aspernatur dolores. Labore provident sunt repellendus. Velit error laboriosam voluptatem omnis et corporis omnis.'
phoneNumbers:
type: object
properties:
primaryPhone:
type: string
example: '06102352678'
addititionalPhones:
type: array
example: []
websiteUrl:
type: string
example: richards.com
storefrontAddress:
type: object
properties:
postalCode:
type: string
example: 'G12 9BH'
locality:
type: string
example: 'South Mikemouth'
addressLines:
type: array
example:
- '55 Rob Plains'
- ''
- ''
- ''
- ''
items:
type: string
regionCode:
type: string
example: GB
regularHours:
type: object
properties:
periods:
type: array
example:
-
openDay: MONDAY
closeDay: MONDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: TUESDAY
closeDay: TUESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: WEDNESDAY
closeDay: WEDNESDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: THURSDAY
closeDay: THURSDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
-
openDay: FRIDAY
closeDay: FRIDAY
openTime:
hours: 8
minutes: 0
closeTime:
hours: 18
minutes: 0
items:
type: object
properties:
openDay:
type: string
example: MONDAY
closeDay:
type: string
example: MONDAY
openTime:
type: object
properties: { hours: { type: integer, example: 8 }, minutes: { type: integer, example: 0 } }
closeTime:
type: object
properties: { hours: { type: integer, example: 18 }, minutes: { type: integer, example: 0 } }
specialHours:
type: object
properties:
specialHourPeriods:
type: array
example:
-
closed: true
endDate:
year: 2024
month: 12
day: 25
openTime:
hours: null
minutes: null
closeTime:
hours: null
minutes: null
startDate:
year: 2024
month: 12
day: 25
-
closed: false
endDate:
year: 2024
month: 12
day: 24
openTime:
hours: 10
minutes: 0
closeTime:
hours: 15
minutes: 0
startDate:
year: 2024
month: 12
day: 24
items:
type: object
properties:
closed:
type: boolean
example: true
endDate:
type: object
properties: { year: { type: integer, example: 2024 }, month: { type: integer, example: 12 }, day: { type: integer, example: 25 } }
openTime:
type: object
properties: { hours: { type: string, example: null, nullable: true }, minutes: { type: string, example: null, nullable: true } }
closeTime:
type: object
properties: { hours: { type: string, example: null, nullable: true }, minutes: { type: string, example: null, nullable: true } }
startDate:
type: object
properties: { year: { type: integer, example: 2024 }, month: { type: integer, example: 12 }, day: { type: integer, example: 25 } }
process_at:
type: string
example: '2026-07-09T16:22:51.000000Z'
notes:
type: string
example: 'Distinctio iusto tempore sequi laboriosam laudantium quis quae. Aut porro dolores mollitia pariatur maxime aut molestias est. Nulla sunt dolor ab sed aut.'
validateOnly:
type: boolean
example: true
401:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
message: Unauthenticated
properties:
message:
type: string
example: Unauthenticated
tags:
- 'Google Locations'
delete:
summary: 'Delete Update'
operationId: deleteUpdate
description: ' This endpoint will delete a specific update for the specified Google location.'
parameters: []
responses:
204:
description: 'No Content'
content:
text/plain:
schema:
type: string
example: ''
401:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
message: Unauthenticated
properties:
message:
type: string
example: Unauthenticated
tags:
- 'Google Locations'
parameters:
-
in: path
name: googleLocation_google_id
description: ''
example: 749845872867289688
required: true
schema:
type: 'The Google ID of the location attached to the update you want to show.'
-
in: path
name: pendingGoogleLocationUpdate_id
description: ''
example: 23
required: true
schema:
type: 'The ID of the update you want to show.'
/api/v1/health:
get:
summary: Check
operationId: check
description: ' This endpoint will allow you to quickly check that you can authenticate to the API.'
parameters: []
responses:
200:
description: OK
content:
application/json:
schema:
type: object
example:
status: ok
properties:
status:
type: string
example: ok
401:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
message: Unauthenticated
properties:
message:
type: string
example: Unauthenticated
tags:
- Health