The ServiceM8 Developer Portal

Welcome to the ServiceM8 developer portal. You'll find comprehensive guides and documentation to help you start working with ServiceM8 as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started
Suggest Edits

Attachments

 

For additional assistance in attaching files into a ServiceM8 account, review the how to guide for how to attach a file to the job diary.

Suggest Edits

List all Attachments

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/attachment.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/attachment.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/attachment.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/attachment.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/attachment.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/attachment.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-dfe2-4ae9-8336-94434841d7ab",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "related_object": "string",
    "related_object_uuid": "123e4567-eeb1-4c39-90a8-1d5b2f413abb",
    "attachment_name": "string",
    "file_type": "string",
    "created_by_staff_uuid": "123e4567-7b8a-4213-80c6-b7e9fde39c1b",
    "timestamp": "string",
    "attachment_source": "string",
    "tags": "string",
    "lng": "number",
    "lat": "number"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Attachments

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Attachment

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/attachment.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/attachment.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/attachment.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/attachment.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/attachment.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/attachment.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

related_object
string
related_object_uuid
uuid
attachment_name
string

The security roles description

file_type
string

Location's name

created_by_staff_uuid
uuid
timestamp
string
attachment_source
string
tags
string
lng
float
lat
float

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Attachment

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/attachment/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/attachment/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/attachment/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/attachment/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/attachment/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/attachment/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-2a9f-4c4c-b712-abea447c8eeb",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "related_object": "string",
  "related_object_uuid": "123e4567-4fc6-455e-96a1-8cfb0584a1ab",
  "attachment_name": "string",
  "file_type": "string",
  "created_by_staff_uuid": "123e4567-5b9a-4365-8069-325add3fb7eb",
  "timestamp": "string",
  "attachment_source": "string",
  "tags": "string",
  "lng": "number",
  "lat": "number"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Attachment

Response

Attachment record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

related_objectstring
related_object_uuidstring
attachment_namestring

The security roles description

file_typestring

Location's name

created_by_staff_uuidstring
timestampstring
attachment_sourcestring
tagsstring
lngnumber
latnumber

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Attachment

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/attachment/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/attachment/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/attachment/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/attachment/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/attachment/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/attachment/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Attachment

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

related_object
string
related_object_uuid
uuid
attachment_name
string

The security roles description

file_type
string

Location's name

created_by_staff_uuid
uuid
timestamp
string
attachment_source
string
tags
string
lng
float
lat
float

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Attachment

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/attachment/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/attachment/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/attachment/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/attachment/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/attachment/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/attachment/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Attachment

Response

Attachment successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

List all Badges

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

OAuth Scope

This endpoint requires the following OAuth scope manage_badges.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/badge.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/badge.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/badge.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/badge.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/badge.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/badge.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-4d75-41cc-9c2e-95cfc7873eeb",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "name": "string",
    "automatically_allocated": "string",
    "file_name": "string",
    "regarding_form_uuid": "123e4567-e317-402e-b168-b643d82e2dbb"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Badges

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Badge

OAuth Scope

This endpoint requires the following OAuth scope manage_badges.

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/badge.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/badge.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/badge.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/badge.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/badge.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/badge.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

name
string
required

Badge Name

automatically_allocated
string
file_name
string
regarding_form_uuid
uuid

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Badge

OAuth Scope

This endpoint requires the following OAuth scope manage_badges.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/badge/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/badge/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/badge/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/badge/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/badge/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/badge/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-6222-4d4f-94e2-e163083bfa3b",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "name": "string",
  "automatically_allocated": "string",
  "file_name": "string",
  "regarding_form_uuid": "123e4567-309c-40c9-8779-b9e5b2d02c9b"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Badge

Response

Badge record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

namestring

Badge Name

automatically_allocatedstring
file_namestring
regarding_form_uuidstring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Badge

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/badge/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/badge/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/badge/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/badge/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/badge/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/badge/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Badge

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

