API atsauce
Telpas
Telpa ir noliktavas vienība, ko izīrējat: izmērs, cena un identisku telpu skaits. Telpas atrodas lokācijā.
Piezīme
Telpas sākas kā
DRAFT (melnraksts). API var tikai
lūgt izskatīšanu (
submit); publicē BoxLatvia darbinieki. Skatiet
Publicēšana .
# Telpas objektsNosaukums Tips Apraksts iduuid BoxLatvia identifikators. external_idstring | null Jūsu identifikators. location_iduuid | null Lokācija, kurai telpa pieder. namestring Nosaukums. descriptionstring | null Apraksts. statusstring DRAFT (melnraksts), REVIEW (izskatīšanā), PUBLISHED (publicēta) vai UNPUBLISHED. Tikai lasāms: izmantojiet submit un withdraw .price promotional_pricenumber | null Cena par periodu un akcijas cena, ja tāda ir. price_period_1 _3 _6 _12number | null Fiksētas kopsummas 1, 3, 6 vai 12 periodu nomai, ja tās norādītas. price_unitstring | null Cenas mērvienības kods. size size_length size_width size_height door_width door_heightnumber | null Platība m², iekšējie un durvju izmēri metros. total_units available_unitsinteger | null Identisku telpu skaits un cik no tām ir brīvas rezervēšanai. max_advance_daysinteger | null Cik dienas uz priekšu klients drīkst rezervēt. featuresstring[] Ērtību kodi. missingstring[] Kas vēl vajadzīgs, lai telpu varētu iesniegt izskatīšanai: jebkas no description, price, price_unit, size, features. created_at updated_atdatetime ISO 8601, UTC.
Piemērs
Kopēt {
"id" : "c4883b4a-4e38-47bf-8a69-ef025917e022" ,
"external_id" : "SKU-3M" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"name" : "Box 3 m²" ,
"description" : "Sausa un apsildāma telpa pirmajā stāvā" ,
"status" : "DRAFT" ,
"price" : 29.9 ,
"promotional_price" : null ,
"price_period_1" : null ,
"price_period_3" : 79 ,
"price_period_6" : null ,
"price_period_12" : 290 ,
"price_unit" : "menesi" ,
"size" : 3 ,
"size_length" : 2 ,
"size_width" : 1.5 ,
"size_height" : 2.4 ,
"door_width" : 0.9 ,
"door_height" : 2 ,
"total_units" : 10 ,
"available_units" : 10 ,
"max_advance_days" : 60 ,
"features" : [
"apkure" ,
"viedatslega"
],
"missing" : [],
"created_at" : "2026-11-07T09:30:12.418Z" ,
"updated_at" : "2026-11-07T09:30:12.418Z"
}
# Galapunkti
# Telpu saraksts
GET /v1/boxesboxes:read
Jūsu telpas, vecākās pirmās, pa vienai lapai.
Vaicājuma parametri Nosaukums Tips Apraksts limitinteger Lapas lielums, no 1 līdz 200. Noklusējums ir 50. cursorstring Iepriekšējās lapas next_cursor. Neveidojiet kursorus paši. location_iduuid Tikai šīs lokācijas telpas. external_idstring Tikai telpa ar šo jūsu identifikatoru. statusstring DRAFT, REVIEW, PUBLISHED vai UNPUBLISHED.
Piemērs
Vienas lokācijas telpas, pa vienai lapā
cURL JavaScript Python
Kopēt curl "$API/v1/boxes?location_id=9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3&limit=1" \
-u "$CLIENT_ID:$CLIENT_SECRET"
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes?location_id=9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3&limit=1` , {
headers: { Authorization: auth },
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.get(
f"{API}/v1/boxes?location_id=9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3&limit=1" ,
auth=(CLIENT_ID, CLIENT_SECRET),
)
print (r.status_code, r.json())
200 OK
Kopēt {
"data" : [
{
"id" : "c4883b4a-4e38-47bf-8a69-ef025917e022" ,
"external_id" : "SKU-3M" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"name" : "Box 3 m²" ,
"description" : "Sausa un apsildāma telpa pirmajā stāvā" ,
"status" : "DRAFT" ,
"price" : 29.9 ,
"promotional_price" : null ,
"price_period_1" : null ,
"price_period_3" : 79 ,
"price_period_6" : null ,
"price_period_12" : 290 ,
"price_unit" : "menesi" ,
"size" : 3 ,
"size_length" : 2 ,
"size_width" : 1.5 ,
"size_height" : 2.4 ,
"door_width" : 0.9 ,
"door_height" : 2 ,
"total_units" : 10 ,
"available_units" : 10 ,
"max_advance_days" : 60 ,
"features" : [
"apkure" ,
"viedatslega"
],
"missing" : [],
"created_at" : "2026-11-07T09:30:12.418Z" ,
"updated_at" : "2026-11-07T09:30:12.418Z"
}
],
"next_cursor" : "WyIyMDI2LTExLTA2IDEwOjAwOjAwLjAwMDAxMyswMCIsIjdiOGEzODI3LTI2M2UtNGMyMC1iNDQ3LWFkMjE5YmU1NWE0YyJd"
}
Kļūdas Statuss Kad 422 location_id vai status nav derīgs.
# Izveidot telpu
POST /v1/boxesboxes:write
Izveido telpu kā DRAFT (melnrakstu). Vajadzīgs name un lokācija; pārējo varat pievienot vēlāk.
Vaicājuma parametri Nosaukums Tips Apraksts validate_onlyboolean true izpilda visas pārbaudes un parāda, kas notiktu, bet neko nesaglabā. Skatiet pārbaudi bez saglabāšanas .
Galvenes Nosaukums Tips Apraksts Idempotency-Keystring Neobligāta. No 1 līdz 200 drukājamām rakstzīmēm. Atkārtots pieprasījums ar to pašu atslēgu atgriež sākotnējo rezultātu, nevis izveido dublikātu. Skatiet drošu atkārtošanu .
Pieprasījuma saturs Nosaukums Tips Apraksts name obligāts string Līdz 255 rakstzīmēm. Obligāts, veidojot telpu. location_iduuid Lokācija, kurā telpa atrodas. Veidojot telpu, nepieciešams viens no location_id vai location_external_id; vēlāk tas pārvieto telpu uz citu jūsu lokāciju. location_external_idstring Tas pats, bet ar jūsu pašu lokācijas identifikatoru. Nesūtiet kopā ar location_id. descriptionstring | null Līdz 255 rakstzīmēm. external_idstring Jūsu pašu identifikators, līdz 100 rakstzīmēm, unikāls starp jūsu telpām. Iestatāms vienu reizi. pricenumber | null Cena par periodu, lielāka par 0, ne vairāk kā 2 decimālzīmes (mēs nekad nenoapaļojam jūsu vietā). promotional_pricenumber | null Akcijas cena. Tai jābūt zemākai par price. price_period_1 _3 _6 _12number | null Neobligāta fiksēta kopsumma par 1, 3, 6 vai 12 periodu nomu. Ja tā ir norādīta, klients par attiecīgo periodu maksā tieši šo summu. price_unitstring | null Cenas mērvienības kods (mēnesī, nedēļā), skatiet Atsauces datus . sizenumber | null Platība m², lielāka par 0, noapaļota līdz 2 decimālzīmēm. size_length size_width size_heightnumber | null Iekšējie izmēri metros. door_width door_heightnumber | null Durvju izmēri metros. total_unitsinteger | null Cik identisku telpu jums ir, 0 vai vairāk. available_unitsinteger | null Cik telpu šobrīd ir brīvas. Nevar pārsniegt total_units. max_advance_daysinteger | null Cik dienas uz priekšu klients drīkst rezervēt, no 1 līdz 730. featuresstring[] Ērtību kodi, skatiet Atsauces datus . Aizvieto visu kopu.
Piemēri
Pilnībā aizpildīta telpa
cURL JavaScript Python
Kopēt curl -X POST "$API/v1/boxes" \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"name": "Box 3 m²",
"description": "Sausa un apsildāma telpa pirmajā stāvā",
"location_external_id": "WH-IMANTA",
"external_id": "SKU-3M",
"price": 29.9,
"price_unit": "menesi",
"price_period_3": 79,
"price_period_12": 290,
"size": 3,
"size_length": 2,
"size_width": 1.5,
"size_height": 2.4,
"door_width": 0.9,
"door_height": 2,
"total_units": 10,
"available_units": 10,
"max_advance_days": 60,
"features": [
"apkure",
"viedatslega"
]
}'
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes` , {
method: "POST" ,
headers: { Authorization: auth, "Content-Type" : "application/json" },
body: JSON.stringify({
"name" : "Box 3 m²" ,
"description" : "Sausa un apsildāma telpa pirmajā stāvā" ,
"location_external_id" : "WH-IMANTA" ,
"external_id" : "SKU-3M" ,
"price" : 29.9,
"price_unit" : "menesi" ,
"price_period_3" : 79,
"price_period_12" : 290,
"size" : 3,
"size_length" : 2,
"size_width" : 1.5,
"size_height" : 2.4,
"door_width" : 0.9,
"door_height" : 2,
"total_units" : 10,
"available_units" : 10,
"max_advance_days" : 60,
"features" : [
"apkure" ,
"viedatslega"
]
}),
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.post(
f"{API}/v1/boxes" ,
auth=(CLIENT_ID, CLIENT_SECRET),
json={
"name" : "Box 3 m²" ,
"description" : "Sausa un apsildāma telpa pirmajā stāvā" ,
"location_external_id" : "WH-IMANTA" ,
"external_id" : "SKU-3M" ,
"price" : 29.9,
"price_unit" : "menesi" ,
"price_period_3" : 79,
"price_period_12" : 290,
"size" : 3,
"size_length" : 2,
"size_width" : 1.5,
"size_height" : 2.4,
"door_width" : 0.9,
"door_height" : 2,
"total_units" : 10,
"available_units" : 10,
"max_advance_days" : 60,
"features" : [
"apkure" ,
"viedatslega" ,
],
},
)
print (r.status_code, r.json())
201 Created ETag: W/"2daf00d492dd4f4cd82f2113"Location: https://api.boxlatvia.lv/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022
Kopēt {
"id" : "c4883b4a-4e38-47bf-8a69-ef025917e022" ,
"external_id" : "SKU-3M" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"name" : "Box 3 m²" ,
"description" : "Sausa un apsildāma telpa pirmajā stāvā" ,
"status" : "DRAFT" ,
"price" : 29.9 ,
"promotional_price" : null ,
"price_period_1" : null ,
"price_period_3" : 79 ,
"price_period_6" : null ,
"price_period_12" : 290 ,
"price_unit" : "menesi" ,
"size" : 3 ,
"size_length" : 2 ,
"size_width" : 1.5 ,
"size_height" : 2.4 ,
"door_width" : 0.9 ,
"door_height" : 2 ,
"total_units" : 10 ,
"available_units" : 10 ,
"max_advance_days" : 60 ,
"features" : [
"apkure" ,
"viedatslega"
],
"missing" : [],
"created_at" : "2026-11-07T09:30:12.418Z" ,
"updated_at" : "2026-11-07T09:30:12.418Z"
}
Tikai nosaukums un lokācija
missing parāda, kas telpai vēl vajadzīgs, lai to varētu iesniegt.
cURL JavaScript Python
Kopēt curl -X POST "$API/v1/boxes" \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"name": "Box 5 m²",
"location_id": "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3"
}'
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes` , {
method: "POST" ,
headers: { Authorization: auth, "Content-Type" : "application/json" },
body: JSON.stringify({
"name" : "Box 5 m²" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3"
}),
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.post(
f"{API}/v1/boxes" ,
auth=(CLIENT_ID, CLIENT_SECRET),
json={
"name" : "Box 5 m²" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
},
)
print (r.status_code, r.json())
201 Created ETag: W/"9c02eeec9c920097d539244a"Location: https://api.boxlatvia.lv/v1/boxes/9d7f53d3-a9cd-4ee1-b9cf-470a572f8b4e
Kopēt {
"id" : "9d7f53d3-a9cd-4ee1-b9cf-470a572f8b4e" ,
"external_id" : null ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"name" : "Box 5 m²" ,
"description" : null ,
"status" : "DRAFT" ,
"price" : null ,
"promotional_price" : null ,
"price_period_1" : null ,
"price_period_3" : null ,
"price_period_6" : null ,
"price_period_12" : null ,
"price_unit" : null ,
"size" : null ,
"size_length" : null ,
"size_width" : null ,
"size_height" : null ,
"door_width" : null ,
"door_height" : null ,
"total_units" : null ,
"available_units" : null ,
"max_advance_days" : null ,
"features" : [],
"missing" : [
"description" ,
"price" ,
"price_unit" ,
"size" ,
"features"
],
"created_at" : "2026-11-07T09:30:12.418Z" ,
"updated_at" : "2026-11-07T09:30:12.418Z"
}
Nederīgas vērtības
cURL JavaScript Python
Kopēt curl -X POST "$API/v1/boxes" \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"name": "Box 2 m²",
"location_id": "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3",
"price": 10.005,
"total_units": 1.5
}'
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes` , {
method: "POST" ,
headers: { Authorization: auth, "Content-Type" : "application/json" },
body: JSON.stringify({
"name" : "Box 2 m²" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"price" : 10.005,
"total_units" : 1.5
}),
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.post(
f"{API}/v1/boxes" ,
auth=(CLIENT_ID, CLIENT_SECRET),
json={
"name" : "Box 2 m²" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"price" : 10.005,
"total_units" : 1.5,
},
)
print (r.status_code, r.json())
422 Unprocessable Content
Kopēt {
"type" : "https://api.boxlatvia.lv/problems/validation-failed" ,
"title" : "Validation failed" ,
"status" : 422 ,
"detail" : "One or more fields are invalid." ,
"request_id" : "88e536cb-521e-4728-802c-8a7b667fa4af" ,
"errors" : [
{
"field" : "price" ,
"message" : "must have at most 2 decimals"
},
{
"field" : "total_units" ,
"message" : "Expected integer, received float"
}
]
}
Noteikumi starp laukiem un nezināmi kodi
Šīs pārbaudes vērtē galīgās vērtības kopā: akcijas cenu, pieejamo telpu skaitu, kodus.
cURL JavaScript Python
Kopēt curl -X POST "$API/v1/boxes" \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"name": "Box 2 m²",
"location_id": "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3",
"price": 10,
"promotional_price": 12,
"total_units": 5,
"available_units": 8,
"price_unit": "gadsimts",
"features": [
"sauna"
]
}'
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes` , {
method: "POST" ,
headers: { Authorization: auth, "Content-Type" : "application/json" },
body: JSON.stringify({
"name" : "Box 2 m²" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"price" : 10,
"promotional_price" : 12,
"total_units" : 5,
"available_units" : 8,
"price_unit" : "gadsimts" ,
"features" : [
"sauna"
]
}),
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.post(
f"{API}/v1/boxes" ,
auth=(CLIENT_ID, CLIENT_SECRET),
json={
"name" : "Box 2 m²" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"price" : 10,
"promotional_price" : 12,
"total_units" : 5,
"available_units" : 8,
"price_unit" : "gadsimts" ,
"features" : [
"sauna" ,
],
},
)
print (r.status_code, r.json())
422 Unprocessable Content
Kopēt {
"type" : "https://api.boxlatvia.lv/problems/validation-failed" ,
"title" : "Validation failed" ,
"status" : 422 ,
"detail" : "One or more fields are invalid." ,
"request_id" : "ce26822d-d546-4254-a374-08549ad6e04b" ,
"errors" : [
{
"field" : "price_unit" ,
"message" : "is not a known price unit code"
},
{
"field" : "features" ,
"message" : "unknown or inactive feature code(s): sauna"
},
{
"field" : "promotional_price" ,
"message" : "must be lower than price"
},
{
"field" : "available_units" ,
"message" : "cannot be greater than total_units"
}
]
}
Statusu nevar iestatīt
cURL JavaScript Python
Kopēt curl -X POST "$API/v1/boxes" \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"name": "Box 2 m²",
"location_id": "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3",
"status": "PUBLISHED"
}'
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes` , {
method: "POST" ,
headers: { Authorization: auth, "Content-Type" : "application/json" },
body: JSON.stringify({
"name" : "Box 2 m²" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"status" : "PUBLISHED"
}),
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.post(
f"{API}/v1/boxes" ,
auth=(CLIENT_ID, CLIENT_SECRET),
json={
"name" : "Box 2 m²" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"status" : "PUBLISHED" ,
},
)
print (r.status_code, r.json())
422 Unprocessable Content
Kopēt {
"type" : "https://api.boxlatvia.lv/problems/validation-failed" ,
"title" : "Validation failed" ,
"status" : 422 ,
"detail" : "One or more fields are invalid." ,
"request_id" : "921b4ebd-4e17-4232-9475-c3e76ac97f43" ,
"errors" : [
{
"field" : "status" ,
"message" : "cannot be set directly; use POST /v1/boxes/{id}/submit (or /withdraw)"
}
]
}
Kļūdas Statuss Kad 409 external_id jau lieto cita jūsu telpa.422 Kāda vērtība ir nederīga, kods nav zināms, vai lokācija nav jūsu.
# Iegūt telpu
GET /v1/boxes/{id}boxes:read
Viena telpa ar ETag, kas vajadzīgs, lai to mainītu vai dzēstu.
Ceļa parametri Nosaukums Tips Apraksts iduuid Telpas BoxLatvia identifikators.
Piemērs
Iegūšana
cURL JavaScript Python
Kopēt curl "$API/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022" \
-u "$CLIENT_ID:$CLIENT_SECRET"
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022` , {
headers: { Authorization: auth },
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.get(
f"{API}/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022" ,
auth=(CLIENT_ID, CLIENT_SECRET),
)
print (r.status_code, r.json())
200 OK ETag: W/"2daf00d492dd4f4cd82f2113"
Kopēt {
"id" : "c4883b4a-4e38-47bf-8a69-ef025917e022" ,
"external_id" : "SKU-3M" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"name" : "Box 3 m²" ,
"description" : "Sausa un apsildāma telpa pirmajā stāvā" ,
"status" : "DRAFT" ,
"price" : 29.9 ,
"promotional_price" : null ,
"price_period_1" : null ,
"price_period_3" : 79 ,
"price_period_6" : null ,
"price_period_12" : 290 ,
"price_unit" : "menesi" ,
"size" : 3 ,
"size_length" : 2 ,
"size_width" : 1.5 ,
"size_height" : 2.4 ,
"door_width" : 0.9 ,
"door_height" : 2 ,
"total_units" : 10 ,
"available_units" : 10 ,
"max_advance_days" : 60 ,
"features" : [
"apkure" ,
"viedatslega"
],
"missing" : [],
"created_at" : "2026-11-07T09:30:12.418Z" ,
"updated_at" : "2026-11-07T09:30:12.418Z"
}
Kļūdas Statuss Kad 404 Jums nav šādas telpas.
# Atjaunināt telpu
PATCH /v1/boxes/{id}boxes:write
Maina tikai tos laukus, ko nosūtāt, tostarp pieejamo telpu skaitu (available_units) un cenas. Izmaiņas publicētā telpā mājaslapā redzamas uzreiz.
Ceļa parametri Nosaukums Tips Apraksts iduuid Telpas BoxLatvia identifikators.
Vaicājuma parametri Nosaukums Tips Apraksts validate_onlyboolean true izpilda visas pārbaudes un parāda, kas notiktu, bet neko nesaglabā. Skatiet pārbaudi bez saglabāšanas .
Galvenes Nosaukums Tips Apraksts If-Match obligāts string ETag no iepriekšēja GET, tieši tādā veidā, kā saņemts. 428, ja trūkst, 412, ja objekts pa to laiku mainījies. Skatiet nosacītus atjauninājumus .
Pieprasījuma saturs (jebkurš no laukiem) Nosaukums Tips Apraksts name obligāts string Līdz 255 rakstzīmēm. Obligāts, veidojot telpu. location_iduuid Lokācija, kurā telpa atrodas. Veidojot telpu, nepieciešams viens no location_id vai location_external_id; vēlāk tas pārvieto telpu uz citu jūsu lokāciju. location_external_idstring Tas pats, bet ar jūsu pašu lokācijas identifikatoru. Nesūtiet kopā ar location_id. descriptionstring | null Līdz 255 rakstzīmēm. external_idstring Jūsu pašu identifikators, līdz 100 rakstzīmēm, unikāls starp jūsu telpām. Iestatāms vienu reizi. pricenumber | null Cena par periodu, lielāka par 0, ne vairāk kā 2 decimālzīmes (mēs nekad nenoapaļojam jūsu vietā). promotional_pricenumber | null Akcijas cena. Tai jābūt zemākai par price. price_period_1 _3 _6 _12number | null Neobligāta fiksēta kopsumma par 1, 3, 6 vai 12 periodu nomu. Ja tā ir norādīta, klients par attiecīgo periodu maksā tieši šo summu. price_unitstring | null Cenas mērvienības kods (mēnesī, nedēļā), skatiet Atsauces datus . sizenumber | null Platība m², lielāka par 0, noapaļota līdz 2 decimālzīmēm. size_length size_width size_heightnumber | null Iekšējie izmēri metros. door_width door_heightnumber | null Durvju izmēri metros. total_unitsinteger | null Cik identisku telpu jums ir, 0 vai vairāk. available_unitsinteger | null Cik telpu šobrīd ir brīvas. Nevar pārsniegt total_units. max_advance_daysinteger | null Cik dienas uz priekšu klients drīkst rezervēt, no 1 līdz 730. featuresstring[] Ērtību kodi, skatiet Atsauces datus . Aizvieto visu kopu.
Piemērs
Atjaunināt pieejamību un cenu
cURL JavaScript Python
Kopēt curl -X PATCH "$API/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022" \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-H "Content-Type: application/json" \
-H "If-Match: W/\"2daf00d492dd4f4cd82f2113\"" \
-d '{
"available_units": 7,
"price": 31.5
}'
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022` , {
method: "PATCH" ,
headers: { Authorization: auth, "Content-Type" : "application/json" , "If-Match" : "W/\"2daf00d492dd4f4cd82f2113\"" },
body: JSON.stringify({
"available_units" : 7,
"price" : 31.5
}),
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.patch(
f"{API}/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022" ,
auth=(CLIENT_ID, CLIENT_SECRET),
headers={"If-Match" : "W/\"2daf00d492dd4f4cd82f2113\"" },
json={
"available_units" : 7,
"price" : 31.5,
},
)
print (r.status_code, r.json())
200 OK ETag: W/"0a057478c432265c169ba82b"
Kopēt {
"id" : "c4883b4a-4e38-47bf-8a69-ef025917e022" ,
"external_id" : "SKU-3M" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"name" : "Box 3 m²" ,
"description" : "Sausa un apsildāma telpa pirmajā stāvā" ,
"status" : "DRAFT" ,
"price" : 31.5 ,
"promotional_price" : null ,
"price_period_1" : null ,
"price_period_3" : 79 ,
"price_period_6" : null ,
"price_period_12" : 290 ,
"price_unit" : "menesi" ,
"size" : 3 ,
"size_length" : 2 ,
"size_width" : 1.5 ,
"size_height" : 2.4 ,
"door_width" : 0.9 ,
"door_height" : 2 ,
"total_units" : 10 ,
"available_units" : 7 ,
"max_advance_days" : 60 ,
"features" : [
"apkure" ,
"viedatslega"
],
"missing" : [],
"created_at" : "2026-11-07T09:30:12.418Z" ,
"updated_at" : "2026-11-07T14:05:41.092Z"
}
Kļūdas Statuss Kad 404 Jums nav šādas telpas. 412 Telpa mainīta pēc tam, kad to nolasījāt. 422 Kāda vērtība ir nederīga vai pārkāpj noteikumu starp laukiem. 428 Trūkst If-Match.
# Izveidot vai atjaunināt pēc jūsu identifikatora
PUT /v1/boxes/by-external-id/{external_id}boxes:write
Izveido telpu, ja jūsu identifikators ir jauns (tad obligāti name un lokācija), citādi atjaunina nosūtītos laukus. Bez If-Match: ideāli piemērots pieejamības un cenu datu plūsmām.
Ceļa parametri Nosaukums Tips Apraksts external_idstring Jūsu identifikators telpai.
Vaicājuma parametri Nosaukums Tips Apraksts validate_onlyboolean true izpilda visas pārbaudes un parāda, kas notiktu, bet neko nesaglabā. Skatiet pārbaudi bez saglabāšanas .
Pieprasījuma saturs Nosaukums Tips Apraksts name obligāts string Līdz 255 rakstzīmēm. Obligāts, veidojot telpu. location_iduuid Lokācija, kurā telpa atrodas. Veidojot telpu, nepieciešams viens no location_id vai location_external_id; vēlāk tas pārvieto telpu uz citu jūsu lokāciju. location_external_idstring Tas pats, bet ar jūsu pašu lokācijas identifikatoru. Nesūtiet kopā ar location_id. descriptionstring | null Līdz 255 rakstzīmēm. external_idstring Jūsu pašu identifikators, līdz 100 rakstzīmēm, unikāls starp jūsu telpām. Iestatāms vienu reizi. pricenumber | null Cena par periodu, lielāka par 0, ne vairāk kā 2 decimālzīmes (mēs nekad nenoapaļojam jūsu vietā). promotional_pricenumber | null Akcijas cena. Tai jābūt zemākai par price. price_period_1 _3 _6 _12number | null Neobligāta fiksēta kopsumma par 1, 3, 6 vai 12 periodu nomu. Ja tā ir norādīta, klients par attiecīgo periodu maksā tieši šo summu. price_unitstring | null Cenas mērvienības kods (mēnesī, nedēļā), skatiet Atsauces datus . sizenumber | null Platība m², lielāka par 0, noapaļota līdz 2 decimālzīmēm. size_length size_width size_heightnumber | null Iekšējie izmēri metros. door_width door_heightnumber | null Durvju izmēri metros. total_unitsinteger | null Cik identisku telpu jums ir, 0 vai vairāk. available_unitsinteger | null Cik telpu šobrīd ir brīvas. Nevar pārsniegt total_units. max_advance_daysinteger | null Cik dienas uz priekšu klients drīkst rezervēt, no 1 līdz 730. featuresstring[] Ērtību kodi, skatiet Atsauces datus . Aizvieto visu kopu.
Piemērs
Pieejamības atjauninājums no jūsu sistēmas
Sūtiet pilnu pašreizējo skaitli katru reizi, nekad nevis „mīnus viens”: klienti var rezervēt, kamēr darbojas jūsu datu plūsma.
cURL JavaScript Python
Kopēt curl -X PUT "$API/v1/boxes/by-external-id/SKU-3M" \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"available_units": 6
}'
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes/by-external-id/SKU-3M` , {
method: "PUT" ,
headers: { Authorization: auth, "Content-Type" : "application/json" },
body: JSON.stringify({
"available_units" : 6
}),
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.put(
f"{API}/v1/boxes/by-external-id/SKU-3M" ,
auth=(CLIENT_ID, CLIENT_SECRET),
json={
"available_units" : 6,
},
)
print (r.status_code, r.json())
200 OK ETag: W/"52a099edb61a3e0853024325"
Kopēt {
"id" : "c4883b4a-4e38-47bf-8a69-ef025917e022" ,
"external_id" : "SKU-3M" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"name" : "Box 3 m²" ,
"description" : "Sausa un apsildāma telpa pirmajā stāvā" ,
"status" : "DRAFT" ,
"price" : 31.5 ,
"promotional_price" : null ,
"price_period_1" : null ,
"price_period_3" : 79 ,
"price_period_6" : null ,
"price_period_12" : 290 ,
"price_unit" : "menesi" ,
"size" : 3 ,
"size_length" : 2 ,
"size_width" : 1.5 ,
"size_height" : 2.4 ,
"door_width" : 0.9 ,
"door_height" : 2 ,
"total_units" : 10 ,
"available_units" : 6 ,
"max_advance_days" : 60 ,
"features" : [
"apkure" ,
"viedatslega"
],
"missing" : [],
"created_at" : "2026-11-07T09:30:12.418Z" ,
"updated_at" : "2026-11-07T14:05:41.092Z"
}
Kļūdas Statuss Kad 422 Kāda vērtība ir nederīga, vai jaunai telpai trūkst nosaukuma vai lokācijas.
# Iesniegt izskatīšanai
POST /v1/boxes/{id}/submitboxes:write
Lūdz BoxLatvia izskatīt un publicēt telpu (DRAFT → REVIEW). API nekad nepublicē: to dara BoxLatvia darbinieki.
Ja telpa jau ir izskatīšanā, nekas nemainās (200). If-Match šeit ir neobligāts.
Ceļa parametri Nosaukums Tips Apraksts iduuid Telpas BoxLatvia identifikators.
Vaicājuma parametri Nosaukums Tips Apraksts validate_onlyboolean true izpilda visas pārbaudes un parāda, kas notiktu, bet neko nesaglabā. Skatiet pārbaudi bez saglabāšanas .
Piemēri
Vēl nav gatava
cURL JavaScript Python
Kopēt curl -X POST "$API/v1/boxes/9d7f53d3-a9cd-4ee1-b9cf-470a572f8b4e/submit" \
-u "$CLIENT_ID:$CLIENT_SECRET"
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes/9d7f53d3-a9cd-4ee1-b9cf-470a572f8b4e/submit` , {
method: "POST" ,
headers: { Authorization: auth },
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.post(
f"{API}/v1/boxes/9d7f53d3-a9cd-4ee1-b9cf-470a572f8b4e/submit" ,
auth=(CLIENT_ID, CLIENT_SECRET),
)
print (r.status_code, r.json())
422 Unprocessable Content
Kopēt {
"type" : "https://api.boxlatvia.lv/problems/box-incomplete" ,
"title" : "Box is incomplete" ,
"status" : 422 ,
"detail" : "Fill in description, price, price_unit, size, features before submitting this box for review." ,
"request_id" : "f48c9ebd-fa4f-4b14-be21-b98154de2c1e" ,
"missing" : [
"description" ,
"price" ,
"price_unit" ,
"size" ,
"features"
]
}
Iesniegta
cURL JavaScript Python
Kopēt curl -X POST "$API/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022/submit" \
-u "$CLIENT_ID:$CLIENT_SECRET"
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022/submit` , {
method: "POST" ,
headers: { Authorization: auth },
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.post(
f"{API}/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022/submit" ,
auth=(CLIENT_ID, CLIENT_SECRET),
)
print (r.status_code, r.json())
200 OK ETag: W/"052468fbc2a710d35f026e30"
Kopēt {
"id" : "c4883b4a-4e38-47bf-8a69-ef025917e022" ,
"external_id" : "SKU-3M" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"name" : "Box 3 m²" ,
"description" : "Sausa un apsildāma telpa pirmajā stāvā" ,
"status" : "REVIEW" ,
"price" : 31.5 ,
"promotional_price" : null ,
"price_period_1" : null ,
"price_period_3" : 79 ,
"price_period_6" : null ,
"price_period_12" : 290 ,
"price_unit" : "menesi" ,
"size" : 3 ,
"size_length" : 2 ,
"size_width" : 1.5 ,
"size_height" : 2.4 ,
"door_width" : 0.9 ,
"door_height" : 2 ,
"total_units" : 10 ,
"available_units" : 6 ,
"max_advance_days" : 60 ,
"features" : [
"apkure" ,
"viedatslega"
],
"missing" : [],
"created_at" : "2026-11-07T09:30:12.418Z" ,
"updated_at" : "2026-11-07T14:05:41.092Z"
}
Kļūdas Statuss Kad 404 Jums nav šādas telpas. 409 Telpa jau ir publicēta: vispirms atsauciet to. 422 Telpa nav pilnībā aizpildīta: missing parāda, kas vajadzīgs.
# Atsaukt
POST /v1/boxes/{id}/withdrawboxes:write
Izņem telpu no izskatīšanas vai no mājaslapas un atgriež statusā DRAFT. Melnraksts paliek melnraksts (200).
Ceļa parametri Nosaukums Tips Apraksts iduuid Telpas BoxLatvia identifikators.
Vaicājuma parametri Nosaukums Tips Apraksts validate_onlyboolean true izpilda visas pārbaudes un parāda, kas notiktu, bet neko nesaglabā. Skatiet pārbaudi bez saglabāšanas .
Piemērs
Atpakaļ uz melnrakstu
cURL JavaScript Python
Kopēt curl -X POST "$API/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022/withdraw" \
-u "$CLIENT_ID:$CLIENT_SECRET"
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022/withdraw` , {
method: "POST" ,
headers: { Authorization: auth },
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.post(
f"{API}/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022/withdraw" ,
auth=(CLIENT_ID, CLIENT_SECRET),
)
print (r.status_code, r.json())
200 OK ETag: W/"f1fa55a0c2e2fd1d06f83296"
Kopēt {
"id" : "c4883b4a-4e38-47bf-8a69-ef025917e022" ,
"external_id" : "SKU-3M" ,
"location_id" : "9d80d5f4-d17a-4f3e-99f6-4ab43b132bc3" ,
"name" : "Box 3 m²" ,
"description" : "Sausa un apsildāma telpa pirmajā stāvā" ,
"status" : "DRAFT" ,
"price" : 31.5 ,
"promotional_price" : null ,
"price_period_1" : null ,
"price_period_3" : 79 ,
"price_period_6" : null ,
"price_period_12" : 290 ,
"price_unit" : "menesi" ,
"size" : 3 ,
"size_length" : 2 ,
"size_width" : 1.5 ,
"size_height" : 2.4 ,
"door_width" : 0.9 ,
"door_height" : 2 ,
"total_units" : 10 ,
"available_units" : 6 ,
"max_advance_days" : 60 ,
"features" : [
"apkure" ,
"viedatslega"
],
"missing" : [],
"created_at" : "2026-11-07T09:30:12.418Z" ,
"updated_at" : "2026-11-07T14:05:41.092Z"
}
Kļūdas Statuss Kad 404 Jums nav šādas telpas.
# Dzēst telpu
DELETE /v1/boxes/{id}boxes:write
Dzēš telpu un tās attēlus. Telpu, kurai ir pasūtījumi, dzēst nevar: iestatiet available_units uz 0, lai apturētu jaunas rezervācijas.
Ceļa parametri Nosaukums Tips Apraksts iduuid Telpas BoxLatvia identifikators.
Vaicājuma parametri Nosaukums Tips Apraksts validate_onlyboolean true izpilda visas pārbaudes un parāda, kas notiktu, bet neko nesaglabā. Skatiet pārbaudi bez saglabāšanas .
Galvenes Nosaukums Tips Apraksts If-Match obligāts string ETag no iepriekšēja GET, tieši tādā veidā, kā saņemts. 428, ja trūkst, 412, ja objekts pa to laiku mainījies. Skatiet nosacītus atjauninājumus .
Piemēri
Izdzēsta
cURL JavaScript Python
Kopēt curl -X DELETE "$API/v1/boxes/9d7f53d3-a9cd-4ee1-b9cf-470a572f8b4e" \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-H "If-Match: W/\"9c02eeec9c920097d539244a\""
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes/9d7f53d3-a9cd-4ee1-b9cf-470a572f8b4e` , {
method: "DELETE" ,
headers: { Authorization: auth, "If-Match" : "W/\"9c02eeec9c920097d539244a\"" },
});
console.log(res.status); // 204, bez satura
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.delete(
f"{API}/v1/boxes/9d7f53d3-a9cd-4ee1-b9cf-470a572f8b4e" ,
auth=(CLIENT_ID, CLIENT_SECRET),
headers={"If-Match" : "W/\"9c02eeec9c920097d539244a\"" },
)
print (r.status_code) # 204, bez satura
204 No Content
Atbildei nav satura
Telpai ir pasūtījumi
cURL JavaScript Python
Kopēt curl -X DELETE "$API/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022" \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-H "If-Match: W/\"f1fa55a0c2e2fd1d06f83296\""
Kopēt const API = "https://api.boxlatvia.lv" ;
const auth = "Basic " + btoa(`${CLIENT_ID}:${CLIENT_SECRET}` );
const res = await fetch(`${API}/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022` , {
method: "DELETE" ,
headers: { Authorization: auth, "If-Match" : "W/\"f1fa55a0c2e2fd1d06f83296\"" },
});
console.log(res.status, await res.json());
Kopēt import requests
API = "https://api.boxlatvia.lv"
r = requests.delete(
f"{API}/v1/boxes/c4883b4a-4e38-47bf-8a69-ef025917e022" ,
auth=(CLIENT_ID, CLIENT_SECRET),
headers={"If-Match" : "W/\"f1fa55a0c2e2fd1d06f83296\"" },
)
print (r.status_code, r.json())
409 Conflict
Kopēt {
"type" : "https://api.boxlatvia.lv/problems/box-has-orders" ,
"title" : "Conflict" ,
"status" : 409 ,
"detail" : "This box has orders and cannot be deleted. Set available_units to 0 to stop new bookings." ,
"request_id" : "d1f30eca-8286-4c7d-8244-c8f0cf9a56c3"
}
Kļūdas Statuss Kad 404 Jums nav šādas telpas. 409 Telpai ir pasūtījumi. 412 Telpa mainīta pēc tam, kad to nolasījāt. 428 Trūkst If-Match.