Endpoints
Read the canonical Locker account, access and storage availability.
Reads (GET and HEAD): 120 requests per grant per fixed UTC minute. Buckets are separate for reads and commands. Request bodies are limited to 65,536 bytes. Retry a 429 only after Retry-After.
Request
Authentication is required by the published contract.
curl 'https://ursy.locker/api/v1/account' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_SERVICE_TOKEN'- Scopes
- locker.account.read
- Execution
- At the owning service
- Risk classification
- not declared
Parameters
This operation declares no parameters.
This operation is documented here. Use the owning service with the appropriate credentials and permissions to execute it.
Response schemas and request body
{
"requestBody": null,
"responses": {
"200": {
"description": "Successful query or command receipt",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "object",
"properties": {
"subject": {
"type": "string"
},
"name": {
"type": "string"
},
"account_id": {
"type": "string"
},
"stage": {
"type": "string"
},
"sales": {
"type": "object"
},
"access": {
"type": "object",
"properties": {
"resource": {
"const": "https://ursy.locker/api"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"room_selection": {
"enum": [
"owned_rooms",
"restricted_owned_rooms"
]
},
"room_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"cross_account_sharing": {
"const": false
}
},
"required": [
"resource",
"scopes",
"room_selection",
"room_ids",
"cross_account_sharing"
],
"additionalProperties": true
},
"storage": {
"type": "object",
"properties": {
"allocation": {
"const": "per_room"
},
"pooled_account_storage": {
"const": false
},
"quota_bytes": {
"type": "null"
},
"used_bytes": {
"type": "null"
},
"availability": {
"enum": [
"runtime_configured",
"awaiting_server_capacity"
]
},
"reason": {
"type": "string"
}
},
"required": [
"allocation",
"pooled_account_storage",
"quota_bytes",
"used_bytes",
"availability",
"reason"
],
"additionalProperties": true
},
"links": {
"type": "object"
}
},
"required": [
"subject",
"account_id",
"stage",
"sales",
"access",
"storage",
"links"
],
"additionalProperties": true
},
"meta": {
"type": "object",
"required": [
"request_id"
],
"properties": {
"request_id": {
"type": "string"
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"additionalProperties": false
}
}
},
"headers": {
"X-RateLimit-Limit": {
"description": "Read bucket 120; command bucket 30.",
"schema": {
"type": "integer",
"minimum": 1
}
},
"X-RateLimit-Remaining": {
"description": "Requests left in this bucket after this request.",
"schema": {
"type": "integer",
"minimum": 0
}
},
"X-RateLimit-Reset": {
"description": "Unix time in seconds at the next minute boundary.",
"schema": {
"type": "integer",
"minimum": 1
}
}
}
},
"400": {
"description": "Invalid input or JSON object; correct the request before retrying",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"request_id",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"request_id": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing or invalid resource-bound identity",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"request_id",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"request_id": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
},
"headers": {
"WWW-Authenticate": {
"description": "Bearer challenge linking the Locker protected-resource metadata.",
"schema": {
"type": "string"
}
}
}
},
"403": {
"description": "Scope or ownership denied",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"request_id",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"request_id": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
}
},
"404": {
"description": "Unknown route/method, missing resource or resource unavailable to this actor",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"request_id",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"request_id": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
}
},
"413": {
"description": "Request exceeds the 65,536-byte body limit; reduce the body",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"request_id",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"request_id": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
}
},
"415": {
"description": "A non-empty request body must use application/json",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"request_id",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"request_id": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
}
},
"429": {
"description": "The fixed-minute read or command bucket is exhausted; wait Retry-After seconds",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"request_id",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"request_id": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
},
"headers": {
"Retry-After": {
"description": "Seconds until the limit resets; retry with bounded backoff.",
"schema": {
"type": "integer",
"minimum": 1
}
},
"X-RateLimit-Limit": {
"description": "Read bucket 120; command bucket 30.",
"schema": {
"type": "integer",
"minimum": 1
}
},
"X-RateLimit-Remaining": {
"description": "Requests left in this bucket after this request.",
"schema": {
"type": "integer",
"minimum": 0
}
},
"X-RateLimit-Reset": {
"description": "Unix time in seconds at the next minute boundary.",
"schema": {
"type": "integer",
"minimum": 1
}
}
}
},
"503": {
"description": "Required integration unavailable; no success is assumed",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"request_id",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"request_id": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
}
},
"default": {
"description": "Typed service error; obey error.retryable and error.next_action. A response is not proof that an action completed.",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"request_id",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"request_id": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
}
},
"500": {
"description": "Unexpected server fault. The body may not be JSON and no success is assumed; for a command, retry later with the same Idempotency-Key."
}
}
}