MENU navbar-image

Introduction

Sweep&Go - Open API description

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 retrieve your token by visiting your dashboard and clicking Generate API token.

Access token

API endpoints for generating and getting authentication token

Get Webhook URLs

This endpoint returns API token and urls.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/token_generate/access_tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --data "{
    \"organization_id\": \"2\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/token_generate/access_tokens"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_TOKEN",
};

let body = {
    "organization_id": "2"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/token_generate/access_tokens';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer YOUR_TOKEN',
        ],
        'json' => [
            'organization_id' => '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/token_generate/access_tokens'
payload = {
    "organization_id": "2"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_TOKEN'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):


{{
             "token":"************************************************************XLtm",
             "webhooks_url":"https:\/\/console.log"
             "enabled_events":"client:client_onboarding_onetime,client:client_recurring_employee_portal"
             }}
 

Request      

GET api/token_generate/access_tokens

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer YOUR_TOKEN

Body Parameters

organization_id   required  optional  

integer Selected organization. Example: 2

Generate API token

This endpoint is use for generate API token.

Example request:
curl --request POST \
    "https://openapi.sweepandgo.com/api/token_generate/access_token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --data "{
    \"organization_id\": 2,
    \"webhooks_url\": \"https:\\/\\/console.log\",
    \"description\": \"You can enter here description for endpoint\",
    \"events\": null
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/token_generate/access_token"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_TOKEN",
};

let body = {
    "organization_id": 2,
    "webhooks_url": "https:\/\/console.log",
    "description": "You can enter here description for endpoint",
    "events": null
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/token_generate/access_token';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer YOUR_TOKEN',
        ],
        'json' => [
            'organization_id' => 2,
            'webhooks_url' => 'https://console.log',
            'description' => 'You can enter here description for endpoint',
            'events' => null,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/token_generate/access_token'
payload = {
    "organization_id": 2,
    "webhooks_url": "https:\/\/console.log",
    "description": "You can enter here description for endpoint",
    "events": null
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_TOKEN'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "token": "lrLxIj3PmNkSKdsFdTYYrfLFSungwVl4vXUk9alQo3Zu6cCGpslCGfHI9k2wXLtm"
}
 

Request      

POST api/token_generate/access_token

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer YOUR_TOKEN

Body Parameters

organization_id   integer   

Selected organization. Example: 2

webhooks_url   string   

Entered URL where will be get webhooks. Example: https://console.log

enabled_events   string  optional  
description   string  optional  

Description for webhooks. Example: You can enter here description for endpoint

events   string[]   

Entered URL where will be get webhooks.

Get API token after generated

This endpoint returns API token and events.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/token_generate/access_token/numquam" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --data "{
    \"organization_id\": \"2\",
    \"id\": \"1\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/token_generate/access_token/numquam"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_TOKEN",
};

let body = {
    "organization_id": "2",
    "id": "1"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/token_generate/access_token/numquam';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer YOUR_TOKEN',
        ],
        'json' => [
            'organization_id' => '2',
            'id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/token_generate/access_token/numquam'
payload = {
    "organization_id": "2",
    "id": "1"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_TOKEN'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):


{
             "token":lrLxIj3PmNkSKdsFdTYYrfLFSungwVl4vXUk9alQo3Zu6cCGpslCGfHI9k2wXLtm"
             }
 

Request      

GET api/token_generate/access_token/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer YOUR_TOKEN

URL Parameters

id   string   

The ID of the access token. Example: numquam

Body Parameters

organization_id   required  optional  

integer Selected organization. Example: 2

id   required  optional  

integer Selected organization. Example: 1

Delete API token endpoint

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/token_generate/access_token/est/delete" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --data "{
    \"organization_id\": \"2\",
    \"id\": \"1\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/token_generate/access_token/est/delete"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_TOKEN",
};

let body = {
    "organization_id": "2",
    "id": "1"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/token_generate/access_token/est/delete';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer YOUR_TOKEN',
        ],
        'json' => [
            'organization_id' => '2',
            'id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/token_generate/access_token/est/delete'
payload = {
    "organization_id": "2",
    "id": "1"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_TOKEN'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "success": "success"
}
 

Request      

GET api/token_generate/access_token/{id}/delete

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer YOUR_TOKEN

URL Parameters

id   string   

The ID of the access token. Example: est

Body Parameters

organization_id   required  optional  

integer Selected organization. Example: 2

id   required  optional  

integer Selected organization. Example: 1

Tests

API endpoints for health check of API

Health check for API

This endpoint is api status health check

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/health" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer YOUR_TOKEN"
const url = new URL(
    "https://openapi.sweepandgo.com/api/health"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_TOKEN",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/health';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer YOUR_TOKEN',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/health'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer YOUR_TOKEN'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


{
    "status": "OK",
    "version": "v1"
}
 

Request      

GET api/health

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: Bearer YOUR_TOKEN

Test webhooks locally

requires authentication

Example request:
curl --request POST \
    "https://openapi.sweepandgo.com/api/test" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://openapi.sweepandgo.com/api/test"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/test';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/test'
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers)
response.json()

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": "test"
}
 

Request      

POST api/test

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Test API method for v1 endpoints - does not do anything, just returns what it received and triggers test webhooks.

requires authentication

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v1/welcome" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/welcome"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/welcome';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/welcome'
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (403):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "errors": [
        "API key is not valid"
    ]
}
 

Request      

GET api/v1/welcome

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Test API method for v2 endpoints - didn't do anything, just returns what it received.

requires authentication

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/welcome" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/welcome"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/welcome';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/welcome'
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (403):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "errors": [
        "API key is not valid"
    ]
}
 

Request      

GET api/v2/welcome

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Clients list

API endpoints for getting clients

Get active clients

requires authentication

This endpoint retuns all active clients with pagination.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v1/clients/active?page=2" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/clients/active"
);

const params = {
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/clients/active';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/clients/active'
params = {
  'page': '2',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
"data": [
{
"client": "rcl_MTPQPRUUUY7G",
"status": "active",
"type": "employee_portal",
"email": "demo@mail.com",
"first_name": "John",
"last_name": "Doe",
"address": "3289 Summit Street",
"zip_code": "52801",
"home_phone": null,
"cell_phone": 2344328676,
"subscription_names": "2w-3d,Deodorising",
"one_time_client": false,
"channel": "sms",
"on_the_way": true,
"completed": true,
"off_schedule": false,
"tracking_field": "utm_campaign=blog_post &utm_medium=social&utm_source=facebook",
"service_days": "Monday",
"assigned_to": "Alissa Doe",
"cleanup_frequency": "once_a_week",
}
],
"paginate": {
"total": 1,
"count": 1,
"per_page": 10,
"current_page": 1,
"total_pages": 1
}
}
 

Request      

GET api/v1/clients/active

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Get results for specific page. Example: 2

Get active clients with no active subscription

requires authentication

This endpoint returns all active clients with no active subscription and pagination.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v1/clients/active_no_subscription?page=2" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": \"consequatur\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/clients/active_no_subscription"
);

const params = {
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": "consequatur"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/clients/active_no_subscription';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '2',
        ],
        'json' => [
            'organization_id' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/clients/active_no_subscription'
payload = {
    "organization_id": "consequatur"
}
params = {
  'page': '2',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
"data": [
{
"client": "rcl_MTPQPRUUUY7G",
"status": "active",
"type": "employee_portal",
"email": "demo@mail.com",
"first_name": "John",
"last_name": "Doe",
"address": "3289 Summit Street",
"zip_code": "52801",
"home_phone": null,
"cell_phone": 2344328676,
"channel": "sms",
"on_the_way": true,
"completed": true,
"off_schedule": false,
"subscription_names": "2w-3d,Deodorising",
"one_time_client": false,
"tracking_field": "utm_campaign=blog_post &utm_medium=social&utm_source=facebook",
 "service_days": "Monday",
 "assigned_to": "Alissa Doe",
 "cleanup_frequency": "once_a_week",
}
],
"paginate": {
"total": 1,
"count": 1,
"per_page": 10,
"current_page": 1,
"total_pages": 1
}
}
 

Request      

GET api/v1/clients/active_no_subscription

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Get results for specific page. Example: 2

Body Parameters

organization_id   string   

Example: consequatur

Get inactive clients

requires authentication

This endpoint returns all inactive clients for specific page of results.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v1/clients/inactive?page=2" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/clients/inactive"
);

const params = {
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/clients/inactive';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/clients/inactive'
params = {
  'page': '2',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
"data": [
{
"client": "rcl_MTPQPRUUUY7G",
"status": "inactive",
"type": "employee_portal",
"email": "demo@mail.com",
"first_name": "John",
"last_name": "Doe",
"address": "3289 Summit Street",
"zip_code": "52801",
"home_phone": null,
"cell_phone": 2344328676,
"channel": "sms",
"on_the_way": true,
"completed": true,
"off_schedule": false,
"subscription_names": "",
"one_time_client": false,
"tracking_field": "utm_campaign=blog_post &utm_medium=social&utm_source=facebook",
 "service_days": "Monday",
 "assigned_to": "Alissa Doe",
 "cleanup_frequency": "once_a_week",
}
],
"paginate": {
"total": 1,
"count": 1,
"per_page": 10,
"current_page": 1,
"total_pages": 1
}
}
 

Request      

GET api/v1/clients/inactive

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Get results for specific page. Example: 2

Get payments and client details

requires authentication

Get all payments for specific client and client details.

Example request:
curl --request POST \
    "https://openapi.sweepandgo.com/api/v2/clients/client_details" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"client\": \"rcl_MTPQPRUUUY7G\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/clients/client_details"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "client": "rcl_MTPQPRUUUY7G"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/clients/client_details';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'client' => 'rcl_MTPQPRUUUY7G',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/clients/client_details'
payload = {
    "client": "rcl_MTPQPRUUUY7G"
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{"client": "rcl_MTPQPRUUUY7G",
 "status": "active",
 "type": "employee_portal",
 "email": "demo@mail.com",
 "first_name": "John",
 "last_name": "Doe",
 "address": "3289 Summit Street",
 "zip_code": "52801",
 "home_phone": 2344328656,
 "cell_phone": 2344328676,
 "channel": "sms",
 "on_the_way": true,
 "completed": true,
 "off_schedule": false,
 "tracking_field": "utm_campaign=blog_post &utm_medium=social&utm_source=facebook",
 "service_days": "Monday",
 "assigned_to": "Alissa Doe",
 "cleanup_frequency": "once_a_week",
 "sum_payments": 10.00,
            "payments": {
                                 {
                                     "id": 1049219,
                                     "date": "2024-05-01",
                                     "amount": 139.43,
                                     "tip_amount": "5.00",
                                     "status": "succeeded",
                                     "type": "credit_card",
                                     "description": "Payment for invoice(s) 199-66362-240501-2-1294170",
                                     "created_at": "2024-05-01 11:19:38"
                                 },
                                 {
                                     "id": 1048709,
                                     "date": "2024-05-01",
                                     "amount": 139.43,
                                     "tip_amount": "0.00",
                                     "status": "failed",
                                     "type": "credit_card",
                                     "description": "Payment for invoice(s) 199-66362-240501-2-1294170",
                                     "created_at": "2024-05-01 11:11:13"
                                 }
                       }
          }
 

Request      

POST api/v2/clients/client_details

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

client   required  optional  

string Unique client string in your organization. Example: rcl_MTPQPRUUUY7G

requires authentication

Search client by email to get client details.

Example request:
curl --request POST \
    "https://openapi.sweepandgo.com/api/v2/clients/client_search" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"john@doe.com\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/clients/client_search"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "john@doe.com"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/clients/client_search';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'email' => 'john@doe.com',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/clients/client_search'
payload = {
    "email": "john@doe.com"
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{"client": "rcl_MTPQPRUUUY7G",
 "status": "active",
 "type": "employee_portal",
 "email": "john@doe.com",
 "first_name": "John",
 "last_name": "Doe",
 "address": "3289 Summit Street",
 "zip_code": "52801",
 "home_phone": 2344328656,
 "cell_phone": 2344328676,
 "channel": "sms",
 "on_the_way": true,
 "completed": true,
 "off_schedule": false,
 "tracking_field": "utm_campaign=blog_post &utm_medium=social&utm_source=facebook",
 "service_days": "Monday",
 "assigned_to": "Alissa Doe",
 "cleanup_frequency": "once_a_week",
          }
 

Onboarding new clients

API endpoints for onboarding new clients

Onboarding new client within Sweep&Go application

requires authentication

This endpoint is used for new client registration within Sweep&Go application

Example request:
curl --request PUT \
    "https://openapi.sweepandgo.com/api/v1/residential/onboarding" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"zip_code\": 12110,
    \"number_of_dogs\": 2,
    \"last_time_yard_was_thoroughly_cleaned\": \"one_week\",
    \"clean_up_frequency\": \"once_a_week\",
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"email\": \"mail@email.com\",
    \"home_address\": \"1494 Ben Street\",
    \"city\": \"Latham\",
    \"state\": \"TX\",
    \"home_phone_number\": \"7897666790\",
    \"cell_phone_number\": \"9897633690\",
    \"initial_cleanup_required\": true,
    \"cleanup_notification_type\": \"completed,on_the_way,completed\",
    \"cleanup_notification_channel\": \"sms\",
    \"how_heard_about_us\": \"social_media\",
    \"how_heard_answer\": \"Facebook\",
    \"additional_comment\": \"Please clean my yard.\",
    \"credit_card_token\": \"tok_5678967890678 or 678987678909876\",
    \"name_on_card\": \"John Doe\",
    \"cvv\": \"112\",
    \"postal\": \"28301\",
    \"expiry\": \"0924\",
    \"dog_name\": [
        \"Max\",
        \"Oskar\"
    ],
    \"safe_dog\": [
        \"yes\",
        \"no\"
    ],
    \"dog_breed\": [
        \"Poodle\",
        \"Bulldog\"
    ],
    \"dog_comment\": [
        \"nice and kind\",
        \"very aggressive\"
    ],
    \"areas_to_clean\": \"Front Yard, Back Yard\",
    \"gated_community\": \"67890\",
    \"gate_location\": \"left\",
    \"gate_code\": \"1234\",
    \"tracking_field\": \"utm_campaign=blog_post&utm_medium=social&utm_source=facebook\",
    \"cross_sells\": [
        1,
        2,
        5
    ]
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/residential/onboarding"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "zip_code": 12110,
    "number_of_dogs": 2,
    "last_time_yard_was_thoroughly_cleaned": "one_week",
    "clean_up_frequency": "once_a_week",
    "first_name": "John",
    "last_name": "Doe",
    "email": "mail@email.com",
    "home_address": "1494 Ben Street",
    "city": "Latham",
    "state": "TX",
    "home_phone_number": "7897666790",
    "cell_phone_number": "9897633690",
    "initial_cleanup_required": true,
    "cleanup_notification_type": "completed,on_the_way,completed",
    "cleanup_notification_channel": "sms",
    "how_heard_about_us": "social_media",
    "how_heard_answer": "Facebook",
    "additional_comment": "Please clean my yard.",
    "credit_card_token": "tok_5678967890678 or 678987678909876",
    "name_on_card": "John Doe",
    "cvv": "112",
    "postal": "28301",
    "expiry": "0924",
    "dog_name": [
        "Max",
        "Oskar"
    ],
    "safe_dog": [
        "yes",
        "no"
    ],
    "dog_breed": [
        "Poodle",
        "Bulldog"
    ],
    "dog_comment": [
        "nice and kind",
        "very aggressive"
    ],
    "areas_to_clean": "Front Yard, Back Yard",
    "gated_community": "67890",
    "gate_location": "left",
    "gate_code": "1234",
    "tracking_field": "utm_campaign=blog_post&utm_medium=social&utm_source=facebook",
    "cross_sells": [
        1,
        2,
        5
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/residential/onboarding';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'zip_code' => 12110,
            'number_of_dogs' => 2,
            'last_time_yard_was_thoroughly_cleaned' => 'one_week',
            'clean_up_frequency' => 'once_a_week',
            'first_name' => 'John',
            'last_name' => 'Doe',
            'email' => 'mail@email.com',
            'home_address' => '1494 Ben Street',
            'city' => 'Latham',
            'state' => 'TX',
            'home_phone_number' => '7897666790',
            'cell_phone_number' => '9897633690',
            'initial_cleanup_required' => true,
            'cleanup_notification_type' => 'completed,on_the_way,completed',
            'cleanup_notification_channel' => 'sms',
            'how_heard_about_us' => 'social_media',
            'how_heard_answer' => 'Facebook',
            'additional_comment' => 'Please clean my yard.',
            'credit_card_token' => 'tok_5678967890678 or 678987678909876',
            'name_on_card' => 'John Doe',
            'cvv' => '112',
            'postal' => '28301',
            'expiry' => '0924',
            'dog_name' => [
                'Max',
                'Oskar',
            ],
            'safe_dog' => [
                'yes',
                'no',
            ],
            'dog_breed' => [
                'Poodle',
                'Bulldog',
            ],
            'dog_comment' => [
                'nice and kind',
                'very aggressive',
            ],
            'areas_to_clean' => 'Front Yard, Back Yard',
            'gated_community' => '67890',
            'gate_location' => 'left',
            'gate_code' => '1234',
            'tracking_field' => 'utm_campaign=blog_post&utm_medium=social&utm_source=facebook',
            'cross_sells' => [
                1,
                2,
                5,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/residential/onboarding'
payload = {
    "zip_code": 12110,
    "number_of_dogs": 2,
    "last_time_yard_was_thoroughly_cleaned": "one_week",
    "clean_up_frequency": "once_a_week",
    "first_name": "John",
    "last_name": "Doe",
    "email": "mail@email.com",
    "home_address": "1494 Ben Street",
    "city": "Latham",
    "state": "TX",
    "home_phone_number": "7897666790",
    "cell_phone_number": "9897633690",
    "initial_cleanup_required": true,
    "cleanup_notification_type": "completed,on_the_way,completed",
    "cleanup_notification_channel": "sms",
    "how_heard_about_us": "social_media",
    "how_heard_answer": "Facebook",
    "additional_comment": "Please clean my yard.",
    "credit_card_token": "tok_5678967890678 or 678987678909876",
    "name_on_card": "John Doe",
    "cvv": "112",
    "postal": "28301",
    "expiry": "0924",
    "dog_name": [
        "Max",
        "Oskar"
    ],
    "safe_dog": [
        "yes",
        "no"
    ],
    "dog_breed": [
        "Poodle",
        "Bulldog"
    ],
    "dog_comment": [
        "nice and kind",
        "very aggressive"
    ],
    "areas_to_clean": "Front Yard, Back Yard",
    "gated_community": "67890",
    "gate_location": "left",
    "gate_code": "1234",
    "tracking_field": "utm_campaign=blog_post&utm_medium=social&utm_source=facebook",
    "cross_sells": [
        1,
        2,
        5
    ]
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "success": "success"
}
 

Request      

PUT api/v1/residential/onboarding

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

zip_code   integer   

Zip code. Example: 12110

number_of_dogs   integer   

Number of dogs. Example: 2

last_time_yard_was_thoroughly_cleaned   string   

When was yard last time cleaned. Available options are: one_week, two_weeks, three_weeks, one_month, two_months, 3-4_months, 5-6_months, 7-9_months, 10+_months. Example: one_week

clean_up_frequency   string   

What is cleanup frequency. Available options are: seven_times_a_week,six_times_a_week,five_times_a_week,four_times_a_week,three_times_a_week,two_times_a_week,once_a_week,bi_weekly,twice_per_month,every_three_weeks,every_four_weeks,once_a_month,one_time. Example: once_a_week

first_name   string   

Client first name. Example: John

last_name   string   

Client last name. Example: Doe

email   string   

Client email. Example: mail@email.com

home_address   string   

Client address. Example: 1494 Ben Street

city   string   

Client city. Example: Latham

state   string   

Client state - two letters abbreviation. Example: TX

home_phone_number   string  optional  

Client home phone number. Example: 7897666790

cell_phone_number   string  optional  

Client cell phone number. Example: 9897633690

initial_cleanup_required   boolean  optional  

Did client ask for initial cleanup. Example: true

cleanup_notification_type   string  optional  

Cleanup Notification type. Available options are: off_schedule, on_the_way and completed. Example: completed,on_the_way,completed

cleanup_notification_channel   string  optional  

The way your client get notifications. Available options are: sms, email or call. Example: sms

how_heard_about_us   string  optional  

How client heard about you. Available options are: search_engine, previous_client, referred_by_family_or_friend, flier_from_business, directory_listing, social_media, vehicle_signage, radio_ad, local_event, gift_certificate, other. Example: social_media

how_heard_answer   string  optional  

How client heard about you details. Example: Facebook

additional_comment   string  optional  

Additional client comment. Example: Please clean my yard.

credit_card_token   string  optional  

Token from Card connect or Stripe for Credit card on file. Example: tok_5678967890678 or 678987678909876

name_on_card   string  optional  

Name on Card. Example: John Doe

cvv   string  optional  

CVV for Credit card on file if use Card connect cards. Example: 112

postal   string  optional  

Postal for Card connect credit card on file. Example: 28301

expiry   string  optional  

Expiry for Card connect credit card on file. Example: 0924

dog_name   string[]  optional  

This is list of dogs names.

safe_dog   string[]  optional  

This is list of information is dog safe for tech.

dog_breed   string[]  optional  

This is list of dog breeds.

dog_comment   string[]  optional  

This is list of comments for each dog.

areas_to_clean   string  optional  

Areas to clean comma separated string. Example: Front Yard, Back Yard

gated_community   string  optional  

Gated community. Example: 67890

gate_location   string  optional  

Gate location. Example: left

gate_code   string  optional  

Gate code. Example: 1234

tracking_field   string  optional  

UTM tracking code. Example: utm_campaign=blog_post&utm_medium=social&utm_source=facebook

cross_sells   string[]  optional  

This is list of cross sells.

Leads list

API endpoints for getting leads

Get all Leads

requires authentication

This endpoint returns all leads with pagination.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v1/leads/list?page=2" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": \"ex\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/leads/list"
);

const params = {
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": "ex"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/leads/list';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '2',
        ],
        'json' => [
            'organization_id' => 'ex',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/leads/list'
payload = {
    "organization_id": "ex"
}
params = {
  'page': '2',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
"data": [
{
"lead": "rld_MTPQPRUUUY7G",
"status": "active",
"type": "onboarding_form",
"email": "demo@mail.com",
"name": "John Doe",
"address": "3289 Summit Street",
"zip_code": "52801",
"home_phone": null,
"cell_phone": 2344328676,
}
],
"paginate": {
"total": 1,
"count": 1,
"per_page": 10,
"current_page": 1,
"total_pages": 1
}
}
 

Request      

GET api/v1/leads/list

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Get results for specific page. Example: 2

Body Parameters

organization_id   string   

Example: ex

Get Out of area leads

requires authentication

This endpoint returns all leads who are Out of area with pagination

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v1/leads/out_of_service?page=2" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/leads/out_of_service"
);

const params = {
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/leads/out_of_service';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/leads/out_of_service'
params = {
  'page': '2',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
"data": [
{
"lead": "rld_MTPQPRUUUY7G",
"status": "lead",
"type": "out_of_area",
"email": "demo@mail.com",
"name": "John Doe",
"address": "3289 Summit Street",
"zip_code": "52801",
"home_phone": null,
"cell_phone": 2344328676,
}
],
"paginate": {
"total": 1,
"count": 1,
"per_page": 10,
"current_page": 1,
"total_pages": 1
}
}
 

Request      

GET api/v1/leads/out_of_service

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Get results for specific page. Example: 2

Dispatch Board

API endpoints for getting list of jobs

Dispatch Board

requires authentication

This endpoint returns jobs list for a selected date - Dispatch Board for selected date.

If returned id is bigger than zero that means that the job is already dispatched. If it’s zero, it means that job is not dispatched.

Job status can be: pending(1), completed(2), skipped(3), missed(4), started(5) and dispatched(6)

Job type can be: custom, initial, one_time, reclean and recurring

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v1/dispatch_board/jobs_for_date?date=2022-03-28" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"2024-10-02\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/dispatch_board/jobs_for_date"
);

const params = {
    "date": "2022-03-28",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date": "2024-10-02"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/dispatch_board/jobs_for_date';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'date' => '2022-03-28',
        ],
        'json' => [
            'date' => '2024-10-02',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/dispatch_board/jobs_for_date'
payload = {
    "date": "2024-10-02"
}
params = {
  'date': '2022-03-28',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
"data": [
{
"id": 0,
"client_location_id": 2603,
"client_id": null,
"commercial_location_id": 142,
"commercial_client_id": 84,
"pricing_plan_name": "Pet waste stations",
"commercial": 1,
"full_name": "Little Lambs Foundation for Kids",
"address": "1011 W 400 N",
"city": "Logan",
"zip": "84321",
"state_name": "Utah",
"clean_up_frequency": "1xW",
"count_cross_sells": 1,
"assigned_to_name": "Bart Cage",
"assigned_to_id": 265,
"estimate_time": "00:15",
"type": "recurring",
"end_time": null,
"start_time": null,
"status_id": 1,
"status_name": "pending",
"duration": "-",
"gate_code": null,
"gated_community": null,
"lat": 41.7389868,
"lng": -111.860119,
"number_of_dogs": null,
"safe_dogs": null,
"home_phone": "5678904567",
"cell_phone": "4567845678",
"email": "demo@demo.com"
},
{
"id": 0,
"client_location_id": 2726,
"client_id": 1580,
"commercial_location_id": null,
"commercial_client_id": null,
"pricing_plan_name": "Regular Plan",
"commercial": 0,
"full_name": "Cara Deen",
"address": "625 South 100 West",
"city": "Garland",
"zip": "84312",
"state_name": "Utah",
"clean_up_frequency": "two_times_a_week",
"count_cross_sells": 0,
"assigned_to_name": "Richard Dawson",
"assigned_to_id": 258,
"estimate_time": "00:15",
"type": "recurring",
"end_time": null,
"start_time": null,
"status_id": 1,
"status_name": "pending",
"duration": "-",
"gate_code": null,
"gated_community": null,
"lat": 41.7344582,
"lng": -112.1634671,
"number_of_dogs": 2,
"safe_dogs": "",
"home_phone": "5678904567",
"cell_phone": "4567845678",
"email": "demo@demo.com"
},
{
"id": 156608,
"client_location_id": 2325,
"type": "recurring",
"organization_id": 158,
"client_id": null,
"full_name": "Community Garden",
"address": "468 1/2 S 200 W",
"city": "Logan",
"zip": "84321",
"state_name": "Utah",
"assigned_to_id": 265,
"assigned_to_name": "Bart Cage",
"end_time": null,
"start_time": null,
"status_id": 6,
"lat": 41.7228185,
"lng": -111.8397648,
"estimate_time": "00:15",
"job_image": null,
"image_for_client": null,
"note": null,
"note_for_client": null,
"order": 1,
"arrival": 4,
"distance": "3.00",
"skip_reason_title": null,
"gate_code": null,
"count_cross_sells": 1,
"number_of_dogs": null,
"safe_dogs": null,
"gated_community": null,
"commercial": 1,
"work_areas": null,
"commercial_client_id": 76,
"commercial_location_id": 127,
"start_lat": null,
"start_lng": null,
"start_distance": null,
"clean_up_frequency": null,
"end_lat": null,
"end_lng": null,
"end_distance": null,
"skip_lat": null,
"skip_lng": null,
"skip_distance": null,
"status_name": "dispatched",
"duration": "-",
"home_phone": "5678904567",
"cell_phone": "4567845678",
"email": "demo@demo.com"
},
{
"id": 156890,
"client_location_id": 2578,
"type": "custom",
"organization_id": 158,
"client_id": 1567,
"full_name": "Carolina Wozniacki",
"address": "149 W 300 N",
"city": "Logan",
"zip": "84321",
"state_name": "Utah - UT",
"assigned_to_id": 246,
"assigned_to_name": "Ena Adamz",
"end_time": "2022-03-29 08:24:07",
"start_time": "2022-03-29 08:22:08",
"status_id": 2,
"lat": 41.7374576,
"lng": -111.8385534,
"estimate_time": "00:15",
"job_image": null,
"image_for_client": null,
"note": "",
"note_for_client": "",
"order": 5,
"arrival": null,
"distance": null,
"skip_reason_title": null,
"gate_code": null,
"count_cross_sells": 0,
"number_of_dogs": 1,
"safe_dogs": "",
"gated_community": null,
"commercial": 0,
"work_areas": null,
"commercial_client_id": null,
"commercial_location_id": null,
"start_lat": null,
"start_lng": null,
"start_distance": null,
"clean_up_frequency": "bi_weekly",
"end_lat": null,
"end_lng": null,
"end_distance": null,
"skip_lat": null,
"skip_lng": null,
"skip_distance": null,
"status_name": "completed",
"duration": "00:21",
"home_phone": "5678904567",
"cell_phone": "4567845678",
"email": "demo@demo.com"
}
]
}
}
 

Request      

GET api/v1/dispatch_board/jobs_for_date

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

date   string   

Get clients that have a cleanup on the selected date. Format must be YYYY-MM-DD. Example: 2022-03-28

Body Parameters

date   string   

Must be a valid date in the format Y-m-d. Example: 2024-10-02

Access Token checker

API endpoint for check Access tokens

Show access token details

requires authentication

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/check_token?token=vUcSxeEgTgg0I65bPEgKBqU0AjBRz8cy61843egzKkI3hAcYJ9ErNYe2MTEoIEWo" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"dolorem\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/check_token"
);