name
string
required

Badge Name

automatically_allocated
string
file_name
string
regarding_form_uuid
uuid

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Badge

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/badge/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/badge/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/badge/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/badge/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/badge/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/badge/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Badge

Response

Badge successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Categories

 
Suggest Edits

List all Categories

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

OAuth Scope

This endpoint requires the following OAuth scope read_job_categories.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/category.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/category.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/category.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/category.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/category.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/category.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-b268-4f49-bd84-48f196909b2b",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "name": "string",
    "colour": "string"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Categories

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Category

OAuth Scope

This endpoint requires the following OAuth scope manage_job_categories.

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/category.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/category.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/category.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/category.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/category.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/category.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

name
string
required
colour
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Category

OAuth Scope

This endpoint requires the following OAuth scope read_job_categories.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/category/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/category/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/category/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/category/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/category/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/category/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-5519-4996-ae12-7ef0f5b5620b",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "name": "string",
  "colour": "string"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Category

Response

Category record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

namestring
colourstring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Category

OAuth Scope

This endpoint requires the following OAuth scope manage_job_categories.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/category/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/category/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/category/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/category/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/category/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/category/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Category

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

name
string
required
colour
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Category

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

OAuth Scope

This endpoint requires the following OAuth scope manage_job_categories.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/category/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/category/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/category/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/category/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/category/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/category/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Category

Response

Category successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
 
Suggest Edits

List all Clients

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

OAuth Scope

This endpoint requires the following OAuth scope read_customers.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/company.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/company.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/company.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/company.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/company.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/company.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-80f0-4768-b673-e5224294c2db",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "name": "string",
    "website": "string",
    "abn_number": "string",
    "is_individual": "string",
    "address_street": "string",
    "address_city": "string",
    "address_state": "string",
    "address_postcode": "string",
    "address_country": "string",
    "fax_number": "string",
    "address": "string",
    "billing_address": "string",
    "badges": "string",
    "tax_rate_uuid": "123e4567-d132-4195-a488-345296e512fb",
    "parent_company_uuid": "123e4567-53dc-4ffa-b14e-faa8afee39eb"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Clients

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Client

OAuth Scope

This endpoint requires the following OAuth scope manage_customers.

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/company.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/company.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/company.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/company.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/company.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/company.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

name
string
required

Company Name

website
string
abn_number
string
is_individual
string
address_street
string
address_city
string
address_state
string
address_postcode
string
address_country
string
fax_number
string
address
string

Password

billing_address
string

Confirm Password

badges
string
tax_rate_uuid
uuid
parent_company_uuid
uuid

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Client

OAuth Scope

This endpoint requires the following OAuth scope read_customers.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/company/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/company/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/company/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/company/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/company/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/company/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-38ba-4cf7-a206-323857cfaffb",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "name": "string",
  "website": "string",
  "abn_number": "string",
  "is_individual": "string",
  "address_street": "string",
  "address_city": "string",
  "address_state": "string",
  "address_postcode": "string",
  "address_country": "string",
  "fax_number": "string",
  "address": "string",
  "billing_address": "string",
  "badges": "string",
  "tax_rate_uuid": "123e4567-a816-4fd9-9d4c-0a3de7c0c68b",
  "parent_company_uuid": "123e4567-0d7c-4e58-9d96-8011d97c64cb"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Client

Response

Client record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

namestring

Company Name

websitestring
abn_numberstring
is_individualstring
address_streetstring
address_citystring
address_statestring
address_postcodestring
address_countrystring
fax_numberstring
addressstring

Password

billing_addressstring

Confirm Password

badgesstring
tax_rate_uuidstring
parent_company_uuidstring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Client

OAuth Scope

This endpoint requires the following OAuth scope manage_customers.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/company/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/company/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/company/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/company/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/company/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/company/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Client

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

name
string
required

Company Name

