Download OpenAPI specification:
API for managing AAAA (Authorization, Authentication, Accounting and Auditing), and device control within the SpectreGrid ecosystem.
This API enables the control, registration, and manipulation of core assets through a model of Explicit Relationships and Transfers.
Administrative authority and delegation are expressed exclusively through roles, permissions, and parent-child relationships.
The operational scope of any actor is governed by:
Note: Every solution has a Global zone that grants access to all entities within the solution.
Permissions determine which actions an entity instance is allowed to perform, both at the API level and within the user interface. They are atomic and classified as:
A permission identifier is composed of three segments, following the format:
<solution>_<object>_<permission>. Key constraints: snake_case.
<solution> — The short identifier of the service:
one: SpectreONE os: OpenSesamesd: SpectreDASHBOARD<object> — The logical entity on which the permission operates:
one: entity, session, solution, template, zone, device, user.os: device, station, gateway, position.<permission> — The action authorized (e.g., create, read, update, delete).
Example: os_position_#c (Grants permission to create positions in OpenSesame).
Some permissions restrict their scope to specific object identifiers:
<solution>_<object>_<permission>([<parameter>])
[<parameter>] — A list of unique identifiers of the corresponding <object>
to which the permission is limited.Distribution actions are operations that allow resources to be distributed among entities, solutions, and zones.
Entrypoints named with [BATCH] indicate that the operation admits multiple
entity operations in a single request.
Endpoints related to session lifecycle management and credential issuance within the platform.
It includes:
Security responsibilities:
Authorization scope:
ENTITY)USER)These endpoints represent the trust boundary where authentication transitions into authorization for both human users and services.
Creates or refreshes an authenticated session and issues a new short-lived JWT access token.
This endpoint follows the OAuth 2.0 Bearer Token usage model as defined in RFC 6750 and applies a system-specific session lifecycle aligned with the OAuth 2.0 framework (RFC 6749).
The behavior of this endpoint depends on the authentication mechanism used:
BasicAuth + SolutionID
X-API-Key + SolutionID
RefreshSessionToken
This endpoint always returns a newly issued JWT representing the authenticated subject (user or service), regardless of the authentication mechanism used.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Create session persons # Authenticate user using email and password. # BasicAuth + SolutionID curl -X POST 'https://{{url}}/sessions' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Basic your_base64_credentials' \ -H 'solutionID: your_api_key_here' \ #-------------------- # Create session B2B # Authenticate service using API Key. # X-API-Key + SolutionID curl -X POST 'https://{{url}}/sessions' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: X-API-Key your_api_key_here' \ -H 'solutionID: your_api_key_here' \ #-------------------- # Refresh session # Obtain new access token using refresh token. # RefreshSessionToken curl -X POST 'https://{{url}}/sessions' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "refreshToken": "mF_9.B5f-4.1JqM"
}Invalidates the current session or access token.
OAuth note: This operation is equivalent to OAuth 2.0 Token Revocation (RFC 7009).
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/sessions' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "message": "OK"
}Generates a temporary Multi-Factor Authentication (MFA) code to authorize a password change request. This code must be provided to PUT /entity/password to complete the operation.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/entity/password' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "message": "OK"
}Updates the authenticated entity's password. Requires a valid MFA code generated via GET /entity/password if Multi-Factor Authentication is enabled.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| newPassword required | string (New Password) The new password for the person. |
{- "newPassword": "newPassword123"
}{- "message": "OK"
}Generates a temporary MFA code to authenticate password recovery requests. This code is required by PUT /entity/recovery to validate and complete the reset.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Password recovery # Initiate password recovery flow. # BasicAuthWithoutPassword + SolutionID curl -X GET 'https://{{url}}/entity/recovery' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Basic your_base64_credentials' \ -H 'solutionID: your_api_key_here' \
{- "message": "OK"
}Completes the password recovery process using a valid MFA code generated by GET /entity/recovery.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| newPassword required | string (New Password) The new password for the person. |
{- "newPassword": "newPassword123"
}{- "message": "OK"
}Retrieves a list of all active access tokens associated with the authenticated entity.
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/tokens' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "f81d4fae-7dec-11d0-a765-00a0c91e6bf6": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "2c1a9c4e-91f4-4e3b-9c2a-8d9e4b2f1a77": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}Creates a single access token scoped to one solution identifier.
This endpoint follows a one-to-one model:
Bulk or multi-solution token creation is not supported. To obtain tokens for multiple solutions, this endpoint must be called once per solution identifier.
The issued token grants authorization only to the specified solution and MUST be used as a Bearer token when accessing solution-scoped resources.
| identifier required | string <uuid> Unique identifier of the solution for which the access token will be issued. The resulting access token grants authorization only to this solution and cannot be reused for other identifiers. |
{- "identifier": "f81d4fae-7dec-11d0-a765-00a0c91e6bf7"
}{- "f81d4fae-7dec-11d0-a765-00a0c91e6bf6": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "2c1a9c4e-91f4-4e3b-9c2a-8d9e4b2f1a77": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}Retrieves the access token for a specific solution identifier. Returns exactly one entry matching the requested ID.
| UUID required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Identifier of solutions of access token to view. |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/tokens/{UUID}' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "2c1a9c4e-91f4-4e3b-9c2a-8d9e4b2f1a77": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXFCE9..."
}Revokes the access token associated with the specified identifier.
| UUID required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Identifier of solutions of access token to view. |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/tokens/{UUID}' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "message": "OK"
}Endpoint to refresh the access token
| UUID required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Identifier of solutions of access token to view. |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X POST 'https://{{url}}/tokens/{UUID}' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "f81d4fae-7dec-11d0-a765-00a0c91e6bf6": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "2c1a9c4e-91f4-4e3b-9c2a-8d9e4b2f1a77": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}Endpoints related to entity administration and delegation.
An ENTITY is the primary subject of authorization. It operates within explicitly defined scopes resolved through relationships
An entity:
An ENTITY operates within explicitly defined scopes and relationships.
Entities utilize the Collaborator Pattern for safe delegation:
A collaborator is a business-level term representing a child entity created under a parent entity for delegated administration.
A collaborator:
This pattern enables safe delegation of administrative responsibilities (e.g. billing, device management, user support) without introducing role inheritance or implicit privilege escalation.
Retrieves a comprehensive list of all persons visible to the authenticated entity.
The scope of the returned list depends on the authenticated entity's role and permissions. This provides a complete overview of all associated persons within the administrative domain.
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/persons' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "id": "65b55214a9bf015dc703bcf9",
- "parentID": "65b55214a9bf015dc703bcf9",
- "status": "activate",
- "role": "account",
- "firstname": "John",
- "lastname": "Doe",
- "email": "user@example.com",
- "phonenumber": "+11111111111",
- "birthday": "1990-01-01",
- "permissions": "one_solution_read",
- "createTimestamp": "2024-01-24T12:00:00Z",
- "lastActivityTimestamp": "2024-01-24T12:00:00Z"
}
]Retrieves the profile information for a single person.
| PERSON required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of person, can be replaced by "me" alias in the path of request to reference the person that makes the request. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/persons/{PERSON}' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "id": "65b55214a9bf015dc703bcf9",
- "parentID": "65b55214a9bf015dc703bcf9",
- "status": "activate",
- "role": "account",
- "firstname": "John",
- "lastname": "Doe",
- "email": "user@example.com",
- "phonenumber": "+11111111111",
- "birthday": "1990-01-01",
- "permissions": "one_solution_read",
- "createTimestamp": "2024-01-24T12:00:00Z",
- "lastActivityTimestamp": "2024-01-24T12:00:00Z"
}"Modifies the profile information of a specific person.
An entity can only modify other persons' information if they have the appropriate administrative permissions."
| PERSON required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of person, can be replaced by "me" alias in the path of request to reference the person that makes the request. |
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| email required | string Person's email address. |
| firstname required | string Person's first name. |
| lastname required | string Person's last name. |
| parentID required | string <uuid> Identifier of the parent entity creating this person. When provided, the created person becomes a collaborator of the parent entity. The parent defines the maximum permissions and operational scope that the new entity may activate. No permissions are inherited implicitly. |
| permissions required | string (Permissions) ^(one|os|sd)_(entity|session|account|solution... Defines the technical model used to structure Permissions within the SpectreGrid ecosystem, provided as a comma-separated string. Permissions determine which actions an entity is allowed to perform, both at the API level and within the user interface. Each permission follows the format:
Where:
The permission are case insensitive. |
| phonenumber required | string Person's phone number. |
| birthDay required | string <date> Person's birth date in |
{- "email": "person@example.com",
- "firstname": "John",
- "lastname": "Doe",
- "parentID": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
- "permissions": "one_persons_#c, one_devices_assing(f81d4fae-7dec-11d0-a765-00a0c91e6bf6)",
- "phonenumber": "+549123456789",
- "birthDay": "1990-01-01"
}{- "message": "OK"
}Deletes a specific person from the system.
Warning: This operation is irreversible and is restricted to entities with administrative permissions.
| PERSON required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of person, can be replaced by "me" alias in the path of request to reference the person that makes the request. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/persons/{PERSON}' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "message": "OK"
}Sends an MFA code to the person's registered communication channel. This code is required by PUT /persons/activation to complete the process.
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Password recovery # Initiate password recovery flow. # BasicAuthWithoutPassword + SolutionID curl -X GET 'https://{{url}}/persons/activation' \ -H 'Authorization: Basic your_base64_credentials' \ -H 'solutionID: your_api_key_here' \
{- "message": "OK"
}Activates a person using the provided activation code sent via GET /persons/activation.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| email required | string entity email |
| codeAuth required | string Authorization code of entity |
{- "email": "entity@example.com",
- "codeAuth": "152157"
}{- "message": "OK"
}Deletes multiple persons in a single batch operation.
This endpoint permanently deletes persons identified by a list of UUIDs in the request body. This operation is irreversible.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
required | Array of strings or (MUID (string) or MUID (string)) List of resource identifiers to delete. The identifier type (UUID or MUID) depends on the specific resource. |
{- "identifiers": [
- "d384f97b-4f3a-445e-b5f1-2c6227e9b4cf",
- "7f27b8b2-23e5-4e4b-93cb-5db12b7cb6da"
]
}{- "message": "OK"
}Retrieves a list of all solutions associated with a specific person.
| PERSON required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of person, can be replaced by "me" alias in the path of request to reference the person that makes the request. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/persons/{PERSON}/solutions' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "uuid": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
- "type": "identity",
- "level": "primary",
- "name": "SpectreONE-A",
- "templateID": "123e4567-e89b-12d3-a456-426614174000",
- "status": "run",
- "createTimestamp": "2024-11-20T14:30:00Z"
}
]Registers a new solution associated with the person {PERSON}.
| PERSON required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of person, can be replaced by "me" alias in the path of request to reference the person that makes the request. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
| name | string Name of the solution |
| solutionTemplateID | string <UUID> The unique identifier for the solution template. |
{- "name": "SpectreONE-A",
- "solutionTemplateID": "123e4567-e89b-12d3-a456-426614174000"
}{- "status": "error",
- "message": "Bad Request"
}Transfers ownership of an existing solution to the person {PERSON}.
| PERSON required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of person, can be replaced by "me" alias in the path of request to reference the person that makes the request. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
| solutionId required | string <uuid> Identifier of the solution to transfer |
{- "solutionId": "9ff66092-33fb-498c-8123-e85aa68facfe"
}{- "message": "OK"
}Retrieves a list of collaborators for a specified parent person.
This endpoint returns the direct collaborators of a given person.
| PERSON required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of person, can be replaced by "me" alias in the path of request to reference the person that makes the request. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/persons/{PERSON}/collaborators' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "id": "65b55214a9bf015dc703bcf9",
- "parentID": "65b55214a9bf015dc703bcf9",
- "status": "activate",
- "role": "account",
- "firstname": "John",
- "lastname": "Doe",
- "email": "user@example.com",
- "phonenumber": "+11111111111",
- "birthday": "1990-01-01",
- "permissions": "one_solution_read",
- "createTimestamp": "2024-01-24T12:00:00Z",
- "lastActivityTimestamp": "2024-01-24T12:00:00Z"
}
]Retrieves a list of all devices that are owned by a specific person but are not yet assigned to a solution.
| PERSON required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of person, can be replaced by "me" alias in the path of request to reference the person that makes the request. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/persons/{PERSON}/devices' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "@type": "gateway",
- "id": "65b55214a9bf015dc703bcf9",
- "name": "Gateway 1",
- "active": "n",
- "version": {
- "hardware": "1.1.1",
- "firmware": "1.1.1"
}, - "channel": "cellular",
- "geoLocation": {
- "latitude": 37.7749,
- "longitude": -122.4194
}, - "createTimestamp": "2024-01-24T12:00:00Z"
}, - {
- "@type": "endDevice",
- "id": "65b55214a9bf015dc703bcf0",
- "name": "End Device 1",
- "parent": "65b55214a9bf015dc703bcf9",
- "active": "y",
- "version": {
- "hardware": "1.1.1",
- "firmware": "1.1.1"
}, - "channel": "bluetooth",
- "index": 1,
- "createTimestamp": "2024-01-25T10:00:00Z"
}
]Transfers one or more unassigned devices to the specified person.
| PERSON required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of person, can be replaced by "me" alias in the path of request to reference the person that makes the request. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
Array of MUID (string) or MUID (string) (MUID) |
{- "devices": [
- "65b55214a9bf015dc703bcf9"
]
}{- "message": "OK"
}Deletes all devices associated with the specified person.
Warning: This operation is irreversible and will permanently remove all devices owned by the person.
| PERSON required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of person, can be replaced by "me" alias in the path of request to reference the person that makes the request. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/persons/{PERSON}/devices' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "message": "OK"
}Endpoints related to solution provisioning and administration.
Solutions are provisioned and administered by entities operating under appropriate roles and permissions.
These endpoints provide capabilities to configure, monitor, and control solution-level resources.
A SOLUTION TEMPLATE defines a predefined set of services, capabilities, and supported device types.
It acts as a blueprint from which concrete solutions are provisioned.
A SOLUTION is a deployed instance of a solution template, administered by one or more entities within explicitly defined scopes.
A solution contains:
ZONE)DEVICE)USER)Solutions represent active, contracted service deployments.
Retrieves a list of all solutions the authenticated entity is authorized to see. The scope of the data returned depends on the requester's permissions.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/solutions' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "uuid": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
- "type": "identity",
- "level": "primary",
- "name": "SpectreONE-A",
- "templateID": "123e4567-e89b-12d3-a456-426614174000",
- "status": "run",
- "createTimestamp": "2024-11-20T14:30:00Z"
}
]Provisions a new solution from a specified solution template. This operation is restricted to entities with the appropriate permissions.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
| name | string Name of the solution |
| solutionTemplateID | string <UUID> The unique identifier for the solution template. |
{- "name": "SpectreONE-A",
- "solutionTemplateID": "123e4567-e89b-12d3-a456-426614174000"
}{- "message": "OK"
}Modifies an existing solution. The 'UUID' of the solution must be provided in the request body. This action requires appropriate update permissions.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
| uuid required | string <uuid> Unique identifier with format uuid |
| type | string Enum: "identity" "solution" Type of solutions. A "identity" solution is a solution that provide identity services. A "solution" is a solution that provide other services, like iot devices access. A solution type solution consume a identity solotuin to identify sessions ans permissions |
| level | string Enum: "primary" "secondary" Level of the solution. The level inidicate if is primary level of "identity" or secundary level of "identity". The primary level is the main solution used in the ecosystem. The secundary level is a soltion of type "identity" created in a primary level solution. |
| name required | string Name of the solution |
| templateID required | string <UUID> The unique identifier for the solution template. |
| status required | string Enum: "enable" "disable" "paused" "run" Status of solution. |
| createTimestamp required | string <date-time> Date of creation |
{- "uuid": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
- "type": "identity",
- "level": "primary",
- "name": "SpectreONE-A",
- "templateID": "123e4567-e89b-12d3-a456-426614174000",
- "status": "run",
- "createTimestamp": "2024-11-20T14:30:00Z"
}{- "message": "OK"
}Retrieves detailed information and metadata for the specified solution.
| SOLUTION required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of a solution. This parameter accepts either:
Supported aliases
|
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/solutions/{SOLUTION}' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "uuid": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
- "type": "identity",
- "level": "primary",
- "name": "SpectreONE-A",
- "templateID": "123e4567-e89b-12d3-a456-426614174000",
- "status": "run",
- "createTimestamp": "2024-11-20T14:30:00Z"
}Removes a specific solution from the system.
| SOLUTION required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of a solution. This parameter accepts either:
Supported aliases
|
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/solutions/{SOLUTION}' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "message": "OK"
}Deletes a list of solutions identified by their UUIDs in the request body. This is a batch operation and is irreversible. Ensure that the list of UUIDs is correct before executing this request, as deleting a solution may affect associated entities.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
required | Array of strings or (MUID (string) or MUID (string)) List of resource identifiers to delete. The identifier type (UUID or MUID) depends on the specific resource. |
{- "identifiers": [
- "d384f97b-4f3a-445e-b5f1-2c6227e9b4cf",
- "7f27b8b2-23e5-4e4b-93cb-5db12b7cb6da"
]
}{- "message": "OK"
}Retrieves a list of persons associated with the specified solution context. Results can be filtered by role.
| SOLUTION required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of a solution. This parameter accepts either:
Supported aliases
|
Account (string) or Manager (string) or User (string) Filter persons by role. |
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/solutions/{SOLUTION}/persons' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "id": "65b55214a9bf015dc703bcf9",
- "parentID": "65b55214a9bf015dc703bcf9",
- "status": "activate",
- "role": "account",
- "firstname": "John",
- "lastname": "Doe",
- "email": "user@example.com",
- "phonenumber": "+11111111111",
- "birthday": "1990-01-01",
- "permissions": "one_solution_read",
- "createTimestamp": "2024-01-24T12:00:00Z",
- "lastActivityTimestamp": "2024-01-24T12:00:00Z"
}
]This endpoint registers a one or more new person in the system with their personal information.
Input formats supported:
| Content-Type | Description |
|---|---|
application/json |
Single user object or an array of user objects for batch creation. |
multipart/form-data |
A compressed file (ZIP, GZIP, TAR, 7Z, etc.) containing batch data, plus metadata fields. |
You can send either:
UserCreation schema, or When using multipart/form-data, the following parts must be included:
csv or json).defaults, if provided.UserCreation schema.Supported compression formats are: zip, gzip, tar, 7z.
When this endpoint is invoked using the path alias one:
user.one alias.If the alias one is used with any role other than user,
the server MUST reject the request with 400 Bad Request.
| SOLUTION required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of a solution. This parameter accepts either:
Supported aliases
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| email required | string Person's email address. |
| firstname required | string Person's first name. |
| lastname required | string Person's last name. |
| parentID | string <uuid> Identifier of the parent entity creating this person. When provided, the created person becomes a collaborator of the parent entity. The parent defines the maximum permissions and operational scope that the new entity may activate. No permissions are inherited implicitly. |
required | Account (string) or Manager (string) or User (string) Indicate the role of the person to create. |
| password required | string Person's password, which will be encrypted before transmission. |
| phonenumber required | string Person's phone number. |
| birthDay required | string <date> Person's birth date in |
{- "email": "person@example.com",
- "firstname": "John",
- "lastname": "Doe",
- "parentID": "65b55214a9bf015dc703bcf9",
- "role": "account",
- "password": "password123",
- "phonenumber": "+549123456789",
- "birthDay": "1990-01-01"
}[- "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
- "f81d4fae-7dec-11d0-a765-00a0c91e6bf5"
]Retrieves a list of all devices associated with the specified solution.
| SOLUTION required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of a solution. This parameter accepts either:
Supported aliases
|
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/solutions/{SOLUTION}/devices' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "@type": "gateway",
- "id": "65b55214a9bf015dc703bcf9",
- "name": "Gateway 1",
- "active": "n",
- "version": {
- "hardware": "1.1.1",
- "firmware": "1.1.1"
}, - "channel": "cellular",
- "geoLocation": {
- "latitude": 37.7749,
- "longitude": -122.4194
}, - "createTimestamp": "2024-01-24T12:00:00Z"
}, - {
- "@type": "endDevice",
- "id": "65b55214a9bf015dc703bcf0",
- "name": "End Device 1",
- "parent": "65b55214a9bf015dc703bcf9",
- "active": "y",
- "version": {
- "hardware": "1.1.1",
- "firmware": "1.1.1"
}, - "channel": "bluetooth",
- "index": 1,
- "createTimestamp": "2024-01-25T10:00:00Z"
}
]Allocates one or more unassigned devices to the specified solution.
| SOLUTION required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of a solution. This parameter accepts either:
Supported aliases
|
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
Array of MUID (string) or MUID (string) (MUID) |
{- "devices": [
- "65b55214a9bf015dc703bcf9"
]
}{- "message": "OK"
}Returns a list of zones associated with the given solution.
| SOLUTION required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of a solution. This parameter accepts either:
Supported aliases
|
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/solutions/{SOLUTION}/zones' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "identifier": "d942f9d8-e783-4e83-aa27-10a4823d8d85",
- "name": "Zone name",
- "@type": "polygon",
- "body": [
- {
- "latitude": -34.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -59.3816
}
]
}
]Creates new zones associated with the given solution.
Input formats supported:
| Content-Type | Description |
|---|---|
application/json |
Single zone object or an array of zone objects for batch creation. |
multipart/form-data |
A compressed file (ZIP, GZIP, TAR, 7Z, etc.) containing batch data, plus metadata fields. |
You can send either:
ZoneCreate schema, or When using multipart/form-data, the following parts must be included:
csv or json).ZoneCreate.defaults, if provided.ZoneCreate schema.Supported compression formats are: zip, gzip, tar, 7z.
| SOLUTION required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of a solution. This parameter accepts either:
Supported aliases
|
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| @type required | string Enum: "polygon" "circle" |
| name required | string The name of the zone. |
required | Array of objects (Polygon) >= 3 items A polygon defined by a list of geographical positions. The first and last positions are assumed to be connected. |
{- "name": "Zone name",
- "@type": "polygon",
- "body": [
- {
- "latitude": -34.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -59.3816
}
]
}{- "message": "OK"
}Deletes all zones associated with the specified solution pair.
Warning:
The full deletion operation is irreversible. Use with caution.
| SOLUTION required | string <uuid> Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 Unique identifier of a solution. This parameter accepts either:
Supported aliases
|
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/solutions/{SOLUTION}/zones' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "message": "OK"
}Retrieves a list of all available solution templates. The visibility of these templates may be restricted based on the authenticated entity's permissions.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/templates' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "templateID": "123e4567-e89b-12d3-a456-426614174000",
- "name": "SpectreONE",
- "shortName": "os",
- "version": "1.1.1"
}
]Creates a new solution template that can be used to instantiate new solutions. This operation is restricted to entities with administrative privileges.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| name required | string Name of the solution. |
| shortName required | string Short name of the solution. |
| version required | string^[1-9]\.[1-9]\.[1-9]$ Version of the solution template. |
{- "name": "SpectreONE",
- "shortName": "os",
- "version": "1.1.1"
}{- "templateID": "123e4567-e89b-12d3-a456-426614174000"
}Deletes all existing solution templates from the system. This is a bulk, irreversible operation and should be used with extreme caution as it may affect the ability to create new solutions.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/templates' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "status": "error",
- "message": "Bad Request"
}Retrieves a specific solution template by its identifier.
| TEMPLATE required | string <UUID> Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier for the solution template. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/templates/{TEMPLATE}' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "templateID": "123e4567-e89b-12d3-a456-426614174000",
- "name": "SpectreONE",
- "shortName": "os",
- "version": "1.1.1"
}Removes a specific solution template from the system.
| TEMPLATE required | string <UUID> Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier for the solution template. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/templates/{TEMPLATE}' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "status": "error",
- "message": "Bad Request"
}Updates the properties of a specific solution template.
| TEMPLATE required | string <UUID> Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier for the solution template. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| name required | string Name of the solution. |
| shortName required | string Short name of the solution. |
| version required | string^[1-9]\.[1-9]\.[1-9]$ Version of the solution template. |
{- "name": "SpectreONE",
- "shortName": "os",
- "version": "1.1.1"
}{- "status": "error",
- "message": "Bad Request"
}Endpoints for managing geographical boundaries (ZONES) within a solution.
Zones serve as the final layer of permission resolution. In this model, permissions are not static; they are resolved according to the zone where a device is located.
A reserved zone (GLOBAL) that provides unrestricted access, overriding
geographical constraints for universal policies across a solution.
The identifier GLOBAL is reserved for use in:
Zones may be:
Retrieves a list of all zones the authenticated entity has visibility over.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/zones' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "identifier": "d942f9d8-e783-4e83-aa27-10a4823d8d85",
- "name": "Zone name",
- "@type": "polygon",
- "body": [
- {
- "latitude": -34.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -59.3816
}
]
}
]Deletes all zones associated with the solution context of the request.
Warning: This operation is irreversible.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/zones' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "message": "OK"
}Retrieves the information for a single zone, identified by its UUID.
| ZONE required | string <uuid> The UUID of the zone. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/zones/{ZONE}' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "@type": "polygon",
- "identifier": "d942f9d8-e783-4e83-aa27-10a4823d8d85",
- "name": "Zone name",
- "body": [
- {
- "latitude": -34.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -59.3816
}
]
}Updates an existing zone.
| ZONE required | string <uuid> The UUID of the zone. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| @type required | string Enum: "polygon" "circle" |
| name | string The name of the zone. |
required | Array of objects (Polygon) >= 3 items A polygon defined by a list of geographical positions. The first and last positions are assumed to be connected. |
{- "name": "Zone name",
- "@type": "polygon",
- "body": [
- {
- "latitude": -34.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -59.3816
}
]
}{- "@type": "polygon",
- "body": [
- {
- "latitude": -34.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -58.3816
}, - {
- "latitude": -35.6037,
- "longitude": -59.3816
}
]
}Permanently deletes a zone from the system. This operation is irreversible.
| ZONE required | string <uuid> The UUID of the zone. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/zones/{ZONE}' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "status": "error",
- "message": "Bad Request"
}Deletes multiple zones in a single batch operation.
Warning: The full deletion operation is irreversible. Use with caution.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
required | Array of strings or (MUID (string) or MUID (string)) List of resource identifiers to delete. The identifier type (UUID or MUID) depends on the specific resource. |
{- "identifiers": [
- "d384f97b-4f3a-445e-b5f1-2c6227e9b4cf",
- "7f27b8b2-23e5-4e4b-93cb-5db12b7cb6da"
]
}{- "message": "OK"
}Retrieves a list of all devices located within a specific zone.
| ZONE required | string <uuid> The UUID of the zone. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/zones/{ZONE}/devices' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "@type": "gateway",
- "id": "65b55214a9bf015dc703bcf9",
- "name": "Gateway 1",
- "active": "n",
- "version": {
- "hardware": "1.1.1",
- "firmware": "1.1.1"
}, - "channel": "cellular",
- "geoLocation": {
- "latitude": 37.7749,
- "longitude": -122.4194
}, - "createTimestamp": "2024-01-24T12:00:00Z"
}, - {
- "@type": "endDevice",
- "id": "65b55214a9bf015dc703bcf0",
- "name": "End Device 1",
- "parent": "65b55214a9bf015dc703bcf9",
- "active": "y",
- "version": {
- "hardware": "1.1.1",
- "firmware": "1.1.1"
}, - "channel": "bluetooth",
- "index": 1,
- "createTimestamp": "2024-01-25T10:00:00Z"
}
]Locate one or more devices to the specified geographical zone.
| ZONE required | string <uuid> The UUID of the zone. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
Array of MUID (string) or MUID (string) (MUID) |
{- "devices": [
- "65b55214a9bf015dc703bcf9"
]
}{- "message": "OK"
}Endpoints for managing devices (DEVICE) and their lifecycle through
the transfer model.
This section provides APIs for device registration, inspection, and lifecycle management within a solution.
In SpectreGRID, devices form a hierarchical, tree-like structure with strict parent–child constraints.
The currently supported device hierarchy is:
Valid relationships:
Invalid relationships (not allowed):
A Gateway is a root-level device responsible for managing one or more End-Devices.
Characteristics:
An End-Device is a leaf node in the device hierarchy.
Characteristics:
| Device Type | Capabilities |
|---|---|
| Gateway | - Manages multiple End-Devices - Monitored for connection and GPS status |
| End-Device | - Connects to a Gateway - Monitored for operational state and connection |
The following diagram illustrates the supported device connection model:
Retrieves a list of all unassigned devices. The visibility of these resources depends on the permissions of the authenticated entity.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/devices' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
[- {
- "@type": "gateway",
- "id": "65b55214a9bf015dc703bcf9",
- "name": "Gateway 1",
- "active": "n",
- "version": {
- "hardware": "1.1.1",
- "firmware": "1.1.1"
}, - "channel": "cellular",
- "geoLocation": {
- "latitude": 37.7749,
- "longitude": -122.4194
}, - "createTimestamp": "2024-01-24T12:00:00Z"
}, - {
- "@type": "endDevice",
- "id": "65b55214a9bf015dc703bcf0",
- "name": "End Device 1",
- "parent": "65b55214a9bf015dc703bcf9",
- "active": "y",
- "version": {
- "hardware": "1.1.1",
- "firmware": "1.1.1"
}, - "channel": "bluetooth",
- "index": 1,
- "createTimestamp": "2024-01-25T10:00:00Z"
}
]Deletes all devices that are currently unassigned.
Warning: This is a bulk operation and is irreversible. Use with extreme caution.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/devices' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "message": "OK"
}Retrieves detailed information and metadata for a specific device.
required | MUID (string) or MUID (string) (MUID) Example: 65b55214a9bf015dc703bcf9 canonical-name: MUID MUID of the device. The device object can be a gateway or position or station. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X GET 'https://{{url}}/devices/{MUID}' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "@type": "gateway",
- "id": "65b55214a9bf015dc703bcf9",
- "name": "Gateway 1",
- "active": "n",
- "version": {
- "hardware": "1.1.1",
- "firmware": "1.1.1"
}, - "channel": "cellular",
- "geoLocation": {
- "latitude": 37.7749,
- "longitude": -122.4194
}, - "createTimestamp": "2024-01-24T12:00:00Z"
}Removes a specific device from the system.
required | MUID (string) or MUID (string) (MUID) Example: 65b55214a9bf015dc703bcf9 canonical-name: MUID MUID of the device. The device object can be a gateway or position or station. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
# !!! WARNING: CODE VALID UNTIL {{ expiration_date }} !!! # Access protected resources # Use a valid JWT obtained after create sessions. # BearerAuth curl -X DELETE 'https://{{url}}/devices/{MUID}' \ -H 'API-Version: 1.1.1' \ -H 'Authorization: Bearer your_jwt_token_here' \
{- "message": "OK"
}This endpoint allows managing a parent–child relationship for devices using the device MUID provided in the path as the parent.
Depending on the request body, the endpoint supports the following operations:
Device object.The request body must conform to exactly one of the supported schemas.
required | MUID (string) or MUID (string) (MUID) Example: 65b55214a9bf015dc703bcf9 canonical-name: MUID MUID of the device. The device object can be a gateway or position or station. |
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
Array of MUID (string) or MUID (string) (List of id devices) An array of |
{- "device": {
- "@type": "endDevice",
- "id": "65b55214a9bf015dc703bcf9",
- "name": "Device 1",
- "ownerID": "65b55214a9bf015dc703bcf9",
- "solutionID": "65b55214a9bf015dc703bcf9",
- "parent": "65b55214a9bf015dc703bcf9",
- "active": "n",
- "version": {
- "hardware": "1.1.1",
- "firmware": "1.1.1"
}, - "channel": "rs485",
- "createTimestamp": "2024-01-24T12:00:00Z",
- "index": 1
}
}{- "message": "OK"
}Deletes listed unassigned devices.
Warning:
The deletion operation is irreversible. Use with caution.
| API-Version | string^([0-9]+)\.([0-9]+)\.([0-9]+)$ Example: 1.1.1 Version of the API requested by the client, in semantic version format.
If omitted, the server will respond using the latest stable API version.
|
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... JWT token used to authenticate the request |
required | Array of (MUID (string) or MUID (string)) or ((MUID (MUID (string) or MUID (string))) or (MUID (MUID (string) or MUID (string)))) List of resource identifiers to delete. The identifier type (UUID or MUID) depends on the specific resource. |
{- "identifiers": [
- "65b55214a9bf015dc703bcf9"
]
}{- "message": "OK"
}