
The Safe Check-N API provides real-time verification of short-term rental listings against Colombia's National Tourism Registry (RNT) database, alongside automated indoor surveillance disclosure screening.
All requests require a valid API Bearer Token. Access is provisioned via your Safe Check-N developer subscription plan.
AuthorizationBearer YOUR_API_SUBSCRIPTION_KEYcurl https://verify-listing-797822275394.us-central1.run.app \
-H "Authorization: Bearer YOUR_API_SUBSCRIPTION_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.airbnb.com/rooms/1658722752212441825"}'JavaScript (Node.js / Fetch)
const response = await fetch("https://verify-listing-797822275394.us-central1.run.app", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_SUBSCRIPTION_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
url: "https://www.airbnb.com/rooms/1658722752212441825"
})
});
const data = await response.json();
console.log(data.title, data.overall_state);Python (Requests)
import requests
url = "https://verify-listing-797822275394.us-central1.run.app"
headers = {
"Authorization": "Bearer YOUR_API_SUBSCRIPTION_KEY",
"Content-Type": "application/json"
}
payload = {
"url": "https://www.airbnb.com/rooms/1658722752212441825"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())API Key Notice: Keep your subscription key secure. Do not expose this token in client-side code without domain restrictions or proxy routing.
| Feature / Tier | Developer API | Business API | Enterprise API |
|---|---|---|---|
| Annual Subscription | $4,500 / year | $15,000 / year | $35,000 / year |
| Annual Verification Volume | Up to 500 checks / yr | Up to 2,500 checks / yr | Up to 15,000 checks / yr |
| Target Audience | Travel app developers, niche brokers | Regional PMS, corporate travel networks, mid-market travel agencies | Major OTAs, enterprise underwriters, travel risk platforms |
| Coverage | Nationwide (Colombia) | Nationwide (Colombia) + Core English DOM Scanning | Global Multi-Market Coverage (RNT + Universal DOM Scanner) |
| White-Labeling Rights | — | +$3,500 / year | Included |
| API Endpoint Access | Headless JSON API | Headless JSON API + Webhooks | Headless JSON API + Batch Endpoints |
| Support SLA | Standard (24 Hours) | Priority (12 Hours) | VIP (2 Hours) |
![]() |
https://verify-listing-797822275394.us-central1.run.appapplication/jsonRequest Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Full URL of the Airbnb listing to evaluate and verify. |
Example Request Payload
{
"url": "https://www.airbnb.com/rooms/1658722752212441825"
}Response Schema — Success Response (200 OK)
| Field | Type | Description |
|---|---|---|
| overall_state | string | Status indicator badge (🟢 Green (Safe), 🟡 Yellow (Caution), 🔴 Red (Danger)). |
| title | string | Concise verification outcome header matching Chrome extension UI. |
| description | string | Legal compliance status or permit violation details. |
| camera_screening_outcome | string | INDOOR SURVEILLANCE FLAG or No indoor surveillance flagged. |
| camera_warning_details | string | null | Guidance when indoor surveillance terms are present on the listing. |
| rnt_code | string | null | Extracted 5–8 digit RNT permit registration code. |
| hasCameraFlag | boolean | true if indoor surveillance terms were detected. |
| registry_snapshot | string | null | Official registry snapshot date label, present when RNT is verified. |
| registry_data | object | null | Official record details from the RNT registry database. |
Example Response (200 OK)
{
"overall_state": "🟡 Yellow (Caution)",
"title": "RNT VERIFIED (#274765)",
"description": "This rental is compliant with Colombian tourism laws and Airbnb policy.",
"camera_screening_outcome": "INDOOR SURVEILLANCE FLAG",
"camera_warning_details": "See the 'Privacy and safety' section under 'What this place offers' for details.",
"rnt_code": "274765",
"hasCameraFlag": true,
"registry_snapshot": "Official Registry Snapshot: July 7, 2026",
"registry_data": {
"CODIGO_RNT": 274765,
"ESTADO_RNT": "ACTIVO",
"RAZON_SOCIAL_ESTABLECIMIENTO": "LIVING 4",
"DEPARTAMENTO": "ANTIOQUIA",
"MUNICIPIO": "MEDELLIN",
"CODIGO_MUNICIPIO": 5001,
"NIT": 901819822,
"CATEGORIA": "ESTABLECIMIENTOS DE ALOJAMIENTO TURÍSTICO",
"SUB_CATEGORIA": "HOTEL",
"AÑO": 2026
}
}Safe Check-N returns standard HTTP status codes. When an error occurs, the response body contains a JSON object with a machine-readable error code and a human-readable message.
| Status Code | Error Code | Description | Example Payload |
|---|---|---|---|
| 400 Bad Request | BAD_REQUEST | Missing or malformed parameters (e.g., missing url field). | { "error": "BAD_REQUEST", "message": "Payload must include an Airbnb listing url" } |
| 401 Unauthorized | UNAUTHORIZED | Missing or invalid API subscription key in Authorization header. | { "error": "UNAUTHORIZED", "message": "Missing or invalid Bearer API token." } |
| 404 Not Found | NOT_FOUND | Target endpoint or resource was not found. | { "error": "NOT_FOUND", "message": "Endpoint does not exist." } |
| 500 Internal Error | INTERNAL_ERROR | An unexpected server-side execution failure occurred. | { "error": "INTERNAL_ERROR", "message": "An unexpected error occurred." } |
| 503 Unavailable | SERVICE_UNAVAILABLE | Temporary service outage, deployment in progress, or upstream timeout. | { "error": "SERVICE_UNAVAILABLE", "message": "Service is temporarily overloaded." } |