website
string
abn_number
string
is_individual
string
address_street
string
address_city
string
address_state
string
address_postcode
string
address_country
string
fax_number
string
address
string

Password

billing_address
string

Confirm Password

badges
string
tax_rate_uuid
uuid
parent_company_uuid
uuid

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Client

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

OAuth Scope

This endpoint requires the following OAuth scope manage_customers.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/company/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/company/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/company/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/company/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/company/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/company/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Client

Response

Client successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Company Contacts

 
Suggest Edits

List all Company Contacts

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

OAuth Scope

This endpoint requires the following OAuth scope read_customer_contacts.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/companycontact.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/companycontact.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/companycontact.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/companycontact.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/companycontact.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/companycontact.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-faff-474f-be6e-59931f71a16b",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "company_uuid": "123e4567-02c2-4c02-94ad-060a776637fb",
    "first": "string",
    "last": "string",
    "phone": "string",
    "mobile": "string",
    "email": "string",
    "type": "string",
    "is_primary_contact": "string"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Company Contacts

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Company Contact

OAuth Scope

This endpoint requires the following OAuth scope manage_customer_contacts.

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/companycontact.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/companycontact.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/companycontact.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/companycontact.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/companycontact.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/companycontact.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

company_uuid
uuid
first
string
last
string
phone
string
mobile
string
email
email
type
string
is_primary_contact
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Company Contact

OAuth Scope

This endpoint requires the following OAuth scope read_customer_contacts.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/companycontact/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/companycontact/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/companycontact/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/companycontact/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/companycontact/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/companycontact/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-82fa-4a5c-aa20-b12e8e44310b",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "company_uuid": "123e4567-359c-4fb3-a003-491c6ebb15eb",
  "first": "string",
  "last": "string",
  "phone": "string",
  "mobile": "string",
  "email": "string",
  "type": "string",
  "is_primary_contact": "string"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Company Contact

Response

Company Contact record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

company_uuidstring
firststring
laststring
phonestring
mobilestring
emailstring
typestring
is_primary_contactstring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Company Contact

OAuth Scope

This endpoint requires the following OAuth scope manage_customer_contacts.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/companycontact/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/companycontact/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/companycontact/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/companycontact/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/companycontact/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/companycontact/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Company Contact

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

company_uuid
uuid
first
string
last
string
phone
string
mobile
string
email
email
type
string
is_primary_contact
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Company Contact

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

OAuth Scope

This endpoint requires the following OAuth scope manage_customer_contacts.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/companycontact/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/companycontact/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/companycontact/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/companycontact/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/companycontact/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/companycontact/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Company Contact

Response

Company Contact successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Email Templates

 
Suggest Edits

List all Email Templates

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/emailtemplate.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/emailtemplate.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/emailtemplate.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/emailtemplate.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/emailtemplate.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/emailtemplate.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-c6c9-40ad-9287-f74f8ef3aedb",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "name": "string",
    "subject": "string",
    "message": "string"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Email Templates

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Email Template

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/emailtemplate.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/emailtemplate.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/emailtemplate.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/emailtemplate.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/emailtemplate.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/emailtemplate.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

name
string
required
subject
string
message
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Email Template

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/emailtemplate/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/emailtemplate/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/emailtemplate/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/emailtemplate/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/emailtemplate/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/emailtemplate/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-eeed-4564-b6ca-7988c8d50c0b",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "name": "string",
  "subject": "string",
  "message": "string"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Email Template

Response

Email Template record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

namestring
subjectstring
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Email Template

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/emailtemplate/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/emailtemplate/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/emailtemplate/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/emailtemplate/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/emailtemplate/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/emailtemplate/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Email Template

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

name
string
required
subject
string
message
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Email Template

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/emailtemplate/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/emailtemplate/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/emailtemplate/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/emailtemplate/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/emailtemplate/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/emailtemplate/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Email Template

Response

Email Template successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
 
Suggest Edits

