Introduction
Showdigs API Documentation
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your token by visiting your integrations settings page.
Agent Coverage
Endpoints for checking agent coverage.
Check location coverage
requires authentication
Returns the coverage status of a location. For better accuracy and performance, we recommend using the latitude and longitude parameters.
Example request:
curl --request GET \
--get "https://api.showdigs.com/api/v1/coverage?latitude=40.762569&longitude=-73.8314318" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.showdigs.com/api/v1/coverage"
);
const params = {
"latitude": "40.762569",
"longitude": "-73.8314318",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.showdigs.com/api/v1/coverage',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'latitude' => '40.762569',
'longitude' => '-73.8314318',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/coverage'
params = {
'latitude': '40.762569',
'longitude': '-73.8314318',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": {
"is_covered": true,
"network": "primary"
}
}
Example response (200):
{
"data": {
"is_covered": true,
"network": "secondary"
}
}
Example response (200):
{
"data": {
"is_covered": false,
"network": "none"
}
}
Example response (422):
{
"message": "failed to match given address to a place"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Units
Endpoints for managing units.
Get all units
requires authentication
Returns a paginated list of all units.
Example request:
curl --request GET \
--get "https://api.showdigs.com/api/v1/units?page=1&per_page=10" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.showdigs.com/api/v1/units"
);
const params = {
"page": "1",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.showdigs.com/api/v1/units',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
'per_page' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/units'
params = {
'page': '1',
'per_page': '10',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": "e6aecd63-4b22-43e5-a468-1a83501d4b20",
"timezone": "Asia/Jerusalem",
"name": null,
"short_address": "4821 Wilburn Hill, East Isadorefurt",
"vicinity": "East Isadorefurt",
"location": {
"latitude": 32.00477,
"longitude": 34.911831
},
"size": null,
"bedrooms": null,
"bathrooms": null,
"listing_title": null,
"listing_description": null,
"amenities": [],
"is_showing": false,
"origin_id": null
},
{
"id": "c25b1a59-1dc7-4147-81d8-8e25087e78a1",
"timezone": "Asia/Jerusalem",
"name": null,
"short_address": "863 Borer Points, Rippinshire",
"vicinity": "Rippinshire",
"location": {
"latitude": 32.080976,
"longitude": 34.885906
},
"size": null,
"bedrooms": null,
"bathrooms": null,
"listing_title": null,
"listing_description": null,
"amenities": [],
"is_showing": false,
"origin_id": null
}
],
"links": {
"first": "/?page=1",
"last": null,
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"current_page_url": "/?page=1",
"from": 1,
"path": "/",
"per_page": "10",
"to": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get unit by uuid
requires authentication
Returns a specific unit by UUID.
Example request:
curl --request GET \
--get "https://api.showdigs.com/api/v1/units/e1d8e8da-36e5-4083-83db-1f2bd1e35c6a" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.showdigs.com/api/v1/units/e1d8e8da-36e5-4083-83db-1f2bd1e35c6a"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.showdigs.com/api/v1/units/e1d8e8da-36e5-4083-83db-1f2bd1e35c6a',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/units/e1d8e8da-36e5-4083-83db-1f2bd1e35c6a'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": "f2377245-18f1-44e5-96e0-abd9c4846323",
"timezone": "Asia/Jerusalem",
"name": null,
"short_address": "844 Davion Burg Suite 438, South Letaberg",
"vicinity": "South Letaberg",
"location": {
"latitude": 32.01443,
"longitude": 34.863112
},
"size": null,
"bedrooms": null,
"bathrooms": null,
"listing_title": null,
"listing_description": null,
"amenities": [],
"is_showing": false,
"origin_id": null
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Listings
Endpoints for managing listings.
Create a Listing
requires authentication
Example request:
curl --request POST \
"https://api.showdigs.com/api/v1/units/123e4567-e89b-12d3-a456-426614174000/listing" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"type\": \"blanditiis\",
\"agent_backup\": true,
\"only_consecutive_tours\": true,
\"property_link\": \"https:\\/\\/example.com\\/property\",
\"application_link\": \"https:\\/\\/example.com\\/application\",
\"manager_email\": \"manager@example.com\",
\"access_hardware\": \"keypad\",
\"access_code\": \"1234 (required for non smart access hardware such as lockboxes or keypads)\",
\"serial_number\": \"12345678 (required if `access_hardware` is set to smart device: Codebox, Sentrilock)\",
\"notes\": \"This is a sample listing.\",
\"tours_limit\": 10,
\"rent\": 1000,
\"security_deposit\": 500,
\"screening_template_uuid\": \"123e4567-e89b-12d3-a456-426614174000\",
\"schedule_template_uuid\": \"123e4567-e89b-12d3-a456-426614174000 (required if `type` is restricted)\",
\"ai_identity_verification\": true,
\"tenants\": null,
\"report_emails\": null,
\"availability_date\": \"2023-01-01\",
\"showing_start_date\": \"2023-01-01\"
}"
const url = new URL(
"https://api.showdigs.com/api/v1/units/123e4567-e89b-12d3-a456-426614174000/listing"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"type": "blanditiis",
"agent_backup": true,
"only_consecutive_tours": true,
"property_link": "https:\/\/example.com\/property",
"application_link": "https:\/\/example.com\/application",
"manager_email": "manager@example.com",
"access_hardware": "keypad",
"access_code": "1234 (required for non smart access hardware such as lockboxes or keypads)",
"serial_number": "12345678 (required if `access_hardware` is set to smart device: Codebox, Sentrilock)",
"notes": "This is a sample listing.",
"tours_limit": 10,
"rent": 1000,
"security_deposit": 500,
"screening_template_uuid": "123e4567-e89b-12d3-a456-426614174000",
"schedule_template_uuid": "123e4567-e89b-12d3-a456-426614174000 (required if `type` is restricted)",
"ai_identity_verification": true,
"tenants": null,
"report_emails": null,
"availability_date": "2023-01-01",
"showing_start_date": "2023-01-01"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.showdigs.com/api/v1/units/123e4567-e89b-12d3-a456-426614174000/listing',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'type' => 'blanditiis',
'agent_backup' => true,
'only_consecutive_tours' => true,
'property_link' => 'https://example.com/property',
'application_link' => 'https://example.com/application',
'manager_email' => 'manager@example.com',
'access_hardware' => 'keypad',
'access_code' => '1234 (required for non smart access hardware such as lockboxes or keypads)',
'serial_number' => '12345678 (required if `access_hardware` is set to smart device: Codebox, Sentrilock)',
'notes' => 'This is a sample listing.',
'tours_limit' => 10,
'rent' => 1000,
'security_deposit' => 500,
'screening_template_uuid' => '123e4567-e89b-12d3-a456-426614174000',
'schedule_template_uuid' => '123e4567-e89b-12d3-a456-426614174000 (required if `type` is restricted)',
'ai_identity_verification' => true,
'tenants' => null,
'report_emails' => null,
'availability_date' => '2023-01-01',
'showing_start_date' => '2023-01-01',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/units/123e4567-e89b-12d3-a456-426614174000/listing'
payload = {
"type": "blanditiis",
"agent_backup": true,
"only_consecutive_tours": true,
"property_link": "https:\/\/example.com\/property",
"application_link": "https:\/\/example.com\/application",
"manager_email": "manager@example.com",
"access_hardware": "keypad",
"access_code": "1234 (required for non smart access hardware such as lockboxes or keypads)",
"serial_number": "12345678 (required if `access_hardware` is set to smart device: Codebox, Sentrilock)",
"notes": "This is a sample listing.",
"tours_limit": 10,
"rent": 1000,
"security_deposit": 500,
"screening_template_uuid": "123e4567-e89b-12d3-a456-426614174000",
"schedule_template_uuid": "123e4567-e89b-12d3-a456-426614174000 (required if `type` is restricted)",
"ai_identity_verification": true,
"tenants": null,
"report_emails": null,
"availability_date": "2023-01-01",
"showing_start_date": "2023-01-01"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201, success):
{
"listing_uuid": "123e4567-e89b-12d3-a456-426614174000",
"scheduling_url": "https://showdigs.co/x1Y2z3"
}
Example response (404, unit not found):
{
"message": "Unit not found"
}
Example response (422, validation error):
{
"message": "Validation error",
"errors": {
"field_name": [
"The field_name field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a Listing
requires authentication
Update a listing by UUID param.
Example request:
curl --request PUT \
"https://api.showdigs.com/api/v1/units/3915d06b-54b8-38b5-9547-4460a4b2482a/listing" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"rent\": 1500,
\"security_deposit\": 500,
\"application_url\": \"https:\\/\\/application.com\\/123Main\",
\"notes\": \"Updated notes\"
}"
const url = new URL(
"https://api.showdigs.com/api/v1/units/3915d06b-54b8-38b5-9547-4460a4b2482a/listing"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"rent": 1500,
"security_deposit": 500,
"application_url": "https:\/\/application.com\/123Main",
"notes": "Updated notes"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://api.showdigs.com/api/v1/units/3915d06b-54b8-38b5-9547-4460a4b2482a/listing',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'rent' => 1500,
'security_deposit' => 500,
'application_url' => 'https://application.com/123Main',
'notes' => 'Updated notes',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/units/3915d06b-54b8-38b5-9547-4460a4b2482a/listing'
payload = {
"rent": 1500,
"security_deposit": 500,
"application_url": "https:\/\/application.com\/123Main",
"notes": "Updated notes"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (200):
scenario { "message": "Listing updated successfully" }
Example response (404):
scenario { "message": "Unit not found" }
Example response (422):
scenario { "message": "Unit is not listed" }
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List all listings
requires authentication
Returns a list of all listings.
Example request:
curl --request GET \
--get "https://api.showdigs.com/api/v1/listings" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.showdigs.com/api/v1/listings"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.showdigs.com/api/v1/listings',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/listings'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get listing by uuid
requires authentication
Returns a specific listing by UUID.
Please provide UUID for better accuracy and performance. UUID can be either Showdigs listing UUID or Appfolio's listing UUID.
Example request:
curl --request GET \
--get "https://api.showdigs.com/api/v1/listings/8de70ef2-caae-38e6-ab00-c4a1072e105e" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.showdigs.com/api/v1/listings/8de70ef2-caae-38e6-ab00-c4a1072e105e"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.showdigs.com/api/v1/listings/8de70ef2-caae-38e6-ab00-c4a1072e105e',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/listings/8de70ef2-caae-38e6-ab00-c4a1072e105e'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete listing by uuid
requires authentication
Delete a listing by UUID param.
Please provide UUID for better accuracy and performance. The UUID can be either Showdigs listing UUID or Appfolio's listing UUID.
Example request:
curl --request DELETE \
"https://api.showdigs.com/api/v1/listings/bfca217d-995b-351c-a4e8-d38092d61ccc" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.showdigs.com/api/v1/listings/bfca217d-995b-351c-a4e8-d38092d61ccc"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://api.showdigs.com/api/v1/listings/bfca217d-995b-351c-a4e8-d38092d61ccc',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/listings/bfca217d-995b-351c-a4e8-d38092d61ccc'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (200):
scenario { "message": "Listing deactivated successfully" }
Example response (404):
scenario { "message": "Unit not found" }
Example response (422):
scenario { "message": "Unit is not listed" } || { "message": "Some tours are planned to take place soon and can not be cancelled, try deactivating the listing after those tours are completed" }
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Inquiries
Endpoints for managing inquiries.
Create an inquiry
requires authentication
Creates a new inquiry.
Example request:
curl --request POST \
"https://api.showdigs.com/api/v1/inquiries" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"first_name\": \"John\",
\"last_name\": \"Doe\",
\"email\": \"johndoe@example.com\",
\"phone_number\": \"+123456789\",
\"property_interest\": \"42 florentia st, Seattle\",
\"listing_id\": \"1f06224c-1587-49ac-999f-5e9fcca35fac\"
}"
const url = new URL(
"https://api.showdigs.com/api/v1/inquiries"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"first_name": "John",
"last_name": "Doe",
"email": "johndoe@example.com",
"phone_number": "+123456789",
"property_interest": "42 florentia st, Seattle",
"listing_id": "1f06224c-1587-49ac-999f-5e9fcca35fac"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.showdigs.com/api/v1/inquiries',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'johndoe@example.com',
'phone_number' => '+123456789',
'property_interest' => '42 florentia st, Seattle',
'listing_id' => '1f06224c-1587-49ac-999f-5e9fcca35fac',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/inquiries'
payload = {
"first_name": "John",
"last_name": "Doe",
"email": "johndoe@example.com",
"phone_number": "+123456789",
"property_interest": "42 florentia st, Seattle",
"listing_id": "1f06224c-1587-49ac-999f-5e9fcca35fac"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200, Inquiry created):
{
"inquiry_id": "7494ab9f-7da6-4598-8c3f-bc2c1f10e7b5",
"scheduling_url": "https://showdigs.co/x1Y2z3"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
inquiry_id
string
The unique identifier of the inquiry.
scheduling_url
string
The URL for scheduling.
Bot
GET api/v1/bots/business-info/{businessId}
requires authentication
Example request:
curl --request GET \
--get "https://api.showdigs.com/api/v1/bots/business-info/neque" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.showdigs.com/api/v1/bots/business-info/neque"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.showdigs.com/api/v1/bots/business-info/neque',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/bots/business-info/neque'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (422):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 180
x-ratelimit-remaining: 179
vary: Origin
{
"message": "Business doesn't exist"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/bots/conversation/message
requires authentication
Example request:
curl --request POST \
"https://api.showdigs.com/api/v1/bots/conversation/message" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"businessDetails\": {
\"businessId\": 11
},
\"conversationDetails\": {
\"conversationId\": \"placeat\"
},
\"messageDetails\": {
\"messageId\": \"optio\",
\"direction\": \"quo\",
\"content\": \"ducimus\",
\"createdOn\": \"2026-02-10T09:04:16\"
}
}"
const url = new URL(
"https://api.showdigs.com/api/v1/bots/conversation/message"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"businessDetails": {
"businessId": 11
},
"conversationDetails": {
"conversationId": "placeat"
},
"messageDetails": {
"messageId": "optio",
"direction": "quo",
"content": "ducimus",
"createdOn": "2026-02-10T09:04:16"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.showdigs.com/api/v1/bots/conversation/message',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'businessDetails' => [
'businessId' => 11,
],
'conversationDetails' => [
'conversationId' => 'placeat',
],
'messageDetails' => [
'messageId' => 'optio',
'direction' => 'quo',
'content' => 'ducimus',
'createdOn' => '2026-02-10T09:04:16',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/bots/conversation/message'
payload = {
"businessDetails": {
"businessId": 11
},
"conversationDetails": {
"conversationId": "placeat"
},
"messageDetails": {
"messageId": "optio",
"direction": "quo",
"content": "ducimus",
"createdOn": "2026-02-10T09:04:16"
}
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Endpoints
POST api/v1/webhooks/subscribe
requires authentication
Example request:
curl --request POST \
"https://api.showdigs.com/api/v1/webhooks/subscribe" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\"
}"
const url = new URL(
"https://api.showdigs.com/api/v1/webhooks/subscribe"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.showdigs.com/api/v1/webhooks/subscribe',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'url' => 'https:',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/webhooks/subscribe'
payload = {
"url": "https:"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/v1/webhooks/unsubscribe
requires authentication
Example request:
curl --request DELETE \
"https://api.showdigs.com/api/v1/webhooks/unsubscribe" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.showdigs.com/api/v1/webhooks/unsubscribe"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://api.showdigs.com/api/v1/webhooks/unsubscribe',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/webhooks/unsubscribe'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/webhooks/sample
requires authentication
Example request:
curl --request GET \
--get "https://api.showdigs.com/api/v1/webhooks/sample" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.showdigs.com/api/v1/webhooks/sample"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.showdigs.com/api/v1/webhooks/sample',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/webhooks/sample'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Properties
Endpoints for managing properties and their units.
Create a Property and its Units
requires authentication
This endpoint allows you to create a new property along with its associated units.
Example request:
curl --request POST \
"https://api.showdigs.com/api/v1/properties" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"origin_id\": \"p_1\",
\"property_type\": \"Single Family Home\",
\"street\": \"4536 S Pennsylvania Ave\",
\"city\": \"Oklahoma City\",
\"state\": \"OK\",
\"zip\": \"73119\",
\"latitude\": 35.4197022,
\"longitude\": -97.5471714,
\"units\": [
{
\"name\": \"Unit A\",
\"bedrooms\": 3,
\"bathrooms\": 2,
\"size\": 1200,
\"images\": [
\"https:\\/\\/placehold.co\\/600x400\\/blue\\/black\"
]
}
]
}"
const url = new URL(
"https://api.showdigs.com/api/v1/properties"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"origin_id": "p_1",
"property_type": "Single Family Home",
"street": "4536 S Pennsylvania Ave",
"city": "Oklahoma City",
"state": "OK",
"zip": "73119",
"latitude": 35.4197022,
"longitude": -97.5471714,
"units": [
{
"name": "Unit A",
"bedrooms": 3,
"bathrooms": 2,
"size": 1200,
"images": [
"https:\/\/placehold.co\/600x400\/blue\/black"
]
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.showdigs.com/api/v1/properties',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'origin_id' => 'p_1',
'property_type' => 'Single Family Home',
'street' => '4536 S Pennsylvania Ave',
'city' => 'Oklahoma City',
'state' => 'OK',
'zip' => '73119',
'latitude' => 35.4197022,
'longitude' => -97.5471714,
'units' => [
[
'name' => 'Unit A',
'bedrooms' => 3,
'bathrooms' => 2,
'size' => 1200,
'images' => [
'https://placehold.co/600x400/blue/black',
],
],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/properties'
payload = {
"origin_id": "p_1",
"property_type": "Single Family Home",
"street": "4536 S Pennsylvania Ave",
"city": "Oklahoma City",
"state": "OK",
"zip": "73119",
"latitude": 35.4197022,
"longitude": -97.5471714,
"units": [
{
"name": "Unit A",
"bedrooms": 3,
"bathrooms": 2,
"size": 1200,
"images": [
"https:\/\/placehold.co\/600x400\/blue\/black"
]
}
]
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201, Property created):
{
"origin_id": "p_1",
"created_at": "2024-07-25 13:40:54",
"updated_at": "2024-07-25 13:40:54",
"property_type": "Single Family Home",
"short_address": "4536 S Pennsylvania Ave, Oklahoma City",
"timezone": "America/Denver",
"location": {
"type": "Point",
"coordinates": [
-97.5471714,
35.4197022
]
},
"units": [
{
"uuid": "u_1",
"created_at": "2024-07-25 13:40:54",
"updated_at": "2024-07-25 13:40:54",
"name": null,
"images": [
"https://example.com/pic.jpg",
"https://example.com/pic2.jpg"
],
"bedrooms": 3,
"bathrooms": 2,
"size": 1200
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a Property and its Units
requires authentication
This endpoint allows you to update an existing property along with its associated units.
Example request:
curl --request PUT \
"https://api.showdigs.com/api/v1/properties/nulla" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"property_type\": \"Single Family Home\",
\"street\": \"4536 S Pennsylvania Ave\",
\"city\": \"Oklahoma City\",
\"state\": \"OK\",
\"zip\": \"73119\",
\"latitude\": 35.4197022,
\"longitude\": -97.5471714,
\"units\": [
{
\"uuid\": \"54f4b3b3-1b1b-4b3b-8b3b-1b1b4b3b8b3b\",
\"name\": \"Unit A\",
\"bedrooms\": 3,
\"bathrooms\": 2,
\"size\": 1200,
\"images\": [
\"https:\\/\\/placehold.co\\/600x400\\/blue\\/black\"
]
}
]
}"
const url = new URL(
"https://api.showdigs.com/api/v1/properties/nulla"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"property_type": "Single Family Home",
"street": "4536 S Pennsylvania Ave",
"city": "Oklahoma City",
"state": "OK",
"zip": "73119",
"latitude": 35.4197022,
"longitude": -97.5471714,
"units": [
{
"uuid": "54f4b3b3-1b1b-4b3b-8b3b-1b1b4b3b8b3b",
"name": "Unit A",
"bedrooms": 3,
"bathrooms": 2,
"size": 1200,
"images": [
"https:\/\/placehold.co\/600x400\/blue\/black"
]
}
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://api.showdigs.com/api/v1/properties/nulla',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'property_type' => 'Single Family Home',
'street' => '4536 S Pennsylvania Ave',
'city' => 'Oklahoma City',
'state' => 'OK',
'zip' => '73119',
'latitude' => 35.4197022,
'longitude' => -97.5471714,
'units' => [
[
'uuid' => '54f4b3b3-1b1b-4b3b-8b3b-1b1b4b3b8b3b',
'name' => 'Unit A',
'bedrooms' => 3,
'bathrooms' => 2,
'size' => 1200,
'images' => [
'https://placehold.co/600x400/blue/black',
],
],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.showdigs.com/api/v1/properties/nulla'
payload = {
"property_type": "Single Family Home",
"street": "4536 S Pennsylvania Ave",
"city": "Oklahoma City",
"state": "OK",
"zip": "73119",
"latitude": 35.4197022,
"longitude": -97.5471714,
"units": [
{
"uuid": "54f4b3b3-1b1b-4b3b-8b3b-1b1b4b3b8b3b",
"name": "Unit A",
"bedrooms": 3,
"bathrooms": 2,
"size": 1200,
"images": [
"https:\/\/placehold.co\/600x400\/blue\/black"
]
}
]
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (202, Property updated):
{
"origin_id": "p_1",
"created_at": "2024-07-25 13:40:54",
"updated_at": "2024-07-25 13:40:54",
"property_type": "Single Family Home",
"short_address": "4536 S Pennsylvania Ave, Oklahoma City",
"timezone": "America/Denver",
"location": {
"type": "Point",
"coordinates": [
-97.5471714,
35.4197022
]
},
"units": [
{
"uuid": "u_1",
"created_at": "2024-07-25 13:40:54",
"updated_at": "2024-07-25 13:40:54",
"name": null,
"images": [
"https://example.com/pic.jpg",
"https://example.com/pic2.jpg"
],
"bedrooms": 3,
"bathrooms": 2,
"size": 1200
}
]
}
Example response (422, update property validation error):
{
"message": "The given data was invalid.",
"errors": {
"street": [
"The street field is required."
],
"city": [
"The city field is required."
],
"state": [
"The state field is required."
],
"zip": [
"The zip field is required."
],
"latitude": [
"The latitude field is required."
],
"longitude": [
"The longitude field is required."
],
"units": [
"The units field is required."
],
"units.0.uuid": [
"The units.0.uuid id field is required."
],
"units.0.bedrooms": [
"The units.0.bedrooms field is required."
],
"units.0.bathrooms": [
"The units.0.bathrooms field is required."
],
"units.0.size": [
"The units.0.size field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Webhooks
Overview
Showdigs provides a webhook integration that allows you to receive requests in real-time.
In the settings page of your Showdigs account, you can configure a webhook URL to receive events. You can also configure a webhook access token to verify the authenticity of the request.

Webhook events can be differentiated based on their event_type, which will be included as the first
element in every webhook object.
Webhook Access Token
When the token is set, it will be included in the request headers.
"Authorization:" "Bearer TOKEN"
Inquiry Created
When a new inquiry is received for a property.
{
"event_type": "new_inquiry",
"inquiry_id": "4789",
"unit_internal_id": "2345",
"address": "506 E Howell St, Seattle - E-308",
"timezone": "America/Los_Angeles",
"prospect": {
"id": 98,
"first_name": "Brenna",
"last_name": "Webb",
"full_name": "Brenna Webb",
"phone_number": "+972549143350",
"email": "jelado@mailinator.com"
},
"comment": null,
"inquiry_source": "Manual",
"appfolio_listing_uuid": "0f6d64f4-47aa-4e83-ba79-8a423ff81331",
"uuid": "1e840593-2e20-47f1-b7bc-65e96fe4740d",
"message": "Brenna Webb has inquired about 1473 22nd Ave, Seattle: https://app.showigs.com/prospects/98"
}
event_type
The webhook event.
inquiry_id
The inquiry identifier.
unit_internal_id
The PMS identifier for the property.
address
The address of the property the prospect is interested in.
timezone
The timezone the property is in.
prospect.id
The Showdigs prospect identifier.
prospect.first_name The prospect's first name.
prospect.last_name
The prospect's last name.
prospect.full_name
The prospect's full name.
prospect.phone_number The prospect's phone number.
prospect.email
The prospect's email.
comment
The message, if any, contained in the prospect’s inquiry.
inquiry_source
The source of the inquiry.
Example values: Zillow Rental Network, Zillow, Manual, PM Website
(the Showdigs listing page), plus many more
appfolio_listing_uuid
The AppFolio listing identifier.
uuid
The Showdigs identifier, which can be used in the /listings:{uuid}
API call.
message
A human readable message to describe what happened.
Disqualified Lead
When a prospect completes the pre-screening and is disqualified from touring a property.
{
"event_type": "disqualified_lead",
"inquiry_id": "4789",
"unit_internal_id": "2345",
"address": "506 E Howell St, Seattle - E-308",
"timezone": "America/Los_Angeles",
"prospect": {
"id": 98,
"first_name": "Brenna",
"last_name": "Webb",
"full_name": "Brenna Webb",
"phone_number": "+972549143350",
"email": "jelado@mailinator.com"
},
"pre_screening_answers": {
"data": {
"move_in_date": {
"tour_at": "2023-03-18T18:30:00+02:00",
"move_in_date": "2023-03-18T14:28:00.000Z"
},
"smoking_policy": "no",
"minimum_lease_length": "2_years",
"maximum_allowed_tenants": "1_tenant"
},
"is_qualified": false
},
"appfolio_listing_uuid": "0f6d64f4-47aa-4e83-ba79-8a423ff81331",
"uuid": "1e840593-2e20-47f1-b7bc-65e96fe4740d",
"message": "Brenna Webb completed the pre-screening and was disqualified from touring 506 E Howell St, Seattle - E-308: https://app.showdigs.com/prospects/98"
}
event_type
The webhook event.
inquiry_id
The inquiry identifier.
unit_internal_id
The PMS identifier for the property.
address
The address of the property the prospect was disqualified from touring.
timezone
The timezone the property is in.
prospect.id
The Showdigs prospect identifier.
prospect.first_name The prospect's first name.
prospect.last_name
The prospect's last name.
prospect.full_name
The prospect's full name.
prospect.phone_number The prospect's phone number.
prospect.email
The prospect's email.
pre_screening_answers
This section contains the prospect's responses to pre-screening
questions they were asked. The contents will differ based on
your individual showing configuration.
appfolio_listing_uuid
The AppFolio listing identifier.
uuid
The Showdigs identifier, which can be used in the /listings:{uuid}
API call.
message
A human readable message to describe what happened.
Tour Scheduled
When a tour is scheduled.
{
"event_type": "tour_scheduled",
"tour_type": "agent",
"tour_id": 59,
"unit_internal_id": "my_int_id",
"address": "1473 22nd Ave, Seattle",
"timezone": "America/Los_Angeles",
"tour_at": "2023-03-18T16:30:00.000Z",
"tour_until": "2023-03-18T17:00:00.000Z",
"inquiry_id": 456,
"prospect_id": 123,
"prospect_first_name": "Shanon",
"prospect_last_name": "Klocko",
"prospect_phone_number": "+201255564049",
"prospect_email": "ouhwfiop@showdigs.testfake",
"pre_screening_answers": {
"data": {
"move_in_date": {
"tour_at": "2023-03-18T18:30:00+02:00",
"move_in_date": "2023-03-18T14:28:00.000Z"
},
"smoking_policy": "no",
"minimum_lease_length": "2_years",
"maximum_allowed_tenants": "1_tenant"
},
"is_qualified": true
},
"identity_verification": null,
"appfolio_listing_uuid": "8e9b8527-48a7-4e49-9c98-7d45203da399",
"uuid": "1e840593-2e20-47f1-b7bc-65e96fe4740d",
"message": "Shanon Klocko scheduled a tour 1473 22nd Ave, Seattle: https://app.showdigs.com/tours/59"
}
event_type
The webhook event.
tour_type
The type of tour that was scheduled.
Possible values: self_showing, open_house, agent
tour_id
The Showdigs identifier for the tour. This will be consistent for a single tour
across the tour-related webhooks.
unit_internal_id
The PMS identifier for the property.
address
The address of the property being toured.
timezone
The timezone the property is in.
tour_at
The scheduled start time for the tour.
tour_until
The scheduled end time for the tour.
inquiry_id
The inquiry identifier that led to the tour.
prospect_id
The Showdigs identifier for the prospect. This will be the same for the prospect for
all properties they request to tour.
prospect_first_name
The prospect's first name.
prospect_last_name
The prospect's last name.
prospect_phone_number
The prospect's phone number.
prospect_email
The prospect's email address.
pre_screening_answers
This section contains the prospect's responses to pre-screening
questions they were asked when scheduling the tour. The contents
will differ based on your individual showing configuration.
pre_screening_answers.data.move_in_date
This provides the tour time and then the calculated move in date based on the
"Move in date" pre-screening criteria.
pre_screening_answers.data.smoking_policy
The prospect's answer to the question, "will you be smoking in this property?"
Possible values: yes, no
pre_screening_answers.data.minimum_lease_length
The prospect's answer to the question, "how long are you planning to lease
the property for?"
pre_screening_answers.data.maximum_allowed_tenants
The prospect's answer to the question, "how many tenants are expected to live
in the property?"
pre_screening_answers.is_qualified
The overall result of the pre-screening questions.
Possible values: true (is qualified), false (is not qualified)
identity_verification
This is an area we are planning to build into. For now, this will always be null.
appfolio_listing_uuid
The AppFolio listing identifier.
uuid
The Showdigs identifier, which can be used in the /listings:{uuid}
API call.
message
A human readable message to describe what happened.
Tour Completed
When a tour is completed.
{
"event_type": "tour_completed",
"tour_type": "agent",
"tour_id": 59,
"outcome": "completed",
"unit_internal_id": "my_int_id",
"address": "1473 22nd Ave, Seattle",
"timezone": "America/Los_Angeles",
"tour_at": "2023-03-18T16:30:00.000Z",
"tour_until": "2023-03-18T17:00:00.000Z",
"survey_results": [
{
"key": "outcome",
"answer": "Successful tour",
"question": "Tour outcome"
},
{
"key": "does_unit_show_well",
"answer": "yes",
"question": "Does the unit show well? If not, what can be done to make it show better?"
}
],
"prospects_count": 2,
"prospects": [
{
"id": 90,
"first_name": "Ottis",
"last_name": "Feest",
"phone": "+201255563527",
"email": "ukbkadhj@showdigs.testfake",
"likely_to_apply": "Maybe",
"inquiry_id": 456
},
{
"id": 91,
"first_name": "Shanon",
"last_name": "Klocko",
"phone": "+201255564049",
"email": "ouhwfiop@showdigs.testfake",
"likely_to_apply": "Yes",
"inquiry_id": 789
}
],
"charge": 45,
"appfolio_listing_uuid": "8e9b8527-48a7-4e49-9c98-7d45203da399",
"uuid": "1e840593-2e20-47f1-b7bc-65e96fe4740d",
"message": "Multiple prospects completed a tour of 1473 22nd Ave, Seattle: https://app.showdigs.com/tours/59"
}
event_type
The webhook event.
tour_type
The type of tour that was scheduled.
Possible values: self_showing, open_house, agent
tour_id
The Showdigs identifier for the tour. This will be consistent for a single tour
across the tour-related webhooks.
outcome
The outcome of the tour. Keep in mind that tour_cancelled is a different webhook.
Possible values: completed, no_show, technical_issue (typically refers to
an access issue that prevented the tour from occurring)
unit_internal_id
The PMS identifier for the property.
address
The address of the property being toured.
timezone
The timezone the property is in.
tour_at
The scheduled start time for the tour.
tour_until
The scheduled end time for the tour.
survey_results
An array of the questions asked to the agent and their responses
about the tour and property.
prospects_count
The number of prospects that attended the tour.
prospects
An array of the prospects that attended the tour. This will include each
prospect's id, name, phone, email, original inquiry identifier, and the
agent's thoughts regarding the likelihood of the prospect to apply.
charge
This is the amount that was charged to complete the tour.
Value will be numeric, and will not have any "money" formatting applied.
appfolio_listing_uuid
The AppFolio listing identifier.
uuid
The Showdigs identifier, which can be used in the /listings:{uuid}
API call.
message
A human readable message to describe what happened
Tour Cancelled
When a tour is cancelled.
{
"event_type": "tour_cancelled",
"tour_type": "agent",
"tour_id": 59,
"unit_internal_id": "my_int_id",
"address": "1473 22nd Ave, Seattle",
"timezone": "America/Los_Angeles",
"tour_at": "2023-03-18T16:30:00.000Z",
"tour_until": "2023-03-18T17:00:00.000Z",
"prospects": [
{
"id": 90,
"first_name": "Ottis",
"last_name": "Feest",
"phone": "+201255563527",
"email": "ukbkadhj@showdigs.testfake",
"inquiry_id": 456
}
],
"appfolio_listing_uuid": "8e9b8527-48a7-4e49-9c98-7d45203da399",
"uuid": "1e840593-2e20-47f1-b7bc-65e96fe4740d",
"message": "Ottis Feest cancelled a tour 1473 22nd Ave, Seattle: https://app.showdigs.com/tours/59"
}
event_type
The webhook event.
tour_type
The type of tour that was scheduled.
Possible values: self_showing, open_house, agent
tour_id
The Showdigs identifier for the tour. This will be consistent for a single tour
across the tour-related webhooks.
unit_internal_id
The PMS identifier for the property.
address
The address of the property being toured.
timezone
The timezone the property is in.
tour_at
The scheduled start time for the tour.
tour_until
The scheduled end time for the tour.
prospects
An array of the prospects that were scheduled to attend the tour. This will
include each prospect's id, name, phone, email, and their original
inquiry identifier.
appfolio_listing_uuid
The AppFolio listing identifier.
uuid
The Showdigs identifier, which can be used in the /listings:{uuid}
API call.
message
A human readable message to describe what happened
Condition report completed
When a condition report is completed.
{
"event_type": "completed_condition_report",
"condition_report_id": 123,
"address": "506 E Howell St, Seattle - E-308",
"timezone": "America/Los_Angeles",
"report_url": "sd.test/9pdYyM",
"cost": "20",
"condition_report_type": "move_in_out",
"inspected_at": "2023-03-18T17:00:00.000Z",
"uuid": "1e840593-2e20-47f1-b7bc-65e96fe4740d",
"message": "A condition report was completed for 506 E Howell St, Seattle - E-308"
}
event_type
The webhook event.
condition_report_id
The Shodigs identifier for the condition report.
address
The address of the property that the report was completed for.
timezone
The timezone the property is in.
report_url
The url of the completed condition report.
cost
This is the amount that was charged to complete the condition report.
Value will be numeric, and will not have any "money" formatting applied.
condition_report_type
The type of condition report that was completed.
Possible values: periodic, move_in_out, vacancy_check
inspected_at
The date and time the condition report was completed at.
uuid
The Showdigs identifier, which can be used in the /listings:{uuid}
API call.
message
A human readable message to describe what happened
Scheduling Widget
You can load Showdigs scheduling widget inside your listing page.

Contact Showdigs support and provide a list of domains you're expecting to load the widget from.
Once feature is enabled for your account, you can embed the widget as an iframe in your site.
<iframe
src="https://lead.showdigs.com/embed/ACCOUNT_ID/INTERNAL_UNIT_ID?name=John Doe&phone=%2b15555551234"
width="100%"
height="600px"
style="border:none;">
</iframe>