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' paths: /api/health: get: summary: "Health\n\nCheck that the service is up and running." operationId: healthCheckThatTheServiceIsUpAndRunning description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: status: ok properties: status: type: string example: ok tags: - General /api/locations/google: get: summary: 'List Google Locations.' operationId: listGoogleLocations 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: '45184878' name: 'Russell Ltd' googleRating: 4.4 preciseGoogleRating: 4.425 reviewsCount: 186 site: hunt.co.uk address: "Studio 58\nIsaac Radial\nPort Siennafurt\nHX3 0NS" 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: '51950649' name: 'James Ltd' googleRating: 3 preciseGoogleRating: 3.0056 reviewsCount: 131 site: matthews.org address: "412 Robertson Crescent\nKarlmouth\nIV2 5EG" 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' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 15 to: 2 total: 2 properties: data: type: array example: - id: '45184878' name: 'Russell Ltd' googleRating: 4.4 preciseGoogleRating: 4.425 reviewsCount: 186 site: hunt.co.uk address: "Studio 58\nIsaac Radial\nPort Siennafurt\nHX3 0NS" 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: '51950649' name: 'James Ltd' googleRating: 3 preciseGoogleRating: 3.0056 reviewsCount: 131 site: matthews.org address: "412 Robertson Crescent\nKarlmouth\nIV2 5EG" 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: '45184878' name: type: string example: 'Russell Ltd' googleRating: type: number example: 4.4 preciseGoogleRating: type: number example: 4.425 reviewsCount: type: integer example: 186 site: type: string example: hunt.co.uk address: type: string example: "Studio 58\nIsaac Radial\nPort Siennafurt\nHX3 0NS" 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 close: type: string example: null '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 next: type: string example: null 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' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' 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 Google Location.' operationId: showGoogleLocation 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: '9702576' name: 'Patel Ltd' googleRating: 4.4 preciseGoogleRating: 4.4279 reviewsCount: 195 site: white.net address: "8 Eleanor Glens\nWilliamsmouth\nL38 9EB" 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: '9702576' name: type: string example: 'Patel Ltd' googleRating: type: number example: 4.4 preciseGoogleRating: type: number example: 4.4279 reviewsCount: type: integer example: 195 site: type: string example: white.net address: type: string example: "8 Eleanor Glens\nWilliamsmouth\nL38 9EB" 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 close: type: string example: null '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 Google Location.' operationId: updateGoogleLocation description: ' This endpoint will update the specific Google location, based on Google ID. Currently, the Pulse API can only be used to update Regular and Special hours.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: payload: title: 'Kelly Ltd' profile: description: 'Libero aliquam illo commodi. Ut vitae pariatur molestias et ut autem. In sed commodi id in.' phoneNumbers: primaryPhone: '+44(0)6795 75136' addititionalPhones: [] websiteUrl: james.org storefrontAddress: postalCode: 'RM14 3PA' locality: 'New Tara' addressLines: - '429 Owen Forges' - '' - '' - '' - '' 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: '2025-05-01T11:59:47.000000Z' properties: data: type: object properties: payload: type: object properties: title: type: string example: 'Kelly Ltd' profile: type: object properties: description: type: string example: 'Libero aliquam illo commodi. Ut vitae pariatur molestias et ut autem. In sed commodi id in.' phoneNumbers: type: object properties: primaryPhone: type: string example: '+44(0)6795 75136' addititionalPhones: type: array example: [] websiteUrl: type: string example: james.org storefrontAddress: type: object properties: postalCode: type: string example: 'RM14 3PA' locality: type: string example: 'New Tara' addressLines: type: array example: - '429 Owen Forges' - '' - '' - '' - '' 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 }, minutes: { type: string, example: null } } closeTime: type: object properties: { hours: { type: string, example: null }, minutes: { type: string, example: null } } startDate: type: object properties: { year: { type: integer, example: 2024 }, month: { type: integer, example: 12 }, day: { type: integer, example: 25 } } process_at: type: string example: '2025-05-01T11:59:47.000000Z' 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 nullable: false openTime: type: 'The time that the location opens. Must be in the format `H:i`. Must be before closeTime.' description: '' example: '10:00' nullable: false closeTime: type: 'The time that the location closes. Must be in the format `H:i`. Must be after openTime.' description: '' example: '17:00' nullable: false 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`.' description: '' example: '2024-12-24' nullable: false openTime: type: 'The time that the location opens. Must be in the format `H:i`. Must be before closeTime.' description: '' example: '10:00' nullable: false closeTime: type: 'The time that the location closes. Must be in the format `H:i`. Must be after openTime.' description: '' example: '17:00' nullable: false alwaysOpen: type: 'Whether the location is open 24 hours on this date. Must be `true` or `false`' description: '' example: true nullable: false required: - date applyChangesOn: type: string description: 'Must be a valid date in the format Y-m-d H:i:s. Must be a date after now.' example: '2055-08-11' nullable: false required: - applyChangesOn parameters: - in: path name: googleLocation_google_id description: '' example: 749845872867289688 required: true schema: type: 'The Google ID of the Location you want to show.' tags: - name: General description: '' - name: 'Google Locations' description: 'Endpoints for managing Google locations on Pulse' 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: []