List all Feedback

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/feedback.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/feedback.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/feedback.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/feedback.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/feedback.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/feedback.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-6c37-47df-b883-99c0ff32242b",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "timestamp": "string",
    "related_object": "string",
    "related_object_uuid": "123e4567-c321-40ef-a1a7-b3e6c3158a8b",
    "rating": "string",
    "comment": "string"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Feedback

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Feedback

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/feedback.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/feedback.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/feedback.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/feedback.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/feedback.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/feedback.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

timestamp
string
related_object
string
related_object_uuid
uuid
rating
string
comment
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Feedback

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/feedback/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/feedback/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/feedback/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/feedback/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/feedback/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/feedback/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-85ab-4ff5-8ce4-900f32f86eab",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "timestamp": "string",
  "related_object": "string",
  "related_object_uuid": "123e4567-b1fd-4538-8539-a6e427bb22eb",
  "rating": "string",
  "comment": "string"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Feedback

Response

Feedback record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

timestampstring
related_objectstring
related_object_uuidstring
ratingstring
commentstring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Feedback

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/feedback/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/feedback/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/feedback/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/feedback/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/feedback/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/feedback/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Feedback

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

timestamp
string
related_object
string
related_object_uuid
uuid
rating
string
comment
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Feedback

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/feedback/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/feedback/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/feedback/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/feedback/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/feedback/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/feedback/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Feedback

Response

Feedback successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

List all Forms

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/form.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/form.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/form.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/form.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/form.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/form.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-d399-41a6-8c32-ae5b42c68adb",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "name": "string",
    "document_template_uuid": "123e4567-4a5a-4cea-bcf8-c58462d4507b",
    "can_be_used_independently": "string",
    "badge_mandatory_state": "string"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Forms

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Form

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/form.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/form.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/form.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/form.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/form.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/form.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

name
string
document_template_uuid
uuid
can_be_used_independently
string
badge_mandatory_state
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Form

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/form/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/form/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/form/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/form/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/form/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/form/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-b7fa-4f51-b60c-161ccdbc6cab",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "name": "string",
  "document_template_uuid": "123e4567-ea2c-4e64-b847-dbd12772dcdb",
  "can_be_used_independently": "string",
  "badge_mandatory_state": "string"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Form

Response

Form record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

namestring
document_template_uuidstring
can_be_used_independentlystring
badge_mandatory_statestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Form

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/form/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/form/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/form/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/form/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/form/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/form/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Form

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

name
string
document_template_uuid
uuid
can_be_used_independently
string
badge_mandatory_state
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Form

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/form/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/form/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/form/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/form/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/form/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/form/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Form

Response

Form successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Form Fields

 
Suggest Edits

List all Form Fields

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/formfield.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/formfield.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/formfield.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/formfield.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/formfield.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/formfield.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-f3b5-4c44-803c-91e3af43e08b",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "form_uuid": "123e4567-562e-4b2f-89d3-c3e233c967eb",
    "name": "string",
    "field_data_json": "string",
    "sort_order": "string"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Form Fields

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Form Field

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/formfield.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/formfield.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/formfield.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/formfield.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/formfield.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/formfield.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

form_uuid
uuid
name
string
field_data_json
string
sort_order
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Form Field

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/formfield/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/formfield/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/formfield/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/formfield/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/formfield/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/formfield/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-3490-4737-8e3d-ddb631c32e0b",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "form_uuid": "123e4567-b4d6-4d55-aed0-152846ad435b",
  "name": "string",
  "field_data_json": "string",
  "sort_order": "string"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Form Field

Response

Form Field record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

form_uuidstring
namestring
field_data_jsonstring
sort_orderstring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Form Field

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/formfield/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/formfield/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/formfield/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/formfield/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/formfield/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/formfield/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Form Field

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

form_uuid
uuid
name
string
field_data_json
string
sort_order
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Form Field

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/formfield/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/formfield/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/formfield/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/formfield/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/formfield/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/formfield/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Form Field

