文档导航
API docsCustomers
API 参考
Customers
Interventions
2 个端点REST / JSON
概览
使用以下路径和方法。请将示例标识符和 YOUR_API_TOKEN 替换为您有权使用的值;本页不会执行任何示例。
基础 URL
https://api.stayclean.io身份验证
Authorization: Basic YOUR_API_TOKEN
GET
/api/v1/interventions列出作业
返回所有清洁作业。
参数
| 参数 | 类型 | 位置 | 必填 | 详情 |
|---|---|---|---|---|
| page | integer | 查询 | 否 | 页码(默认 1)。1 |
| limit | integer | 查询 | 否 | 每页结果数(上限 100)。25 |
| sort | string | 查询 | 否 | 按作业日期排序(asc 或 desc,默认 desc)。desc |
需要 API 身份验证。
请求限制:60 / 分钟1200 / 小时4800 / 天
请求示例 · GET
cURL
curl --request 'GET' 'https://api.stayclean.io/api/v1/interventions?page=1&limit=25&sort=desc' \
--header 'Authorization: Basic YOUR_API_TOKEN' \
--header 'Accept: application/json'JavaScript
const response = await fetch("https://api.stayclean.io/api/v1/interventions?page=1&limit=25&sort=desc", {
"method": "GET",
"headers": {
"Authorization": "Basic YOUR_API_TOKEN",
"Accept": "application/json"
}
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();PHP
<?php
$curl = curl_init('https://api.stayclean.io/api/v1/interventions?page=1&limit=25&sort=desc');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array (
0 => 'Authorization: Basic YOUR_API_TOKEN',
1 => 'Accept: application/json',
),
]);
$response = curl_exec($curl);
if ($response === false) throw new RuntimeException(curl_error($curl));
curl_close($curl);
$data = json_decode($response, true, 512, JSON_THROW_ON_ERROR);PYTHON
import json
from urllib.request import Request, urlopen
headers = {
"Authorization": "Basic YOUR_API_TOKEN",
"Accept": "application/json"
}
data = None
request = Request("https://api.stayclean.io/api/v1/interventions?page=1&limit=25&sort=desc", data=data, headers=headers, method="GET")
with urlopen(request) as response:
result = json.load(response)响应示例
{
"metadata": {
"page": 1,
"limit": 25,
"total_items": 120,
"total_pages": 5,
"sort": "desc"
},
"nodes": [
{
"id": "6dfc7a2e-8f9a-4a0f-9bd0-3f5a7d123456",
"status": "pending",
"scheduled_at": "2024-06-01T08:00:00+10:00",
"property": {
"id": "6dfc7a2e-8f9a-4a0f-9bd0-3f5a7d123456",
"name": "Villa Moana"
},
"is_started": false,
"booking": {
"id": "e9d3a5c2-04bf-4a76-9f79-8db3bfc69f8e",
"guest": "Jane Doe"
},
"invoice": {
"id": "f6a9c1f2-5d7b-4a2d-b1b2-0a7c0d61bcd1"
},
"live": {
"status": "pending",
"is_done": false,
"is_validated": false,
"started_at": null,
"ended_at": null,
"is_paid": false
},
"accounting": {
"amount": null,
"paid_at": null
}
}
]
}GET
/api/v1/interventions/{id}获取作业
返回指定作业的详细信息。
参数
| 参数 | 类型 | 位置 | 必填 | 详情 |
|---|---|---|---|---|
| id | string | 路径 | 是 | 必填路径参数。 |
| purge | string | 查询 | 否 | 提供此参数时,会先清除此标识符的 Redis 缓存,再重新计算响应。1 |
响应缓存 60 秒。
请求限制:60 / 分钟1200 / 小时4800 / 天
请求示例 · GET
cURL
curl --request 'GET' 'https://api.stayclean.io/api/v1/interventions/00000000-0000-4000-8000-000000000000?purge=1' \
--header 'Authorization: Basic YOUR_API_TOKEN' \
--header 'Accept: application/json'JavaScript
const response = await fetch("https://api.stayclean.io/api/v1/interventions/00000000-0000-4000-8000-000000000000?purge=1", {
"method": "GET",
"headers": {
"Authorization": "Basic YOUR_API_TOKEN",
"Accept": "application/json"
}
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();PHP
<?php
$curl = curl_init('https://api.stayclean.io/api/v1/interventions/00000000-0000-4000-8000-000000000000?purge=1');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array (
0 => 'Authorization: Basic YOUR_API_TOKEN',
1 => 'Accept: application/json',
),
]);
$response = curl_exec($curl);
if ($response === false) throw new RuntimeException(curl_error($curl));
curl_close($curl);
$data = json_decode($response, true, 512, JSON_THROW_ON_ERROR);PYTHON
import json
from urllib.request import Request, urlopen
headers = {
"Authorization": "Basic YOUR_API_TOKEN",
"Accept": "application/json"
}
data = None
request = Request("https://api.stayclean.io/api/v1/interventions/00000000-0000-4000-8000-000000000000?purge=1", data=data, headers=headers, method="GET")
with urlopen(request) as response:
result = json.load(response)响应示例
{
"id": "6dfc7a2e-8f9a-4a0f-9bd0-3f5a7d123456",
"status": "validated",
"scheduled_at": "2024-06-01T08:00:00+10:00",
"property": {
"id": "6dfc7a2e-8f9a-4a0f-9bd0-3f5a7d123456",
"name": "Villa Moana",
"location": {
"id": "1c3b6f9d-59c7-4b2b-91f8-9a6f8c01d7c2",
"address": "PK 5, Route de Temae",
"address_extend": null,
"formated_address": "PK 5, Route de Temae, Moorea",
"city": "Moorea",
"latitude": "-17.5000",
"longitude": "-149.8500",
"landmark": null,
"created_at": "2024-01-01 08:00:00",
"updated_at": null,
"zipcode": "98728",
"island": {
"id": "0d2d5e7f-0f8a-4c0f-9fb5-7b31f4a3a2df",
"name": "Moorea"
}
},
"indoor_area": 120,
"outdoor_area": 80,
"bedrooms": 3,
"bathrooms": 2,
"guests_capacity": 6,
"wifi_ssid": "VillaMoana",
"wifi_password": "secret",
"wifi_protocol": 2,
"door_code": "A-1234-B - 5678",
"parking": "Parking privé"
},
"is_started": true,
"booking": {
"id": "e9d3a5c2-04bf-4a76-9f79-8db3bfc69f8e",
"guest": "Jane Doe"
},
"invoice": {
"id": "f6a9c1f2-5d7b-4a2d-b1b2-0a7c0d61bcd1"
},
"live": {
"status": "validated",
"is_done": true,
"is_validated": true,
"started_at": "2024-06-01T08:05:00+10:00",
"ended_at": "2024-06-01T11:45:00+10:00",
"is_paid": true
},
"accounting": {
"amount": 15000,
"paid_at": "2024-06-01T11:45:00+10:00"
}
}