Introduction

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.

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

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.

Google Locations

Endpoints for managing Google locations on Pulse

List Google Locations.

GET
https://pulsereviews.io
/api/locations/google
requires authentication

This endpoint will list all Google locations tied to the user.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://pulsereviews.io/api/locations/google';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response:
{
    "data": [
        {
            "id": "99424534",
            "name": "Miller Ltd",
            "googleRating": 4.7,
            "preciseGoogleRating": 4.7101,
            "reviewsCount": 110,
            "site": "walker.net",
            "address": "3 Khan Corner\nMitchellview\nTR15 1PH",
            "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": "50276212",
            "name": "Lee Ltd",
            "googleRating": 4.2,
            "preciseGoogleRating": 4.1793,
            "reviewsCount": 89,
            "site": "jackson.net",
            "address": "1 Anderson Valley\nWest Lilychester\nTW5 0XT",
            "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
    }
}
{
    "message": "Unauthenticated"
}

Show Google Location.

GET
https://pulsereviews.io
/api/locations/google/{googleLocation_google_id}
requires authentication

This endpoint will show a specific Google location, based on Google ID.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

googleLocation_google_id
The Google ID of the Location you want to show.
required
Example:
749845872867289688
Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://pulsereviews.io/api/locations/google/749845872867289688';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response:
{
    "data": {
        "id": "15287413",
        "name": "Anderson Ltd",
        "googleRating": 3.8,
        "preciseGoogleRating": 3.7561,
        "reviewsCount": 160,
        "site": "moore.com",
        "address": "Flat 09\nAllen Hills\nEast Emily\nHD9 6PH",
        "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"
            }
        }
    }
}
{
    "message": "Unauthenticated"
}
{
    "message": "This action is unauthorized."
}

Update Google Location.

PATCH
https://pulsereviews.io
/api/locations/google/{googleLocation_google_id}
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

googleLocation_google_id
The Google ID of the Location you want to update.
required
Example:
749845872867289688

Body Parameters

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://pulsereviews.io/api/locations/google/749845872867289688';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'applyChangesOn' => '2040-04-23',
            'regularHours' => [
                [
                    'day' => 'Tuesday',
                    'openTime' => '2015-04-09',
                    'closeTime' => '02:56',
                ],
                'openTime' => '10:00',
                'closeTime' => '17:00',
                'day' => 'Monday',
            ],
            'specialHours' => [
                [
                    'date' => '2025-02-28',
                    'openTime' => '2006-03-20',
                    'closeTime' => '02:56',
                    'alwaysOpen' => false,
                ],
                'date' => '2024-12-24',
                'openTime' => '10:00',
                'closeTime' => '17:00',
                'alwaysOpen' => true,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response:
{
    "data": {
        "payload": {
            "title": "Baker Ltd",
            "profile": {
                "description": "Id omnis explicabo suscipit totam alias libero numquam. Aut a in placeat. Dolorem odit temporibus aspernatur omnis."
            },
            "phoneNumbers": {
                "primaryPhone": "+44(0)1694 037641",
                "addititionalPhones": []
            },
            "websiteUrl": "stewart.com",
            "storefrontAddress": {
                "postalCode": "BH12 2EN",
                "locality": "Robfort",
                "addressLines": [
                    "6 Alexandra Plain",
                    "",
                    "",
                    "",
                    ""
                ],
                "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-03-08T02:56:27.000000Z"
    }
}
{
    "message": "Unauthenticated"
}
{
    "message": "This action is unauthorized."
}