Response

Form Field successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Form Responses

 
Suggest Edits

List all Form Responses

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/formresponse.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/formresponse.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/formresponse.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/formresponse.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/formresponse.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/formresponse.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-505d-480d-b542-7e9eb924bf1b",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "form_uuid": "123e4567-1a97-49ba-986c-ae3ab2fbb91b",
    "staff_uuid": "123e4567-adb1-4daf-90c0-9d32dcab535b",
    "regarding_object": "string",
    "regarding_object_uuid": "123e4567-2f28-4fa6-9f19-fa5a6ea035fb",
    "field_data": "string",
    "timestamp": "string",
    "form_by_staff_uuid": "123e4567-85fc-4b93-b6f5-53560a22cedb",
    "document_attachment_uuid": "123e4567-c95b-4c27-b071-4610f884886b"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Form Responses

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Form Response

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/formresponse.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/formresponse.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/formresponse.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/formresponse.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/formresponse.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/formresponse.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

form_uuid
uuid
staff_uuid
uuid
regarding_object
string
regarding_object_uuid
uuid
field_data
string
timestamp
string
form_by_staff_uuid
uuid
document_attachment_uuid
uuid

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Form Response

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/formresponse/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/formresponse/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/formresponse/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/formresponse/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/formresponse/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/formresponse/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-aba4-4ff7-8cca-fe10e74d05fb",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "form_uuid": "123e4567-f0c2-46d8-95bd-cfd6c65bf8ab",
  "staff_uuid": "123e4567-1c69-470b-a500-6e5b909d9a1b",
  "regarding_object": "string",
  "regarding_object_uuid": "123e4567-158c-4940-af12-a6dd3cd867ab",
  "field_data": "string",
  "timestamp": "string",
  "form_by_staff_uuid": "123e4567-c324-4ee7-9a4e-bdcd8341dffb",
  "document_attachment_uuid": "123e4567-3fe5-4ce3-9276-e834af7d5b6b"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Form Response

Response

Form Response record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

form_uuidstring
staff_uuidstring
regarding_objectstring
regarding_object_uuidstring
field_datastring
timestampstring
form_by_staff_uuidstring
document_attachment_uuidstring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Form Response

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/formresponse/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/formresponse/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/formresponse/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/formresponse/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/formresponse/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/formresponse/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Form Response

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

form_uuid
uuid
staff_uuid
uuid
regarding_object
string
regarding_object_uuid
uuid
field_data
string
timestamp
string
form_by_staff_uuid
uuid
document_attachment_uuid
uuid

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Form Response

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/formresponse/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/formresponse/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/formresponse/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/formresponse/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/formresponse/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/formresponse/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Form Response

Response

Form Response successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

List all Jobs

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

OAuth Scope