const params = {
    "token": "vUcSxeEgTgg0I65bPEgKBqU0AjBRz8cy61843egzKkI3hAcYJ9ErNYe2MTEoIEWo",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "token": "dolorem"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/check_token';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'token' => 'vUcSxeEgTgg0I65bPEgKBqU0AjBRz8cy61843egzKkI3hAcYJ9ErNYe2MTEoIEWo',
        ],
        'json' => [
            'token' => 'dolorem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/check_token'
payload = {
    "token": "dolorem"
}
params = {
  'token': 'vUcSxeEgTgg0I65bPEgKBqU0AjBRz8cy61843egzKkI3hAcYJ9ErNYe2MTEoIEWo',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{"webhooks_url": "https://google.com", "enabled_events":'["lead:in_service_area","lead:delete","client:changed_status"]'}
 

Request      

GET api/v2/check_token

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

token   string   

string Webhooks token. Example: vUcSxeEgTgg0I65bPEgKBqU0AjBRz8cy61843egzKkI3hAcYJ9ErNYe2MTEoIEWo

Body Parameters

token   string   

Example: dolorem

Multi organization zip code check

API endpoint for multi organization zip code check

Calculate nearest organization and organizations who serve specific zip area

requires authentication

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/check_zip_code_multi_organizations?zip_code=12345&slugs=slugs%5B%5D%3D50-scoopers-mvizn%26slugs%5B%5D%3Dena-adamz-midmc" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"zip_code\": \"94815\",
    \"slugs\": \"vel\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/check_zip_code_multi_organizations"
);

const params = {
    "zip_code": "12345",
    "slugs": "slugs[]=50-scoopers-mvizn&slugs[]=ena-adamz-midmc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "zip_code": "94815",
    "slugs": "vel"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/check_zip_code_multi_organizations';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'zip_code' => '12345',
            'slugs' => 'slugs[]=50-scoopers-mvizn&slugs[]=ena-adamz-midmc',
        ],
        'json' => [
            'zip_code' => '94815',
            'slugs' => 'vel',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/check_zip_code_multi_organizations'
payload = {
    "zip_code": "94815",
    "slugs": "vel"
}
params = {
  'zip_code': '12345',
  'slugs': 'slugs[]=50-scoopers-mvizn&slugs[]=ena-adamz-midmc',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
    "url": "https://google.com",
    "slug": "ena-adamz-midmc",
    "out_of_area": 1
}
 

Request      

GET api/v2/check_zip_code_multi_organizations

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

zip_code   string   

integer Zip code for client. Example: 12345

slugs   string   

array Lists of your slug organizations. Example: slugs[]=50-scoopers-mvizn&slugs[]=ena-adamz-midmc

Body Parameters

zip_code   string   

Must be 5 digits. Example: 94815

slugs   string   

Example: vel

Check is organization premium - only premium organization have access to Wordpress plugin

requires authentication

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/check_premium_organization?slug=ena-adamz-midmc" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"slug\": \"unde\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/check_premium_organization"
);

const params = {
    "slug": "ena-adamz-midmc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "slug": "unde"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/check_premium_organization';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'slug' => 'ena-adamz-midmc',
        ],
        'json' => [
            'slug' => 'unde',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/check_premium_organization'
payload = {
    "slug": "unde"
}
params = {
  'slug': 'ena-adamz-midmc',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
    "valid": true,
    "name": "Ena adamz"
}
 

Request      

GET api/v2/check_premium_organization

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

slug   string   

string Lists of your slug organization. Example: ena-adamz-midmc

Body Parameters

slug   string   

Example: unde

Onboarding form

The client onboarding workflow helps dog owners get a free quote and sign up for service on their own.

Each account has its own unique and prebuilt client onboarding url which you may want to use as a reference. To obtain your url, please visit Employee portal > Settings > Client Onboarding > View in Browser then copy the url shown in the address bar. The form should look like this: https://client.sweepandgo.com/unique-slug/register

Get price, tax percent, cross sells, cross sells placement, custom price and more

requires authentication

If the zip code is within the account service area, you may obtain price based on account (organization) slug, number of dogs, zip code, cleanup frequency and the last time the yard was cleaned.

If the initial and one time cleanup prices do not depend on the number of dogs and when the yard was cleaned last time, the account may set custom prices.

The regular price can be displayed per cleanup or as fixed price per default billing interval. To choose how to display your pricing on your client onboarding form go to Employee Portal > Settings > Billing > Onboarding Price display section > Edit > select price display option > Save.

The account special offers and important disclaimers may be highlighted within the price display. To update them go to Settings > Client Onboarding > Callouts & Disclaimers.

If the account offers additional services such as odor eliminator or kitty litter exchange you may also display those prices on the client onboarding form. To add additional services, go to Employee Portal > Settings > Additional Services > Add New.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/client_on_boarding/price_registration_form?organization=ena-adamz-midmc&last_time_yard_was_thoroughly_cleaned=one_week&clean_up_frequency=two_times_a_week&number_of_dogs=2&zip_code=12345" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization\": \"fuga\",
    \"number_of_dogs\": \"sed\",
    \"zip_code\": \"09818\",
    \"clean_up_frequency\": \"et\",
    \"last_time_yard_was_thoroughly_cleaned\": \"facilis\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/price_registration_form"
);

const params = {
    "organization": "ena-adamz-midmc",
    "last_time_yard_was_thoroughly_cleaned": "one_week",
    "clean_up_frequency": "two_times_a_week",
    "number_of_dogs": "2",
    "zip_code": "12345",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization": "fuga",
    "number_of_dogs": "sed",
    "zip_code": "09818",
    "clean_up_frequency": "et",
    "last_time_yard_was_thoroughly_cleaned": "facilis"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/price_registration_form';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'organization' => 'ena-adamz-midmc',
            'last_time_yard_was_thoroughly_cleaned' => 'one_week',
            'clean_up_frequency' => 'two_times_a_week',
            'number_of_dogs' => '2',
            'zip_code' => '12345',
        ],
        'json' => [
            'organization' => 'fuga',
            'number_of_dogs' => 'sed',
            'zip_code' => '09818',
            'clean_up_frequency' => 'et',
            'last_time_yard_was_thoroughly_cleaned' => 'facilis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/price_registration_form'
payload = {
    "organization": "fuga",
    "number_of_dogs": "sed",
    "zip_code": "09818",
    "clean_up_frequency": "et",
    "last_time_yard_was_thoroughly_cleaned": "facilis"
}
params = {
  'organization': 'ena-adamz-midmc',
  'last_time_yard_was_thoroughly_cleaned': 'one_week',
  'clean_up_frequency': 'two_times_a_week',
  'number_of_dogs': '2',
  'zip_code': '12345',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
    "price": {
        "value": "85.00",
        "category": "prepaid",
        "billing_interval": "monthly"
    },
    "tax_percent": "10.250",
    "tax_percent_others": 1,
    "pricing_zip_code_type": "regular",
    "custom_price": {
        "short_description": "title",
        "long_description": "desc"
    },
    "show_price_options": {
        "show_per_cleanup": 1,
        "show_per_billing_interval": 1,
        "default_billing_interval": "monthly"
    },
    "cross_sells": [
        {
            "id": 1,
            "name": "Deodorizing",
            "description": "Eliminate poop and urine smell!",
            "unit": "Monthly Treatment (up to 1/4 acre)",
            "unit_amount": "39.99",
            "taxable": 1,
            "service": 1,
            "tax_percent": "0.000",
            "count_clients": 28
        },
        {
            "id": 2,
            "name": "Kitty Litter Exchange",
            "description": null,
            "unit": "1",
            "unit_amount": "20.00",
            "taxable": 0,
            "service": 0,
            "tax_percent": "0.000",
            "count_clients": 2
        },
        {
            "id": 3,
            "name": "Dog Walking",
            "description": null,
            "unit": "15",
            "unit_amount": "30.00",
            "taxable": 0,
            "service": 1,
            "tax_percent": "0.000",
            "count_clients": 1
        },
        {
            "id": 4,
            "name": "Yard Size XL",
            "description": "3/4 Acre Surcharge",
            "unit": "Monthly",
            "unit_amount": "30.00",
            "taxable": 0,
            "service": 1,
            "tax_percent": "0.000",
            "count_clients": 0
        },
        {
            "id": 5,
            "name": "Yard Size XXL",
            "description": "1 Acre Surcharge",
            "unit": "Monthly",
            "unit_amount": "40.00",
            "taxable": 0,
            "service": 1,
            "tax_percent": "0.000",
            "count_clients": 0
        },
        {
            "id": 6,
            "name": "Front Yard",
            "description": null,
            "unit": "Weekly",
            "unit_amount": "10.00",
            "taxable": 0,
            "service": 1,
            "tax_percent": "0.000",
            "count_clients": 1
        },
        {
            "id": 7,
            "name": "Front Yard",
            "description": null,
            "unit": "Monthly",
            "unit_amount": "40.00",
            "taxable": 0,
            "service": 1,
            "tax_percent": "0.000",
            "count_clients": 0
        }
    ],
    "cross_sells_placement": "top"
}
 

Request      

GET api/v2/client_on_boarding/price_registration_form

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

organization   string   

Slug of your organization. Example: ena-adamz-midmc

last_time_yard_was_thoroughly_cleaned   string   

When last time yard was thoroughly cleaned. Example: one_week

clean_up_frequency   string   

Clean up frequency for the yard. Example: two_times_a_week

number_of_dogs   string   

Number of dogs. Example: 2

zip_code   string   

Zip code. Example: 12345

Body Parameters

organization   string   

Example: fuga

number_of_dogs   string   

Example: sed

zip_code   string   

Must be 5 digits. Example: 09818

clean_up_frequency   string   

Example: et

last_time_yard_was_thoroughly_cleaned   string   

Example: facilis

Get onboarding form filed, terms of use, callout and disclaimer and list of states

requires authentication

The length of the signup form and the fields to fill out depend on your signup form settings.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/client_on_boarding/service_registration_form?organization=ena-adamz-midmc" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization\": \"exercitationem\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/service_registration_form"
);

const params = {
    "organization": "ena-adamz-midmc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization": "exercitationem"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/service_registration_form';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'organization' => 'ena-adamz-midmc',
        ],
        'json' => [
            'organization' => 'exercitationem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/service_registration_form'
payload = {
    "organization": "exercitationem"
}
params = {
  'organization': 'ena-adamz-midmc',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
    "form_fields": [
        {
            "value": "",
            "required": false,
            "step": 2,
            "frontend_name": "Coupon Code",
            "frontend_type": "textfield",
            "slug": "coupon_code",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "1,2,3,4,5",
            "required": true,
            "step": 2,
            "frontend_name": "Number Of Dogs",
            "frontend_type": "select_single",
            "slug": "number_of_dogs",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "two_times_a_week,once_a_week,bi_weekly,once_a_month,one_time",
            "required": true,
            "step": 2,
            "frontend_name": "Cleanup Frequency",
            "frontend_type": "select_single",
            "slug": "clean_up_frequency",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "one_week,two_weeks,three_weeks,one_month,two_months,3-4_months,5-6_months,7-9_months,10+_months",
            "required": true,
            "step": 2,
            "frontend_name": "Last Time Yard Was Thoroughly Cleaned",
            "frontend_type": "select_single",
            "slug": "last_time_yard_was_thoroughly_cleaned",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": true,
            "step": 3,
            "frontend_name": "First Name",
            "frontend_type": "textfield",
            "slug": "first_name",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": true,
            "step": 3,
            "frontend_name": "Last Name",
            "frontend_type": "textfield",
            "slug": "last_name",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": true,
            "step": 3,
            "frontend_name": "Your Email Address",
            "frontend_type": "textfield",
            "slug": "your_email_address",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": true,
            "step": 3,
            "frontend_name": "Confirm Email Address",
            "frontend_type": "textfield",
            "slug": "confirm_email_address",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": false,
            "step": 3,
            "frontend_name": "Home Phone Number",
            "frontend_type": "textfield",
            "slug": "home_phone_number",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": true,
            "step": 3,
            "frontend_name": "Cell Phone Number",
            "frontend_type": "textfield",
            "slug": "cell_phone_number",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": true,
            "step": 3,
            "frontend_name": "Home Address",
            "frontend_type": "textfield",
            "slug": "home_address",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": true,
            "step": 3,
            "frontend_name": "City",
            "frontend_type": "textfield",
            "slug": "city",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": true,
            "step": 3,
            "frontend_name": "State",
            "frontend_type": "state",
            "slug": "state_province_region",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": false,
            "step": 3,
            "frontend_name": "Dogs Name",
            "frontend_type": "textfield",
            "slug": "dogs_name",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "yes,no",
            "required": true,
            "step": 3,
            "frontend_name": "Is it safe for us to be in the yard with your dog?",
            "frontend_type": "select_single",
            "slug": "safe_dog",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": false,
            "step": 3,
            "frontend_name": "Breed",
            "frontend_type": "textfield",
            "slug": "dogs_breeds",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": false,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": false,
            "step": 3,
            "frontend_name": "Additional comment for dog",
            "frontend_type": "textfield",
            "slug": "comments_for_each_dog",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "left,right,alley,no_gate,other",
            "required": true,
            "step": 3,
            "frontend_name": "Where is your gate located?",
            "frontend_type": "select_single",
            "slug": "gate_location",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": true,
            "step": 3,
            "frontend_name": "Gated community",
            "frontend_type": "textfield",
            "slug": "gated_community",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": "Please insert the code if any"
        },
        {
            "value": "Back Yard,Flower Beds,Deck/Patio,Dog Run,Garden,Side Yard (Left),Side Yard (Right),Area with Mulch,Area with Rocks",
            "required": true,
            "step": 3,
            "frontend_name": "Which areas should we clean?",
            "frontend_type": "select_multiple",
            "slug": "areas_to_clean",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "off_schedule,on_the_way,completed",
            "required": true,
            "step": 3,
            "frontend_name": "Cleanup Notifications",
            "frontend_type": "select_multiple",
            "slug": "cleanup_notification_type",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": "What cleanup message would you like to receive?"
        },
        {
            "value": "email,sms,call",
            "required": false,
            "step": 3,
            "frontend_name": "Notification Type",
            "frontend_type": "select_single",
            "slug": "cleanup_notification_chanel",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": "How would you like to receive cleanup notifications?"
        },
        {
            "value": "credit_card,check",
            "required": true,
            "step": 3,
            "frontend_name": "Please select your payment method",
            "frontend_type": "select_single",
            "slug": "payment_method",
            "organization_form_id": 289,
            "one_time": false,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "search_engine,previous_client,referred_by_family_or_friend,directory_listing,social_media,vehicle_signage,radio_ad,local_event,gift_certificate,other",
            "required": true,
            "step": 3,
            "frontend_name": "Please tell us how you heard about us",
            "frontend_type": "select_single",
            "slug": "how_heard_about_us",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        },
        {
            "value": "",
            "required": false,
            "step": 3,
            "frontend_name": "Additional comments",
            "frontend_type": "textfield",
            "slug": "additional_comment",
            "organization_form_id": 289,
            "one_time": true,
            "recurring": true,
            "show": true,
            "frontend_description": ""
        }
    ],
    "terms_of_use": {
        "content": "<p>As the client, you are responsible for maintaining safe access into and out of the yard (if we are unable to clean due to access, you will be charged for that cleanup), immediate notification of any changes in the number of pets and prompt payment of balances due.</p><p><br></p><p>Inclement weather may make it hazardous or impossible to make a scheduled cleanup. In this event, we will be responsible for servicing your yard as soon as possible.</p><p><br></p><p>If for any reason your pet(s) will not be using the yard for a certain period (i.e. vacation, illness, etc.) and you do not wish to be charged for an unnecessary visit(s), please let us know in advance to pause the service. </p><p><br></p><p>We assume no liabilities for damages to yards, gates, pets or other properties.</p><p><br></p><p>Fees and Promotions are subject to change at any time. In this rare circumstance, you will be notified at least two (2) weeks prior to any changes.</p><p><br></p><p>Either party may terminate service (in writing) at any time. Unpaid balances are due within 15 days.</p><p><br></p><p>By initiating service, both parties agree to the above terms and responsibilities.</p>"
    },
    "callout_disclaimer": {
        "callout": "Our Best Rate! You and Your pet will love our service.",
        "disclaimer": "We do not offer refunds for missed cleanups due to holidays, snow days or thunderstorms - Displayed pricing is for an average backyard up to an 1/8 of an acre - A valid credit card on file is required for recurring service."
    },
    "states": [
        {
            "id": 1,
            "name": "Alabama - AL"
        },
        {
            "id": 2,
            "name": "Alaska - AK"
        },
        {
            "id": 3,
            "name": "Arizona - AZ"
        },
        {
            "id": 4,
            "name": "Arkansas - AR"
        },
        {
            "id": 5,
            "name": "California - CA"
        },
        {
            "id": 6,
            "name": "Colorado - CO"
        },
        {
            "id": 7,
            "name": "Connecticut - CT"
        },
        {
            "id": 8,
            "name": "Delaware - DE"
        },
        {
            "id": 9,
            "name": "District of Columbia - DC"
        },
        {
            "id": 10,
            "name": "Florida - FL"
        },
        {
            "id": 11,
            "name": "Georgia - GA"
        },
        {
            "id": 12,
            "name": "Hawaii - HI"
        },
        {
            "id": 13,
            "name": "Idaho - ID"
        },
        {
            "id": 14,
            "name": "Illinois - IL"
        },
        {
            "id": 15,
            "name": "Indiana - IN"
        },
        {
            "id": 16,
            "name": "Iowa - IA"
        },
        {
            "id": 17,
            "name": "Kansas - KS"
        },
        {
            "id": 18,
            "name": "Kentucky - KY"
        },
        {
            "id": 19,
            "name": "Louisiana - LA"
        },
        {
            "id": 20,
            "name": "Maine - ME"
        },
        {
            "id": 33,
            "name": "Maryland - MD"
        },
        {
            "id": 34,
            "name": "Massachusetts - MA"
        },
        {
            "id": 35,
            "name": "Michigan - MI"
        },
        {
            "id": 36,
            "name": "Minnesota - MN"
        },
        {
            "id": 37,
            "name": "Mississippi - MS"
        },
        {
            "id": 38,
            "name": "Missouri - MO"
        },
        {
            "id": 21,
            "name": "Montana - MT"
        },
        {
            "id": 22,
            "name": "Nebraska - NE"
        },
        {
            "id": 23,
            "name": "Nevada - NV"
        },
        {
            "id": 24,
            "name": "New Hampshire - NH"
        },
        {
            "id": 25,
            "name": "New Jersey - NJ"
        },
        {
            "id": 26,
            "name": "New Mexico - NM"
        },
        {
            "id": 27,
            "name": "New York - NY"
        },
        {
            "id": 28,
            "name": "North Carolina - NC"
        },
        {
            "id": 29,
            "name": "North Dakota - ND"
        },
        {
            "id": 30,
            "name": "Ohio - OH"
        },
        {
            "id": 31,
            "name": "Oklahoma - OK"
        },
        {
            "id": 32,
            "name": "Oregon - OR"
        },
        {
            "id": 39,
            "name": "Pennsylvania - PA"
        },
        {
            "id": 40,
            "name": "Rhode Island - RI"
        },
        {
            "id": 41,
            "name": "South Carolina - SC"
        },
        {
            "id": 42,
            "name": "South Dakota - SD"
        },
        {
            "id": 43,
            "name": "Tennessee - TN"
        },
        {
            "id": 44,
            "name": "Texas - TX"
        },
        {
            "id": 45,
            "name": "Utah - UT"
        },
        {
            "id": 46,
            "name": "Vermont - VT"
        },
        {
            "id": 47,
            "name": "Virginia - VA"
        },
        {
            "id": 48,
            "name": "Washington - WA"
        },
        {
            "id": 49,
            "name": "West Virginia - WV"
        },
        {
            "id": 50,
            "name": "Wisconsin - WI"
        },
        {
            "id": 51,
            "name": "Wyoming - WY"
        }
    ]
}
 

Request      

GET api/v2/client_on_boarding/service_registration_form

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

organization   string   

string Slug of your organization. Example: ena-adamz-midmc

Body Parameters

organization   string   

Example: exercitationem

Get organization branding info

requires authentication

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/client_on_boarding/organization_data?organization=magnificent-scoopers-777-p4ycx" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization\": \"in\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/organization_data"
);

const params = {
    "organization": "magnificent-scoopers-777-p4ycx",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization": "in"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/organization_data';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'organization' => 'magnificent-scoopers-777-p4ycx',
        ],
        'json' => [
            'organization' => 'in',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/organization_data'
payload = {
    "organization": "in"
}
params = {
  'organization': 'magnificent-scoopers-777-p4ycx',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{"organization":
{analytic_enabled:1,
branding_color:"#39A597",
business_address:"1502 Morse St",
business_city:"Houston",
business_lat:"29.7521804",
business_lng:"-95.4058215",
business_name:"Magnificent Scoopers 777",
business_phone:"2071459875",
business_state:"Texas",
business_website:"https://www.sweepandgo.com/",
business_zip:"77019",
can_call_company_phone_client_portal:"1",
can_text_company_phone_client_portal:"1",
card_connect_site:null,
charges_enabled:1,
commercial_inventory_tracking:"0",
ga_tracking_id:"null",
logo:"",
organization:"magnificent-scoopers-777-p4ycx",
organization_can_have_onboarding:true,
organization_id:161
organization_name:"Magnificent Scoopers 777",
organization_status:"active",
pay_period:"monthly",
payroll_filter:"years_in_service,revenue,revenue_adjustment,distance,overtime_hours,vacation_hours,tips,reimbursement,deduction,number_of_jobs,number_of_complaints,mileage_rate,base_percentage,fixed_rate",
rating_tipping:"enabled_all"
send_invoice_email:"1",
show_company_address_client_portal:"1",
show_company_email_client_portal:"1",
show_company_phone_client_portal:"1",
show_logo_onboarding:"1",
show_name_onboarding:"0",
show_on_list:"0",
show_payroll_filed_tech:"1",
show_rating_comment_fieldtech:"1",
subscription_package:"Professional",
website:"http://www.superskooopers.com"}}
 

Request      

GET api/v2/client_on_boarding/organization_data

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

organization   string   

string Slug of organization. Example: magnificent-scoopers-777-p4ycx

Body Parameters

organization   string   

Example: in

Get default onboarding coupon if exists

requires authentication

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/client_on_boarding/coupon_find_default?organization=ena-adamz-midmc" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": \"ea\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/coupon_find_default"
);

const params = {
    "organization": "ena-adamz-midmc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": "ea"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/coupon_find_default';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'organization' => 'ena-adamz-midmc',
        ],
        'json' => [
            'organization_id' => 'ea',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/coupon_find_default'
payload = {
    "organization_id": "ea"
}
params = {
  'organization': 'ena-adamz-midmc',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{}
 

Request      

GET api/v2/client_on_boarding/coupon_find_default

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

organization   string   

string Slug of your organization. Example: ena-adamz-midmc

Body Parameters

organization_id   string   

Example: ea

Check coupon code valid

requires authentication

If the account runs any special promos new clients may enter a coupon code. To create promos and coupon codes, go to Employee Portal > Billing > Coupons > New.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/client_on_boarding/coupon_find?coupon_id=SPRING&organization=ena-adamz-midmc" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": \"explicabo\",
    \"coupon_id\": \"eum\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/coupon_find"
);

const params = {
    "coupon_id": "SPRING",
    "organization": "ena-adamz-midmc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": "explicabo",
    "coupon_id": "eum"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/coupon_find';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'coupon_id' => 'SPRING',
            'organization' => 'ena-adamz-midmc',
        ],
        'json' => [
            'organization_id' => 'explicabo',
            'coupon_id' => 'eum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/coupon_find'
payload = {
    "organization_id": "explicabo",
    "coupon_id": "eum"
}
params = {
  'coupon_id': 'SPRING',
  'organization': 'ena-adamz-midmc',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
    "coupon": {
        "percent_off": "25.00",
        "amount_off": null,
        "duration_in_months": 3,
        "duration": "repeating",
        "coupon_id": "SPRING",
        "coupon_name": "Spring Sale NEW"
    }
}
 

Request      

GET api/v2/client_on_boarding/coupon_find

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

coupon_id   string   

string Coupon code. Example: SPRING

organization   string   

string Slug of your organization. Example: ena-adamz-midmc

Body Parameters

organization_id   string   

Example: explicabo

coupon_id   string   

Example: eum

Check organization premium - only premium organization have access to Wordpress plugin

requires authentication

Check if the account is using the highest plan. If not, please ask the account holder to upgrade to the highest plan within Employee Portal > Settings > Subscription Details to gain access to Sweep&Go API.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/client_on_boarding/check_client_email_exists?slug=" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization\": \"incidunt\",
    \"email\": \"daren.rau@example.net\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/check_client_email_exists"
);

const params = {
    "slug": "",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization": "incidunt",
    "email": "daren.rau@example.net"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/check_client_email_exists';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'slug' => '',
        ],
        'json' => [
            'organization' => 'incidunt',
            'email' => 'daren.rau@example.net',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/check_client_email_exists'
payload = {
    "organization": "incidunt",
    "email": "daren.rau@example.net"
}
params = {
  'slug': '',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
    "valid": true,
    "name": "Ena adamz"
}
 

Request      

GET api/v2/client_on_boarding/check_client_email_exists

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

slug   string[]  optional  

Lists of your slug organization.

Body Parameters

organization   string   

Example: incidunt

email   string   

Must be a valid email address. Example: daren.rau@example.net

Get thank you messages to show up on complete onboarding client

requires authentication

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/client_on_boarding/thank_you_pages?slug=ena-adamz-midmc" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"slug\": \"quibusdam\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/thank_you_pages"
);

const params = {
    "slug": "ena-adamz-midmc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "slug": "quibusdam"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/thank_you_pages';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'slug' => 'ena-adamz-midmc',
        ],
        'json' => [
            'slug' => 'quibusdam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/thank_you_pages'
payload = {
    "slug": "quibusdam"
}
params = {
  'slug': 'ena-adamz-midmc',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
    "thank_you_pages": [
        {
            "type": "credit_card_sign_up",
            "content": "<p>Thank You For Signing Up</p><br><p>We have just sent you an email confirmation and login information to our client portal. We will also contact you to confirm your information and schedule a start date!</p><br>Payment Details:<ul><li>You have enrolled in our subscription payment option.</li><li>By far, the easiest way to pay for services</li><li>Your card will be charged after the completion the initial cleanup.</li><li>We will send you invoices according to your billing option and billing cycle and your card will be auto-debited according to NET terms on your account.</li></ul><br><p>If at any time, you have questions about your service or would like to change your card information or cancel monthly service, please contact us via client portal, email or phone.</p><br><p>Thank you.</p>"
        },
        {
            "type": "check_payment_sign_up",
            "content": "<p>Thank You for Signing Up</p><br><p>We have just sent you an email confirmation and login information to our client portal. We will also contact you to confirm your information and schedule a start date!</p><br>Payment Details:<ul><li>You have chosen to pay by check for your services.</li><li>Payment is required for the initial cleanup on completion. Your technician can collect a check at time of cleanup. If you will not be home, please leave a check for the larger amount of the Estimated Initial Cleanup (please see your confirmation email for estimate).</li><li>For regular services, we will email your recurring invoices according to your billing option and cycle, payment is due according to NET terms on your account.</li><li>If you would like to switch to auto pay, please just enter you credit card details within your client portal. </li></ul><br><p>If at any time, you have questions about your service, please contact us via email or phone.</p><br><p>Thank you.</p>"
        },
        {
            "type": "one_time_clean_up",
            "content": "<p>Thank you for Requesting a One Time Cleanup</p><br><p>We have just sent you an email confirmation and login information to our client portal. We will also contact you to confirm your information and schedule your cleanup.</p><br><p>Thank you.</p>"
        }
    ]
}
 

Request      

GET api/v2/client_on_boarding/thank_you_pages

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

slug   string   

string Slug of your organization. Example: ena-adamz-midmc

Body Parameters

slug   string   

Example: quibusdam

Get Out of area form fields

requires authentication

If the zip code is not within your service area, your prospect will be asked to fill out a short form so you could research more. After the form is submitted, the account will receive an email with lead information.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/client_on_boarding/out_of_service_form?organization=ena-adamz-midmc" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization\": \"praesentium\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/out_of_service_form"
);

const params = {
    "organization": "ena-adamz-midmc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization": "praesentium"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/out_of_service_form';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'organization' => 'ena-adamz-midmc',
        ],
        'json' => [
            'organization' => 'praesentium',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/out_of_service_form'
payload = {
    "organization": "praesentium"
}
params = {
  'organization': 'ena-adamz-midmc',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{{
"form_fields": [
{
"id": 4658,
"organization_form_id": 290,
"frontend_type": "textfield",
"frontend_description": "",
"backend_description": "",
"slug": "zip_code",
"step": 3,
"frontend_name": "Zip code",
"backend_name": "Zip code",
"one_time": true,
"recurring": true,
"show": true,
"required": true,
"optional_show": true,
"optional_required": false,
"backend_type": "textfield",
"value": "",
"options": "",
"locked": false,
"backend_sort": 27,
"frontend_sort": 27,
"locked_options": false,
"hint": ""
},
{
"id": 4659,
"organization_form_id": 290,
"frontend_type": "textfield",
"frontend_description": "",
"backend_description": "",
"slug": "name",
"step": 3,
"frontend_name": "Name",
"backend_name": "Name",
"one_time": true,
"recurring": true,
"show": true,
"required": true,
"optional_show": true,
"optional_required": false,
"backend_type": "textfield",
"value": "",
"options": "",
"locked": false,
"backend_sort": 28,
"frontend_sort": 28,
"locked_options": false,
"hint": ""
},
{
"id": 4660,
"organization_form_id": 290,
"frontend_type": "textfield",
"frontend_description": "",
"backend_description": "",
"slug": "email_address",
"step": 3,
"frontend_name": "Email address",
"backend_name": "Email address",
"one_time": true,
"recurring": true,
"show": true,
"required": true,
"optional_show": true,
"optional_required": false,
"backend_type": "textfield",
"value": "",
"options": "",
"locked": false,
"backend_sort": 29,
"frontend_sort": 29,
"locked_options": false,
"hint": ""
},
{
"id": 4662,
"organization_form_id": 290,
"frontend_type": "textfield",
"frontend_description": "",
"backend_description": "",
"slug": "phone",
"step": 3,
"frontend_name": "Phone number",
"backend_name": "Phone number",
"one_time": true,
"recurring": true,
"show": true,
"required": false,
"optional_show": true,
"optional_required": false,
"backend_type": "textfield",
"value": "",
"options": "",
"locked": false,
"backend_sort": 30,
"frontend_sort": 30,
"locked_options": false,
"hint": ""
},
{
"id": 4661,
"organization_form_id": 290,
"frontend_type": "textfield",
"frontend_description": "",
"backend_description": "",
"slug": "address",
"step": 3,
"frontend_name": "Address",
"backend_name": "Address",
"one_time": true,
"recurring": true,
"show": true,
"required": true,
"optional_show": true,
"optional_required": false,
"backend_type": "textfield",
"value": "",
"options": "",
"locked": false,
"backend_sort": 31,
"frontend_sort": 31,
"locked_options": false,
"hint": ""
},
{
"id": 4663,
"organization_form_id": 290,
"frontend_type": "textfield",
"frontend_description": "",
"backend_description": "",
"slug": "comment",
"step": 3,
"frontend_name": "Comment",
"backend_name": "Comment",
"one_time": true,
"recurring": true,
"show": true,
"required": false,
"optional_show": true,
"optional_required": false,
"backend_type": "textfield",
"value": "",
"options": "",
"locked": false,
"backend_sort": 32,
"frontend_sort": 32,
"locked_options": false,
"hint": ""
}
]
}}
 

Request      

GET api/v2/client_on_boarding/out_of_service_form

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

organization   string   

string Slug of your organization. Example: ena-adamz-midmc

Body Parameters

organization   string   

Example: praesentium

Submit out of service area leads

requires authentication

Send an email out of service area leads.

Example request:
curl --request POST \
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/out_of_service_form" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization\": \"ena-adamz-midmc\",
    \"name\": \"Ena Doe\",
    \"address\": \"1502 Morse St\",
    \"email_address\": \"ena@doe.com\",
    \"zip_code\": \"12345\",
    \"comment\": \"Demo comment\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/out_of_service_form"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization": "ena-adamz-midmc",
    "name": "Ena Doe",
    "address": "1502 Morse St",
    "email_address": "ena@doe.com",
    "zip_code": "12345",
    "comment": "Demo comment"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/out_of_service_form';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'organization' => 'ena-adamz-midmc',
            'name' => 'Ena Doe',
            'address' => '1502 Morse St',
            'email_address' => 'ena@doe.com',
            'zip_code' => '12345',
            'comment' => 'Demo comment',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/out_of_service_form'
payload = {
    "organization": "ena-adamz-midmc",
    "name": "Ena Doe",
    "address": "1502 Morse St",
    "email_address": "ena@doe.com",
    "zip_code": "12345",
    "comment": "Demo comment"
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "success": "success"
}
 

Request      

POST api/v2/client_on_boarding/out_of_service_form

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

organization   required  optional  

string Your organization slug. Example: ena-adamz-midmc

name   required  optional  

string Client name. Example: Ena Doe

address   required  optional  

string Client address. Example: 1502 Morse St

email_address   required  optional  

string Client email. Example: ena@doe.com

zip_code   required  optional  

string Client zip code. Example: 12345

comment   required  optional  

string Client comment. Example: Demo comment

Check zip code exists in your account

requires authentication

To get started you may want to validate that the client zip codes exists in your account or accounts.

Example request:
curl --request POST \
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/check_zip_code_exists?organization=ena-adamz-midmc&value=12345" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization\": \"distinctio\",
    \"value\": \"eos\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/client_on_boarding/check_zip_code_exists"
);

const params = {
    "organization": "ena-adamz-midmc",
    "value": "12345",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization": "distinctio",
    "value": "eos"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/check_zip_code_exists';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'organization' => 'ena-adamz-midmc',
            'value' => '12345',
        ],
        'json' => [
            'organization' => 'distinctio',
            'value' => 'eos',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/client_on_boarding/check_zip_code_exists'
payload = {
    "organization": "distinctio",
    "value": "eos"
}
params = {
  'organization': 'ena-adamz-midmc',
  'value': '12345',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
    "exists": "not_exists"
}
 

Example response (200):


{
    "exists": "exists"
}
 

Request      

POST api/v2/client_on_boarding/check_zip_code_exists

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

organization   string   

Slug of your organization. Example: ena-adamz-midmc

value   string   

User entered zip code. Example: 12345

Body Parameters

organization   string   

Example: distinctio

value   string   

Example: eos

One time charge for invoice using credit cards

API endpoints for one-time charges

Check status of invoice

requires authentication

This endpoint is used for check status of invoice

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/one_time_payment/check_invoice?invoice_number=3-3-190207-2-4" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"invoice_number\": \"aliquam\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/one_time_payment/check_invoice"
);

const params = {
    "invoice_number": "3-3-190207-2-4",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "invoice_number": "aliquam"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/one_time_payment/check_invoice';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'invoice_number' => '3-3-190207-2-4',
        ],
        'json' => [
            'invoice_number' => 'aliquam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/one_time_payment/check_invoice'
payload = {
    "invoice_number": "aliquam"
}
params = {
  'invoice_number': '3-3-190207-2-4',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()

Example response (200):


{
    "invoice_remaining": "12.23",
    "payment_gateway": "fts/stripe/none"
}
 

Request      

GET api/v2/one_time_payment/check_invoice

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

invoice_number   string   

Invoice number. Example: 3-3-190207-2-4

Body Parameters

invoice_number   string   

Example: aliquam

One time payment using Card point

requires authentication

This endpoint is used for one time payment using Card point

Example request:
curl --request PUT \
    "https://openapi.sweepandgo.com/api/v2/one_time_payment/cc_payment" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"invoice_number\": \"3-3-190207-2-4\",
    \"amount\": \"67.98\",
    \"name_on_card\": \"John Doe\",
    \"token\": \"9422925921134242\",
    \"cvv\": \"242\",
    \"expiry\": \"1223\",
    \"postal\": \"12345\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/one_time_payment/cc_payment"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "invoice_number": "3-3-190207-2-4",
    "amount": "67.98",
    "name_on_card": "John Doe",
    "token": "9422925921134242",
    "cvv": "242",
    "expiry": "1223",
    "postal": "12345"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/one_time_payment/cc_payment';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'invoice_number' => '3-3-190207-2-4',
            'amount' => '67.98',
            'name_on_card' => 'John Doe',
            'token' => '9422925921134242',
            'cvv' => '242',
            'expiry' => '1223',
            'postal' => '12345',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/one_time_payment/cc_payment'
payload = {
    "invoice_number": "3-3-190207-2-4",
    "amount": "67.98",
    "name_on_card": "John Doe",
    "token": "9422925921134242",
    "cvv": "242",
    "expiry": "1223",
    "postal": "12345"
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "status": "paid"
}
 

Request      

PUT api/v2/one_time_payment/cc_payment

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

invoice_number   string   

Invoice number. Example: 3-3-190207-2-4

amount   string   

Amount. Example: 67.98

name_on_card   string  optional  

Client name. Example: John Doe

token   string  optional  

Card token. Example: 9422925921134242

cvv   string  optional  

Card cvv. Example: 242

expiry   string  optional  

Card expiry. Example: 1223

postal   string  optional  

Card owner postal code. Example: 12345

One time payment using Stripe

requires authentication

This endpoint is used for one time payment using Stripe

Example request:
curl --request PUT \
    "https://openapi.sweepandgo.com/api/v2/one_time_payment/stripe_payment" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"invoice_number\": \"3-3-190207-2-4\",
    \"amount\": \"67.98\",
    \"name_on_card\": \"John Doe\",
    \"token\": \"tok_1E0rfhHLLICwofnx4bUzDZis\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/one_time_payment/stripe_payment"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "invoice_number": "3-3-190207-2-4",
    "amount": "67.98",
    "name_on_card": "John Doe",
    "token": "tok_1E0rfhHLLICwofnx4bUzDZis"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/one_time_payment/stripe_payment';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'invoice_number' => '3-3-190207-2-4',
            'amount' => '67.98',
            'name_on_card' => 'John Doe',
            'token' => 'tok_1E0rfhHLLICwofnx4bUzDZis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/one_time_payment/stripe_payment'
payload = {
    "invoice_number": "3-3-190207-2-4",
    "amount": "67.98",
    "name_on_card": "John Doe",
    "token": "tok_1E0rfhHLLICwofnx4bUzDZis"
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "status": "paid"
}
 

Request      

PUT api/v2/one_time_payment/stripe_payment

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

invoice_number   string   

Invoice number. Example: 3-3-190207-2-4

amount   string   

Amount. Example: 67.98

name_on_card   string  optional  

Client name. Example: John Doe

token   string  optional  

Card token. Example: tok_1E0rfhHLLICwofnx4bUzDZis

One time check charges

API endpoints for one-time charges

One time check payment

requires authentication

This endpoint is used for recording one time check payment

Example request:
curl --request PUT \
    "https://openapi.sweepandgo.com/api/v1/invoice/one_time" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"invoice_number\": \"3-3-190207-2-4\",
    \"reference_number\": \"ref_8798yhjasa\",
    \"amount\": \"67.98\",
    \"status\": \"successful or failed\",
    \"billing_address\": \"635 Go Man Go Dr\",
    \"billing_city\": \"Stafford\",
    \"billing_state\": \"Texas\",
    \"billing_zip\": \"77477\",
    \"name\": \"John Doe\",
    \"email\": \"mail@mail.com\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/invoice/one_time"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "invoice_number": "3-3-190207-2-4",
    "reference_number": "ref_8798yhjasa",
    "amount": "67.98",
    "status": "successful or failed",
    "billing_address": "635 Go Man Go Dr",
    "billing_city": "Stafford",
    "billing_state": "Texas",
    "billing_zip": "77477",
    "name": "John Doe",
    "email": "mail@mail.com"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/invoice/one_time';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'invoice_number' => '3-3-190207-2-4',
            'reference_number' => 'ref_8798yhjasa',
            'amount' => '67.98',
            'status' => 'successful or failed',
            'billing_address' => '635 Go Man Go Dr',
            'billing_city' => 'Stafford',
            'billing_state' => 'Texas',
            'billing_zip' => '77477',
            'name' => 'John Doe',
            'email' => 'mail@mail.com',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/invoice/one_time'
payload = {
    "invoice_number": "3-3-190207-2-4",
    "reference_number": "ref_8798yhjasa",
    "amount": "67.98",
    "status": "successful or failed",
    "billing_address": "635 Go Man Go Dr",
    "billing_city": "Stafford",
    "billing_state": "Texas",
    "billing_zip": "77477",
    "name": "John Doe",
    "email": "mail@mail.com"
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "success": "success"
}
 

Request      

PUT api/v1/invoice/one_time

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

invoice_number   string   

Invoice number. Example: 3-3-190207-2-4

reference_number   string   

Reference number. Example: ref_8798yhjasa

amount   string   

Amount. Example: 67.98

status   string   

Status. Example: successful or failed

billing_address   string  optional  

Billing address. Example: 635 Go Man Go Dr

billing_city   string  optional  

Billing city. Example: Stafford

billing_state   string  optional  

Billing state. Example: Texas

billing_zip   string  optional  

Billing zip. Example: 77477

name   string  optional  

Client name. Example: John Doe

email   string  optional  

Client email. Example: mail@mail.com

Reports

API endpoints for getting list of reports and counts

Total number of dogs

requires authentication

This endpoint returns a number of dogs for all active clients.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/report/count_dogs_for_active_clients" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": 8
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/report/count_dogs_for_active_clients"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": 8
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/report/count_dogs_for_active_clients';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'organization_id' => 8,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/report/count_dogs_for_active_clients'
payload = {
    "organization_id": 8
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):


{
"data": [{
     "dogs_total_active_clients":23
}]
 

Request      

GET api/v2/report/count_dogs_for_active_clients

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

organization_id   integer   

Example: 8

Total active clients

requires authentication

This endpoint returns a number of active clients.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/report/count_active_clients" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": 18
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/report/count_active_clients"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": 18
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/report/count_active_clients';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'organization_id' => 18,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/report/count_active_clients'
payload = {
    "organization_id": 18
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):


{
"data": [{
     "total_active_clients":23
}]
 

Request      

GET api/v2/report/count_active_clients

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

organization_id   integer   

Example: 18

Total completed jobs

requires authentication

This endpoint returns a number of completed jobs.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/report/jobs_count" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": 17
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/report/jobs_count"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": 17
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/report/jobs_count';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'organization_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/report/jobs_count'
payload = {
    "organization_id": 17
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):


{
"data": [{
     "jobs_count":23
}]
 

Request      

GET api/v2/report/jobs_count

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

organization_id   integer   

Example: 17

List of staff

requires authentication

This endpoint returns a list of active staff.

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v2/report/staff_select_list" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": 13
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/report/staff_select_list"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": 13
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/report/staff_select_list';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'organization_id' => 13,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/report/staff_select_list'
payload = {
    "organization_id": 13
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):


{"data": [{
                                  "id":1,
                                   "name":"John Does",
                                   "email":"john@does.com",
                                  "color":"#87332",
                                  "phone":"789789888",
                              },{
                                  "id":2,
                                   "name":"John Doe",
                                   "email":"john@doe.com",
                                   "color":"#87332",
                                   "phone":"789789888"
                          }]
         }
 

Request      

GET api/v2/report/staff_select_list

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

organization_id   integer   

Example: 13

Gift card certificate

API endpoints for getting clients

Send new Gift card certificate

requires authentication

Example request:
curl --request POST \
    "https://openapi.sweepandgo.com/api/v2/gift_card" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"purchaser_name\": \"John Doe\",
    \"purchaser_email\": \"jon@doe.com\",
    \"purchaser_phone\": \"6789876543\",
    \"amount\": \"12.45\",
    \"expires\": \"2024-12-23\",
    \"bought\": \"2024-11-23\",
    \"reference_number\": \"12c45-wa3B\",
    \"recipient_name\": \"Jane Doe\",
    \"recipient_email\": \"jane@doe.com\",
    \"special_note\": \"For your birthday\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/gift_card"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "purchaser_name": "John Doe",
    "purchaser_email": "jon@doe.com",
    "purchaser_phone": "6789876543",
    "amount": "12.45",
    "expires": "2024-12-23",
    "bought": "2024-11-23",
    "reference_number": "12c45-wa3B",
    "recipient_name": "Jane Doe",
    "recipient_email": "jane@doe.com",
    "special_note": "For your birthday"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/gift_card';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'purchaser_name' => 'John Doe',
            'purchaser_email' => 'jon@doe.com',
            'purchaser_phone' => '6789876543',
            'amount' => '12.45',
            'expires' => '2024-12-23',
            'bought' => '2024-11-23',
            'reference_number' => '12c45-wa3B',
            'recipient_name' => 'Jane Doe',
            'recipient_email' => 'jane@doe.com',
            'special_note' => 'For your birthday',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/gift_card'
payload = {
    "purchaser_name": "John Doe",
    "purchaser_email": "jon@doe.com",
    "purchaser_phone": "6789876543",
    "amount": "12.45",
    "expires": "2024-12-23",
    "bought": "2024-11-23",
    "reference_number": "12c45-wa3B",
    "recipient_name": "Jane Doe",
    "recipient_email": "jane@doe.com",
    "special_note": "For your birthday"
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "success": "success"
}
 

Request      

POST api/v2/gift_card

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

purchaser_name   required  optional  

string Purchaser name. Example: John Doe

purchaser_email   required  optional  

string Purchaser email. Example: jon@doe.com

purchaser_phone   string  optional  

Purchaser phone. Example: 6789876543

amount   required  optional  

decimal Amount of Gift certificate. Example: 12.45

expires   required  optional  

string Date when gift certificate expires (in format: Y-m-d). Example: 2024-12-23

bought   required  optional  

string Date when gift certificate bought (in format: Y-m-d). Example: 2024-11-23

reference_number   required  optional  

string Unique reference number. Example: 12c45-wa3B

recipient_name   required  optional  

string Recipient name. Example: Jane Doe

recipient_email   string  optional  

Recipient email. Example: jane@doe.com

special_note   string  optional  

Special note. Example: For your birthday

name_on_card   string  optional  

Coupon code

API endpoints for coupon codes

Create coupon for residential subscriptions

requires authentication

Example request:
curl --request POST \
    "https://openapi.sweepandgo.com/api/v2/coupon" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"coupon_id\": \"5pr1nG\",
    \"name\": \"Spring Season\",
    \"coupon_type\": \"amount\",
    \"duration\": \"repeating\",
    \"percent_off\": \"20\",
    \"amount_off\": \"22.51\",
    \"redeem_by\": \"2024-12-23\",
    \"max_redemptions\": 5,
    \"number_of_months\": 2
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v2/coupon"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "coupon_id": "5pr1nG",
    "name": "Spring Season",
    "coupon_type": "amount",
    "duration": "repeating",
    "percent_off": "20",
    "amount_off": "22.51",
    "redeem_by": "2024-12-23",
    "max_redemptions": 5,
    "number_of_months": 2
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v2/coupon';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'coupon_id' => '5pr1nG',
            'name' => 'Spring Season',
            'coupon_type' => 'amount',
            'duration' => 'repeating',
            'percent_off' => '20',
            'amount_off' => '22.51',
            'redeem_by' => '2024-12-23',
            'max_redemptions' => 5,
            'number_of_months' => 2,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v2/coupon'
payload = {
    "coupon_id": "5pr1nG",
    "name": "Spring Season",
    "coupon_type": "amount",
    "duration": "repeating",
    "percent_off": "20",
    "amount_off": "22.51",
    "redeem_by": "2024-12-23",
    "max_redemptions": 5,
    "number_of_months": 2
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "success": "success",
    "coupon": {
        "coupon_id": "UKdJ5C0W",
        "name": "UKdJ5C0W"
    }
}
 

Request      

POST api/v2/coupon

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

coupon_id   string  optional  

Coupon code. Example: 5pr1nG

name   string  optional  

Coupon name. Example: Spring Season

coupon_type   required  optional  

string Coupon type can be percent or amount. Example: amount

duration   required  optional  

string Coupon duration can be once, forever or repeating. Example: repeating

percent_off   string  optional  

Percent discount if coupon_type percent. Example: 20

amount_off   string  optional  

Amount discount if coupon_type amount. Example: 22.51

redeem_by   string  optional  

Date when coupon expires (in format: Y-m-d). Example: 2024-12-23

max_redemptions   integer  optional  

How much subscriptions can use this coupon. Example: 5

number_of_months   integer  optional  

How much months will be applied coupons if duration repeating. Example: 2

Webhooks

Webhooks for organization. Here is the list of all webhooks for one organization. You may trigger it at any time to receive a list of all webhook types. Type list of webhooks:

List of all webhooks for one organization

requires authentication

Example request:
curl --request GET \
    --get "https://openapi.sweepandgo.com/api/v1/webhooks/list?page=2" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/webhooks/list"
);

const params = {
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/webhooks/list';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/webhooks/list'
params = {
  'page': '2',
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (403):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "errors": [
        "API key is not valid"
    ]
}
 

Request      

GET api/v1/webhooks/list

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Get results for specific page. Example: 2

Retry one webhook

requires authentication

Example request:
curl --request PUT \
    "https://openapi.sweepandgo.com/api/v1/webhooks/retry" \
    --header "Authorization: Bearer YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": \"e0e03073-a1a3-4f6e-82ff-81dab3772534\"
}"
const url = new URL(
    "https://openapi.sweepandgo.com/api/v1/webhooks/retry"
);

const headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "e0e03073-a1a3-4f6e-82ff-81dab3772534"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://openapi.sweepandgo.com/api/v1/webhooks/retry';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer YOUR_TOKEN',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 'e0e03073-a1a3-4f6e-82ff-81dab3772534',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://openapi.sweepandgo.com/api/v1/webhooks/retry'
payload = {
    "id": "e0e03073-a1a3-4f6e-82ff-81dab3772534"
}
headers = {
  'Authorization': 'Bearer YOUR_TOKEN',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (403):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "errors": [
        "API key is not valid"
    ]
}
 

Request      

PUT api/v1/webhooks/retry

Headers

Authorization      

Example: Bearer YOUR_TOKEN

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

id   string   

Retry specific webhook. Example: e0e03073-a1a3-4f6e-82ff-81dab3772534