Create a location
Creates a physical location that groups rooms under one site in the dashboard. Rooms can later be assigned to this location. Both name and address are required. Scoped to your integration’s institution via Basic Auth credentials.
POST
/locationsHeader parameters
Idempotency-KeystringrequiredRequest body
requiredapplication/jsonnamestringrequiredDisplay name for the location — the label shown in the dashboard when managing rooms and assigning them to a site (e.g. `Main Campus`, `North Building`, `Sleeping Pod Area`).
max length 100
addressstringrequiredPhysical street or postal address of the location. Used in the dashboard for map display and geocoding — provide a real-world address, not the location name repeated (e.g. `123 University Ave, 10115 Berlin`).
max length 500
Responses
201Location created
dataLocationrequiredPhysical site that groups rooms under one place in the dashboard (e.g. a campus, building, or wing). Includes `_count.rooms` with the total room count. Use GET /rooms?search= or assign rooms via room `locationId` to discover linked rooms.
Show propertiesHide properties
idstringrequirednamestringrequiredDisplay name for the location — the label shown in the dashboard when managing rooms and assigning them to a site (e.g. `Main Campus`, `North Building`, `Sleeping Pod Area`).
max length 100
addressstringrequiredPhysical street or postal address of the location. Used in the dashboard for map display and geocoding — provide a real-world address, not the location name repeated (e.g. `123 University Ave, 10115 Berlin`).
max length 500
institutionIdstringrequired_countobjectrequiredRelation counts for this location.
Show propertiesHide properties
roomsintegerrequiredmetaResponseMetarequiredShow propertiesHide properties
requestIdstringrequiredtimestampstring<date-time>requiredversionstringrequiredAllowed:
v4400Bad Request
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring401Unauthorized
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring409Conflict
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring422Unprocessable Entity — validation or business rule error
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring429Too Many Requests
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring500Internal Server Error
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestringRequest
curl -X POST "https://fuxam.app/api/v4/locations" \
-H "Idempotency-Key: string" \
-H "Content-Type: application/json" \
-d '{
"name": "Main Campus",
"address": "123 University Ave, Berlin"
}'const response = await fetch("https://fuxam.app/api/v4/locations", {
method: "POST",
headers: {
"Idempotency-Key": "string",
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "Main Campus",
"address": "123 University Ave, Berlin"
})
});import requests
response = requests.post(
"https://fuxam.app/api/v4/locations",
headers={
"Idempotency-Key": "string",
"Content-Type": "application/json"
},
json={
"name": "Main Campus",
"address": "123 University Ave, Berlin"
},
)Response
{
"data": {
"id": "loc_001",
"name": "Main Campus",
"address": "123 University Ave",
"institutionId": "inst_123",
"_count": {
"rooms": 5
}
},
"meta": {
"requestId": "req_1234567890_abc",
"timestamp": "2026-06-02T07:00:00.000Z",
"version": "v4"
}
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}