This endpoint requires the following OAuth scope read_jobs.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/job.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/job.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/job.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/job.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/job.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/job.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-07d3-4806-a19f-cd50c7f6aa6b",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "created_by_staff_uuid": "123e4567-6c64-4a50-81ec-ed72df957aab",
    "date": "YYYY-MM-DD",
    "company_uuid": "123e4567-a513-46c9-a1fd-c5db1a241abb",
    "job_address": "string",
    "billing_address": "string",
    "status": "string",
    "job_description": "string",
    "work_done_description": "string",
    "lng": "number",
    "lat": "number",
    "generated_job_id": "string",
    "payment_date": "YYYY-MM-DD HH:MM:SS",
    "payment_actioned_by_uuid": "123e4567-0613-493c-a04d-eab2123fc7fb",
    "payment_method": "string",
    "payment_amount": "string",
    "total_invoice_amount": "string",
    "category_uuid": "123e4567-d92d-4b45-8e11-241a81a253fb",
    "payment_note": "string",
    "geo_is_valid": "string",
    "purchase_order_number": "string",
    "invoice_sent": "string",
    "invoice_sent_stamp": "YYYY-MM-DD HH:MM:SS",
    "ready_to_invoice": "string",
    "ready_to_invoice_stamp": "YYYY-MM-DD HH:MM:SS",
    "payment_processed": "string",
    "payment_processed_stamp": "YYYY-MM-DD HH:MM:SS",
    "geo_country": "string",
    "geo_postcode": "string",
    "geo_state": "string",
    "geo_city": "string",
    "geo_street": "string",
    "geo_number": "string",
    "queue_uuid": "123e4567-8674-4497-8fe4-593190aca25b",
    "queue_expiry_date": "YYYY-MM-DD HH:MM:SS",
    "payment_received": "string",
    "payment_received_stamp": "YYYY-MM-DD HH:MM:SS",
    "badges": "string",
    "quote_date": "YYYY-MM-DD HH:MM:SS",
    "work_order_date": "YYYY-MM-DD HH:MM:SS",
    "completion_date": "YYYY-MM-DD HH:MM:SS",
    "completion_actioned_by_uuid": "123e4567-a935-4125-8011-f670c6d0d72b",
    "unsuccessful_date": "YYYY-MM-DD HH:MM:SS",
    "job_is_scheduled_until_stamp": "YYYY-MM-DD HH:MM:SS",
    "active_network_request_uuid": "123e4567-bced-4978-8e63-09d15e19b3ab"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Jobs

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Job

OAuth Scope

This endpoint requires the following OAuth scope create_jobs.

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/job.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/job.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/job.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/job.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/job.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/job.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

created_by_staff_uuid
uuid
date
string
company_uuid
uuid
job_address
string
billing_address
string
status
string
required
job_description
string
work_done_description
string

Email Address

lng
float
lat
float
generated_job_id
string
payment_date
string
payment_actioned_by_uuid
uuid
payment_method
string
payment_amount
string
total_invoice_amount
string
category_uuid
uuid
payment_note
string
geo_is_valid
string
purchase_order_number
string
invoice_sent
string
invoice_sent_stamp
string
ready_to_invoice
string
ready_to_invoice_stamp
string
payment_processed
string
payment_processed_stamp
string
geo_country
string
geo_postcode
string
geo_state
string
geo_city
string
geo_street
string
geo_number
string
queue_uuid
uuid
queue_expiry_date
string
payment_received
string
payment_received_stamp
string
badges
string
quote_date
string
work_order_date
string
completion_date
string
completion_actioned_by_uuid
uuid
unsuccessful_date
string
job_is_scheduled_until_stamp
string
active_network_request_uuid
uuid

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Job

OAuth Scope

