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/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: 'Chapman Ltd'
locations: []
properties:
data:
type: object
properties:
name:
type: string
example: 'Chapman 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/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: '33413544'
name: 'Reynolds Ltd'
googleRating: 3.8
preciseGoogleRating: 3.8224
reviewsCount: 121
site: clark.biz
address: "90 Elliott Lodge\nEast Ruby\nIP7 5SS"
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: '21935607'
name: 'Robertson Ltd'
googleRating: 3.2
preciseGoogleRating: 3.1753
reviewsCount: 189
site: marshall.com
address: "Studio 54f\nHill Crossing\nZacharyville\nPO35 5XS"
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: '33413544'
name: 'Reynolds Ltd'
googleRating: 3.8
preciseGoogleRating: 3.8224
reviewsCount: 121
site: clark.biz
address: "90 Elliott Lodge\nEast Ruby\nIP7 5SS"
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: '21935607'
name: 'Robertson Ltd'
googleRating: 3.2
preciseGoogleRating: 3.1753
reviewsCount: 189
site: marshall.com
address: "Studio 54f\nHill Crossing\nZacharyville\nPO35 5XS"
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: '33413544'
name:
type: string
example: 'Reynolds Ltd'
googleRating:
type: number
example: 3.8
preciseGoogleRating:
type: number
example: 3.8224
reviewsCount:
type: integer
example: 121
site:
type: string
example: clark.biz
address:
type: string
example: "90 Elliott Lodge\nEast Ruby\nIP7 5SS"
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/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: '91270184'
name: 'King Ltd'
googleRating: 4.9
preciseGoogleRating: 4.882
reviewsCount: 169
site: saunders.net
address: "53 White Light\nPort Amber\nW5 9TG"
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: '91270184'
name:
type: string
example: 'King Ltd'
googleRating:
type: number
example: 4.9
preciseGoogleRating:
type: number
example: 4.882
reviewsCount:
type: integer
example: 169
site:
type: string
example: saunders.net
address:
type: string
example: "53 White Light\nPort Amber\nW5 9TG"
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: 'Green Ltd'
profile:
description: 'Nihil at voluptas voluptas esse ullam tempore rerum. Explicabo sed ut unde et unde sit. Expedita perspiciatis voluptatibus et perferendis.'
phoneNumbers:
primaryPhone: '(01102) 90755'
addititionalPhones: []
websiteUrl: bailey.co.uk
storefrontAddress:
postalCode: 'BD4 7HP'
locality: 'West Leah'
addressLines:
- "Flat 31\nSimpson Court"
- ''
- ''
- ''
- ''
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-04-01T21:52:00.000000Z'
notes: 'Et adipisci incidunt laudantium error. Quaerat magni ducimus est quos dolor molestias beatae. Vel incidunt ducimus laudantium officia assumenda adipisci.'
validateOnly: true
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
payload:
type: object
properties:
title:
type: string
example: 'Green Ltd'
profile:
type: object
properties:
description:
type: string
example: 'Nihil at voluptas voluptas esse ullam tempore rerum. Explicabo sed ut unde et unde sit. Expedita perspiciatis voluptatibus et perferendis.'
phoneNumbers:
type: object
properties:
primaryPhone:
type: string
example: '(01102) 90755'
addititionalPhones:
type: array
example: []
websiteUrl:
type: string
example: bailey.co.uk
storefrontAddress:
type: object
properties:
postalCode:
type: string
example: 'BD4 7HP'
locality:
type: string
example: 'West Leah'
addressLines:
type: array
example:
- "Flat 31\nSimpson Court"
- ''
- ''
- ''
- ''
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-04-01T21:52:00.000000Z'
notes:
type: string
example: 'Et adipisci incidunt laudantium error. Quaerat magni ducimus est quos dolor molestias beatae. Vel incidunt ducimus laudantium officia assumenda adipisci.'
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.'
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/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: 'Lewis Ltd'
profile:
description: 'Labore beatae et ipsa suscipit. Sed laudantium nemo omnis ullam culpa. Qui vel veritatis autem dolores.'
phoneNumbers:
primaryPhone: '(0975) 476 2217'
addititionalPhones: []
websiteUrl: smith.com
storefrontAddress:
postalCode: 'NG24 2PB'
locality: 'Port Bruce'
addressLines:
- '2 Leanne River'
- ''
- ''
- ''
- ''
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-04-21T21:52:00.000000Z'
notes: 'Aliquam numquam ex voluptas. Veritatis minus nesciunt illo harum. Autem sit enim ut deleniti sit soluta et.'
validateOnly: false
-
id: null
payload:
title: 'Harrison Ltd'
profile:
description: 'Temporibus eveniet temporibus ut sequi eum. Consequatur quis nesciunt ducimus ab ab et sit. Illo quod velit omnis omnis vitae facilis.'
phoneNumbers:
primaryPhone: '0117978493'
addititionalPhones: []
websiteUrl: phillips.com
storefrontAddress:
postalCode: 'B98 7JU'
locality: 'East Sophialand'
addressLines:
- '5 Jacob Stream'
- ''
- ''
- ''
- ''
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-04-13T21:52:00.000000Z'
notes: 'Nostrum temporibus quia assumenda omnis corrupti sunt. Quidem porro exercitationem vero culpa quia architecto reiciendis. Officiis est magnam rerum quaerat.'
validateOnly: false
properties:
data:
type: array
example:
-
id: null
payload:
title: 'Lewis Ltd'
profile:
description: 'Labore beatae et ipsa suscipit. Sed laudantium nemo omnis ullam culpa. Qui vel veritatis autem dolores.'
phoneNumbers:
primaryPhone: '(0975) 476 2217'
addititionalPhones: []
websiteUrl: smith.com
storefrontAddress:
postalCode: 'NG24 2PB'
locality: 'Port Bruce'
addressLines:
- '2 Leanne River'
- ''
- ''
- ''
- ''
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-04-21T21:52:00.000000Z'
notes: 'Aliquam numquam ex voluptas. Veritatis minus nesciunt illo harum. Autem sit enim ut deleniti sit soluta et.'
validateOnly: false
-
id: null
payload:
title: 'Harrison Ltd'
profile:
description: 'Temporibus eveniet temporibus ut sequi eum. Consequatur quis nesciunt ducimus ab ab et sit. Illo quod velit omnis omnis vitae facilis.'
phoneNumbers:
primaryPhone: '0117978493'
addititionalPhones: []
websiteUrl: phillips.com
storefrontAddress:
postalCode: 'B98 7JU'
locality: 'East Sophialand'
addressLines:
- '5 Jacob Stream'
- ''
- ''
- ''
- ''
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-04-13T21:52:00.000000Z'
notes: 'Nostrum temporibus quia assumenda omnis corrupti sunt. Quidem porro exercitationem vero culpa quia architecto reiciendis. Officiis est magnam rerum quaerat.'
validateOnly: false
items:
type: object
properties:
id:
type: string
example: null
nullable: true
payload:
type: object
properties:
title:
type: string
example: 'Lewis Ltd'
profile:
type: object
properties:
description:
type: string
example: 'Labore beatae et ipsa suscipit. Sed laudantium nemo omnis ullam culpa. Qui vel veritatis autem dolores.'
phoneNumbers:
type: object
properties:
primaryPhone:
type: string
example: '(0975) 476 2217'
addititionalPhones:
type: array
example: []
websiteUrl:
type: string
example: smith.com
storefrontAddress:
type: object
properties:
postalCode:
type: string
example: 'NG24 2PB'
locality:
type: string
example: 'Port Bruce'
addressLines:
type: array
example:
- '2 Leanne River'
- ''
- ''
- ''
- ''
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-04-21T21:52:00.000000Z'
notes:
type: string
example: 'Aliquam numquam ex voluptas. Veritatis minus nesciunt illo harum. Autem sit enim ut deleniti sit soluta et.'
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.'
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: et
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/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: 'Patel Ltd'
profile:
description: 'Dolore adipisci veniam ducimus quo id. Est omnis consectetur molestiae consequuntur reiciendis dignissimos et sunt. Quidem et et qui.'
phoneNumbers:
primaryPhone: '(0811) 6871837'
addititionalPhones: []
websiteUrl: richardson.com
storefrontAddress:
postalCode: 'WR2 4RX'
locality: 'North Yasminestad'
addressLines:
- '90 Riley Ford'
- ''
- ''
- ''
- ''
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-04-07T21:52:00.000000Z'
notes: 'Aliquam quo voluptatibus sint id aut eius. Dolor consequatur praesentium accusantium quis aut et. Rem illum voluptatem id dignissimos voluptas debitis voluptatem quam.'
validateOnly: false
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
payload:
type: object
properties:
title:
type: string
example: 'Patel Ltd'
profile:
type: object
properties:
description:
type: string
example: 'Dolore adipisci veniam ducimus quo id. Est omnis consectetur molestiae consequuntur reiciendis dignissimos et sunt. Quidem et et qui.'
phoneNumbers:
type: object
properties:
primaryPhone:
type: string
example: '(0811) 6871837'
addititionalPhones:
type: array
example: []
websiteUrl:
type: string
example: richardson.com
storefrontAddress:
type: object
properties:
postalCode:
type: string
example: 'WR2 4RX'
locality:
type: string
example: 'North Yasminestad'
addressLines:
type: array
example:
- '90 Riley Ford'
- ''
- ''
- ''
- ''
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-04-07T21:52:00.000000Z'
notes:
type: string
example: 'Aliquam quo voluptatibus sint id aut eius. Dolor consequatur praesentium accusantium quis aut et. Rem illum voluptatem id dignissimos voluptas debitis voluptatem quam.'
validateOnly:
type: boolean
example: false
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/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: 'Brown Ltd'
profile:
description: 'Dolores occaecati mollitia sapiente magni velit. Reprehenderit dolorum sint animi magnam et natus est. Eius distinctio sit ea in.'
phoneNumbers:
primaryPhone: +44(0)2535312769
addititionalPhones: []
websiteUrl: marshall.com
storefrontAddress:
postalCode: 'PE23 4LZ'
locality: Matthewstown
addressLines:
- '8 Reynolds Islands'
- ''
- ''
- ''
- ''
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-03-29T21:52:00.000000Z'
notes: 'Fugiat a delectus sit vel. Minus sequi aspernatur quo aperiam neque omnis qui. Qui nihil ducimus ipsam consectetur molestiae.'
validateOnly: true
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
payload:
type: object
properties:
title:
type: string
example: 'Brown Ltd'
profile:
type: object
properties:
description:
type: string
example: 'Dolores occaecati mollitia sapiente magni velit. Reprehenderit dolorum sint animi magnam et natus est. Eius distinctio sit ea in.'
phoneNumbers:
type: object
properties:
primaryPhone:
type: string
example: +44(0)2535312769
addititionalPhones:
type: array
example: []
websiteUrl:
type: string
example: marshall.com
storefrontAddress:
type: object
properties:
postalCode:
type: string
example: 'PE23 4LZ'
locality:
type: string
example: Matthewstown
addressLines:
type: array
example:
- '8 Reynolds Islands'
- ''
- ''
- ''
- ''
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-03-29T21:52:00.000000Z'
notes:
type: string
example: 'Fugiat a delectus sit vel. Minus sequi aspernatur quo aperiam neque omnis qui. Qui nihil ducimus ipsam consectetur molestiae.'
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/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