This endpoint requires the following OAuth scope read_jobs.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/job/uuid.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/job/uuid.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/job/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/job/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/job/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/job/uuid.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "uuid": "123e4567-2872-4a1a-b25a-73ccefda810b",
  "active": 1,
  "edit_date": "YYYY-MM-DD HH:MM:SS",
  "created_by_staff_uuid": "123e4567-6c9e-4eac-a3b8-e8e3c3fa216b",
  "date": "YYYY-MM-DD",
  "company_uuid": "123e4567-cf24-4bf1-b39d-2e25f86fe2fb",
  "job_address": "string",
  "billing_address": "string",
  "status": "string",
  "job_description": "string",
  "work_done_description": "string",
  "lng": "number",
  "lat": "number",
  "generated_job_id": "string",
  "payment_date": "YYYY-MM-DD HH:MM:SS",
  "payment_actioned_by_uuid": "123e4567-9716-4790-a93b-c0fa92defbbb",
  "payment_method": "string",
  "payment_amount": "string",
  "total_invoice_amount": "string",
  "category_uuid": "123e4567-215a-42c2-a385-a0ffb0eb793b",
  "payment_note": "string",
  "geo_is_valid": "string",
  "purchase_order_number": "string",
  "invoice_sent": "string",
  "invoice_sent_stamp": "YYYY-MM-DD HH:MM:SS",
  "ready_to_invoice": "string",
  "ready_to_invoice_stamp": "YYYY-MM-DD HH:MM:SS",
  "payment_processed": "string",
  "payment_processed_stamp": "YYYY-MM-DD HH:MM:SS",
  "geo_country": "string",
  "geo_postcode": "string",
  "geo_state": "string",
  "geo_city": "string",
  "geo_street": "string",
  "geo_number": "string",
  "queue_uuid": "123e4567-9a9a-4c3d-84bc-eb3778836d4b",
  "queue_expiry_date": "YYYY-MM-DD HH:MM:SS",
  "payment_received": "string",
  "payment_received_stamp": "YYYY-MM-DD HH:MM:SS",
  "badges": "string",
  "quote_date": "YYYY-MM-DD HH:MM:SS",
  "work_order_date": "YYYY-MM-DD HH:MM:SS",
  "completion_date": "YYYY-MM-DD HH:MM:SS",
  "completion_actioned_by_uuid": "123e4567-0823-43f6-8801-c1a1f91df87b",
  "unsuccessful_date": "YYYY-MM-DD HH:MM:SS",
  "job_is_scheduled_until_stamp": "YYYY-MM-DD HH:MM:SS",
  "active_network_request_uuid": "123e4567-7214-4d82-ba14-3f1e0675adeb"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Job

Response

Job record

uuidstring

Record UUID key

activenumber

Record active/deleted flag.

Valid values are [0,1]

created_by_staff_uuidstring
datestring
company_uuidstring
job_addressstring
billing_addressstring
statusstring
job_descriptionstring
work_done_descriptionstring

Email Address

lngnumber
latnumber
generated_job_idstring
payment_datestring
payment_actioned_by_uuidstring
payment_methodstring
payment_amountstring
total_invoice_amountstring
category_uuidstring
payment_notestring
geo_is_validstring
purchase_order_numberstring
invoice_sentstring
invoice_sent_stampstring
ready_to_invoicestring
ready_to_invoice_stampstring
payment_processedstring
payment_processed_stampstring
geo_countrystring
geo_postcodestring
geo_statestring
geo_citystring
geo_streetstring
geo_numberstring
queue_uuidstring
queue_expiry_datestring
payment_receivedstring
payment_received_stampstring
badgesstring
quote_datestring
work_order_datestring
completion_datestring
completion_actioned_by_uuidstring
unsuccessful_datestring
job_is_scheduled_until_stampstring
active_network_request_uuidstring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Update a Job

OAuth Scope

This endpoint requires the following OAuth scope manage_jobs.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/job/uuid.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/job/uuid.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/job/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/job/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/job/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/job/uuid.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Job

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

created_by_staff_uuid
uuid
date
string
company_uuid
uuid
job_address
string
billing_address
string
status
string
required
job_description
string
work_done_description
string

Email Address

lng
float
lat
float
generated_job_id
string
payment_date
string
payment_actioned_by_uuid
uuid
payment_method
string
payment_amount
string
total_invoice_amount
string
category_uuid
uuid
payment_note
string
geo_is_valid
string
purchase_order_number
string
invoice_sent
string
invoice_sent_stamp
string
ready_to_invoice
string
ready_to_invoice_stamp
string
payment_processed
string
payment_processed_stamp
string
geo_country
string
geo_postcode
string
geo_state
string
geo_city
string
geo_street
string
geo_number
string
queue_uuid
uuid
queue_expiry_date
string
payment_received
string
payment_received_stamp
string
badges
string
quote_date
string
work_order_date
string
completion_date
string
completion_actioned_by_uuid
uuid
unsuccessful_date
string
job_is_scheduled_until_stamp
string
active_network_request_uuid
uuid

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Delete a Job

In ServiceM8, records are never deleted, but are archived. Archived records will remain accessible via the API as (active = 0), however will no longer be visible in UI. Archived records can be restored to active by setting the record active field to 1.

OAuth Scope

This endpoint requires the following OAuth scope manage_jobs.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
deletehttps://api.servicem8.com/api_1.0/job/uuid.json
curl --request DELETE \
  --url https://api.servicem8.com/api_1.0/job/uuid.json
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.servicem8.com/api_1.0/job/uuid.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/job/uuid.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.servicem8.com/api_1.0/job/uuid.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/job/uuid.json"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Path Params

uuid
uuid
required

UUID of the Job

Response

Job successfully archived

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Job Activities

 
Suggest Edits

List all Job Activities

Filtering

This endpoint supports result filtering. For more information on how to filter this request, go here.

OAuth Scope

This endpoint requires the following OAuth scope read_schedule.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/jobactivity.json
curl --request GET \
  --url https://api.servicem8.com/api_1.0/jobactivity.json
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.servicem8.com/api_1.0/jobactivity.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/jobactivity.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.servicem8.com/api_1.0/jobactivity.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/jobactivity.json"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

[
  {
    "uuid": "123e4567-4e04-43b6-b0a6-f7d2effde86b",
    "active": 1,
    "edit_date": "YYYY-MM-DD HH:MM:SS",
    "job_uuid": "123e4567-20c0-4528-88fa-011795d764db",
    "staff_uuid": "123e4567-1053-4b6a-a2f0-bcf651382f1b",
    "start_date": "YYYY-MM-DD HH:MM:SS",
    "end_date": "YYYY-MM-DD HH:MM:SS",
    "activity_was_scheduled": "string",
    "activity_was_recorded": "string",
    "has_been_opened": "string",
    "has_been_opened_timestamp": "YYYY-MM-DD HH:MM:SS",
    "travel_time_in_seconds": "string",
    "travel_distance_in_meters": "string",
    "allocated_by_staff_uuid": "123e4567-e156-484b-9b6a-4e4e62abf9ab",
    "allocated_timestamp": "YYYY-MM-DD HH:MM:SS"
  }
]
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Response

An array of Job Activities

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Create a new Job Activity

OAuth Scope

This endpoint requires the following OAuth scope manage_schedule.

Record UUID

UUID is optional for record creation. If no UUID is supplied, a UUID will be automatically generated for the new record and returned in the response header as x-record-uuid.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
posthttps://api.servicem8.com/api_1.0/jobactivity.json
curl --request POST \
  --url https://api.servicem8.com/api_1.0/jobactivity.json
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.servicem8.com/api_1.0/jobactivity.json' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.servicem8.com/api_1.0/jobactivity.json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.servicem8.com/api_1.0/jobactivity.json");

xhr.send(data);
import requests

url = "https://api.servicem8.com/api_1.0/jobactivity.json"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "errorCode": "0",
  "message": "OK"
}
{
  "errorCode": "1000",
  "message": "An error occurred completing your request"
}

Body Params

uuid
uuid

Record UUID key

active
number

Record active/deleted flag.

Valid values are [0,1]

job_uuid
uuid
staff_uuid
uuid
start_date
string
end_date
string
activity_was_scheduled
string
activity_was_recorded
string
has_been_opened
string
has_been_opened_timestamp
string
travel_time_in_seconds
string
travel_distance_in_meters
string
allocated_by_staff_uuid
uuid
allocated_timestamp
string

Response

Success

errorCodenumber
messagestring

Bad Request

errorCodenumber
messagestring

Unexpected error

errorCodenumber
messagestring
Suggest Edits

Retrieve a Job Activity

OAuth Scope

This endpoint requires the following OAuth scope read_schedule.

 

OAuth2 Auth

Bearer

Basic Auth

 Authentication is required for this endpoint.
gethttps://api.servicem8.com/api_1.0/jobactivity/uuid.json