Download OpenAPI specification:
homeit is a property management system, designed for short-term rentals. The homeit platform allows you to manage all your properties from a single place.
The homeit Auth API allows you to manage your user settings, organization, and API keys, and login via OAuth2.
If you have any suggestions or questions regarding this API, please send us an email.
These documentation pages were automatically generated from an OpenAPI file, and are intended to be used by developers as detailed descriptions of our API.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC 2119] [RFC 8174] when, and only when, they appear in all capitals, as shown here.
What this API does for partners
The homeit Auth API allows partners to integrate with the homeit network.
Our API is REST-compliant and uses resource-oriented URLs and common HTTP response codes to indicate API errors.
This document is entirely written in English. Similarly, all enumerated values used in this API are also written in English.
The API is available at https://auth.homeit.io/v2.
This API consists of several resource routes. Each resource route allows a user to find, create, update or remove a specific resource type.
All resource routes follow the same structure and offer similar high-level functionality. When applicable, resource routes include the following endpoints:
GET /{{resource}}: Find all available resources the authenticated user is allowed to access. Search query parameters may be used to filter results.POST /{{resource}}: Create a new resource.GET /{{resource}}/{{id}}: Get a specific resource by its ID.PUT /{{resource}}/{{id}}: Update a specific resource.DELETE /{{resource}}/{{id}}: Remove a specific resource.For example, to update the name of a User resource with ID 123456 to "HOMEIT", an HTTP PUT request should be sent to https://auth.homeit.io/v2/users/123456 with the body {"name":"HOMEIT"}.
This document's first sections provide details on how to use the API, including security considerations, data formats, and testing instructions.
Then, all resource routes are listed. In this section, you will find request and response formats for each resource type, as well as example responses and code snippets.
Finally, we include the data model for each resource type, along with data type requirements and example values. Fields present in a resource document but not included in the resource's data model should not be used, as they are subject to change at any moment without prior notice. Deprecated fields will be marked as such and should also not be used.
Most API routes require authentication using an API Key or a Bearer token. Requests made without authentication will fail with a 401 Unauthorized error.
When applicable, requests may be authenticated using one of the following methods:
https://api.homeit.io/v2/resource?apikey={{apikey}}Authorization HTTP header. Example: Authorization: Bearer {{token}}You can find additional information in the Authentication section.
If too many requests are sent in a short amount of time, a 429 Too Many Requests error is returned until request rates return to normal. Client applications should honour the following request rate limits:
All operations are automatically paginated in the following way:
{ docs: [], total: 120, limit: 10, skip: 0 }
Operations which return a single resource are still paginated, but will show total and limit values of 1.
You can define a limit on the number of documents to be returned which can range between 1 and 100 items. The default is 10 items.
Similarly, you can skip any number of documents, effectively setting the starting position by providing an index. This index should not exceed the total amount of available documents.
For example, https://auth.homeit.io/v2/users?limit=100&skip=10 returns at most 100 items, skipping the first 10 documents.
All list operations can be sorted by any of the document's fields, as long as its assigned value is a number, a string or a date.
The sortBy parameter provides the key you want to sort by, while the order parameter tells the API in which order you want your results: asc for ascending and desc for descending.
For example, https://auth.homeit.io/v2/users?sortBy=id&order=desc returns items sorted by ID, in descending order.
All operations return a collection of hypermedia links to other pages of the same request or other related requests. This collection follows the HAL format.
This behavior can be disabled by setting the hypermedia query parameter to false.
For example, https://auth.homeit.io/v2/users?hypermedia=false returns a response without hypermedia information.
All API responses are given in JSON format. All request bodies should also be provided as JSON.
Request body content type should be application/json. Response body content type will always be application/json+hal unless otherwise specified.
All dates follow the ISO 8601 format standard.
In case of internal or external error, the following HTTP error codes will be returned:
Other 4XX and 5XX error codes may be returned upon malformed request payload or gateway errors.
During normal operation, the following HTTP codes will be returned:
All operations accept a dry boolean query parameter. When testing, you can enable dry-run mode by setting this parameter to true.
In this mode, side-effects such as database writes are disabled, but responses are still returned as normal.
For example, an update request to https://auth.homeit.io/v2/users/123?dry=true would return the updated document, but no changes would be persisted.
If you would like to report an error or have any suggestions or questions regarding this API, please send us an email to api@homeit.io. Any feedback is greatly appreciated. Please, use English for all communications.
Get all API Keys you have access to. You may use filters to narrow your search.
| q | string Example: q=Example Free-text search across indexed resource fields. |
| limit | integer <int64> [ 1 .. 100 ] Default: 10 Example: limit=10 Maximum number of resources to return. |
| skip | integer <int64> >= 0 Default: 0 Number of resources to skip. |
| sortBy | string Example: sortBy=dateCreated Field used to sort the result set. |
| order | string Default: "asc" Enum: "asc" "desc" Example: order=desc Sort order. |
| id | Array of integers <int64> [ items <int64 > ] Example: id=123 A list of resource IDs. |
| name | string Example: name=Example The resource's name, or part of it. Case-insensitive. |
| description | string Example: description=Example The resource's description, or part of it. Case-insensitive. |
| user | Array of integers <int64> [ items <int64 > ] Example: user=1000000 A list of user IDs. |
| organization | Array of integers <int64> [ items <int64 > ] Example: organization=1100000000 A list of organization IDs. |
| tag | Array of strings Example: tag=tag Filter by tag. |
| isTester | Array of booleans <= 2 items Example: isTester=false Filter by test data flag. |
| isActive | boolean Example: isActive=true Filter by active status. |
| createdBefore | string <date-time> Example: createdBefore=2020-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| createdAfter | string <date-time> Example: createdAfter=2020-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| updatedBefore | string <date-time> Example: updatedBefore=2020-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| updatedAfter | string <date-time> Example: updatedAfter=2020-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
| hypermedia | boolean Default: true Disable hypermedia links in response. |
curl -XGET "https://auth.homeit.io/v2/apikeys?user=1000000&name=Example" \ -H "Content-type: application/json" \ -H "Authorization: Bearer {{token}}"
{- "docs": [
- {
- "id": 1200000000,
- "name": "name0",
- "description": "description",
- "user": 1000000,
- "organization": 1100000000,
- "token": "token",
- "scope": [
- "external"
], - "expires": "2100-01-01T00:00:00.000Z",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}, - {
- "id": 1200000001,
- "name": "name1",
- "description": "description",
- "user": 1000001,
- "organization": 1100000001,
- "token": "token",
- "scope": [
- "external"
], - "expires": "2100-01-01T00:00:00.000Z",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 2,
- "limit": 10,
- "skip": 0,
- "success": true
}Create a new API Key.
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
API Key object.
| name required | string The API Key's name. |
| description | string The API Key's description. |
| scope | Array of strings A list of authorization scopes. |
| expires | string <date-time> Expiration date and time. Format MUST comply with ISO 8601. |
{- "name": "Example API key",
- "description": "Example description"
}{- "docs": [
- {
- "id": 1200000000,
- "name": "name0",
- "description": "description",
- "user": 1000000,
- "organization": 1100000000,
- "token": "token",
- "scope": [
- "external"
], - "expires": "2100-01-01T00:00:00.000Z",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get a single API Key by ID.
| id required | integer <int64> Example: 123 A resource's ID. |
curl -XGET "https://auth.homeit.io/v2/apikeys/1200000000" \ -H "Content-type: application/json" \ -H "Authorization: Bearer {{token}}"
{- "docs": [
- {
- "id": 1200000000,
- "name": "name0",
- "description": "description",
- "user": 1000000,
- "organization": 1100000000,
- "token": "token",
- "scope": [
- "external"
], - "expires": "2100-01-01T00:00:00.000Z",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Update an API Key you own.
| id required | integer <int64> Example: 123 A resource's ID. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
API Key object.
| name | string The API Key's name. |
| description | string The API Key's description. |
| expires | string <date-time> Expiration date and time. Format MUST comply with ISO 8601. |
{- "name": "Updated API key",
- "description": "Updated description"
}{- "docs": [
- {
- "id": 1200000000,
- "name": "name0",
- "description": "description",
- "user": 1000000,
- "organization": 1100000000,
- "token": "token",
- "scope": [
- "external"
], - "expires": "2100-01-01T00:00:00.000Z",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Delete an API Key you own.
| id required | integer <int64> Example: 123 A resource's ID. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
curl -XDELETE "https://auth.homeit.io/v2/apikeys/1200000000" \ -H "Content-type: application/json" \ -H "Authorization: Bearer {{token}}"
{- "docs": [
- {
- "id": 1200000002,
- "name": "name2",
- "description": "description",
- "user": 1000002,
- "organization": 1100000002,
- "token": "token",
- "scope": [
- "external"
], - "expires": "2100-01-01T00:00:00.000Z",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": true,
- "deletedAt": "2020-01-01T00:00:00.000Z",
- "deletedBy": 1000000
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get all Organizations you have access to. You may use filters to narrow your search.
| q | string Example: q=Example Free-text search across indexed resource fields. |
| limit | integer <int64> [ 1 .. 100 ] Default: 10 Example: limit=10 Maximum number of resources to return. |
| skip | integer <int64> >= 0 Default: 0 Number of resources to skip. |
| sortBy | string Example: sortBy=dateCreated Field used to sort the result set. |
| order | string Default: "asc" Enum: "asc" "desc" Example: order=desc Sort order. |
| id | Array of integers <int64> [ items <int64 > ] Example: id=123 A list of resource IDs. |
| name | string Example: name=Example The resource's name, or part of it. Case-insensitive. |
| description | string Example: description=Example The resource's description, or part of it. Case-insensitive. |
| vatin | string Example: vatin=PT999999999 Filter by VAT identifier. |
| customerId | Array of strings Example: customerId=customer0 Filter by external customer identifier. |
| accountingId | Array of strings Example: accountingId=account0 Filter by external accounting identifier. |
| subscription | Array of strings Example: subscription=subscription Filter by subscription code. |
| subscriptionPeriodEndBefore | string <date-time> Example: subscriptionPeriodEndBefore=2030-01-01T00:00:00.000Z Filter by subscription period end date. Format MUST comply with ISO 8601. |
| subscriptionPeriodEndAfter | string <date-time> Example: subscriptionPeriodEndAfter=2020-01-01T00:00:00.000Z Filter by subscription period end date. Format MUST comply with ISO 8601. |
| tag | Array of strings Example: tag=tag Filter by tag. |
| isTester | Array of booleans <= 2 items Example: isTester=false Filter by test data flag. |
| isActive | boolean Example: isActive=true Filter by active status. |
| createdBefore | string <date-time> Example: createdBefore=2020-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| createdAfter | string <date-time> Example: createdAfter=2020-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| updatedBefore | string <date-time> Example: updatedBefore=2020-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| updatedAfter | string <date-time> Example: updatedAfter=2020-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
| hypermedia | boolean Default: true Disable hypermedia links in response. |
curl -XGET "https://auth.homeit.io/v2/organizations?subscription=subscription&name=Example" \ -H "Content-type: application/json" \ -H "Authorization: Bearer {{token}}"
{- "docs": [
- {
- "id": 1100000000,
- "name": "name0",
- "description": "description",
- "email": "abc@abc.com",
- "vatin": "vatin0",
- "customerId": "customer0",
- "accountingId": "user0",
- "subscriptions": [
- "subscription"
], - "subscriptionQuantity": 1,
- "subscriptionPeriodEnd": "2100-01-01T00:00:00.000Z",
- "address": {
- "formatted": "Rua Exemplo 1, Lisboa, Portugal",
- "apartmentNumber": "1",
- "floor": "1",
- "streetNumber": "1",
- "street": "Rua Exemplo",
- "locality": "Lisboa",
- "area": "Lisboa",
- "postalCode": "0000-000",
- "country": "Portugal"
}, - "location": {
- "type": "Point",
- "coordinates": [
- 1,
- 1
]
}, - "timezone": "Etc/UTC",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}, - {
- "id": 1100000001,
- "name": "name1",
- "description": "description",
- "email": "abc@abc.com",
- "vatin": "vatin1",
- "customerId": "customer1",
- "accountingId": "user1",
- "subscriptions": [
- "subscription"
], - "subscriptionQuantity": 1,
- "subscriptionPeriodEnd": "2100-01-01T00:00:00.000Z",
- "address": {
- "formatted": "Rua Exemplo 1, Lisboa, Portugal",
- "apartmentNumber": "1",
- "floor": "1",
- "streetNumber": "1",
- "street": "Rua Exemplo",
- "locality": "Lisboa",
- "area": "Lisboa",
- "postalCode": "0000-000",
- "country": "Portugal"
}, - "location": {
- "type": "Point",
- "coordinates": [
- 1,
- 1
]
}, - "timezone": "Etc/UTC",
- "tags": [ ],
- "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 2,
- "limit": 10,
- "skip": 0,
- "success": true
}Create a new Organization.
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
Organization object.
| name required | string The Organization's name. |
| description | string The Organization's description. |
string <email> The Organization's contact email. | |
| vatin | string The Organization's VAT identification number. |
string or object Organization postal address. | |
object Coordinates used for geocoding the organization address. | |
| timezone | string IANA timezone identifier. |
{- "name": "Example organization",
- "email": "org@example.com",
- "description": "Example description"
}{- "docs": [
- {
- "id": 1100000000,
- "name": "name0",
- "description": "description",
- "email": "abc@abc.com",
- "vatin": "vatin0",
- "customerId": "customer0",
- "accountingId": "user0",
- "subscriptions": [
- "subscription"
], - "subscriptionQuantity": 1,
- "subscriptionPeriodEnd": "2100-01-01T00:00:00.000Z",
- "address": {
- "formatted": "Rua Exemplo 1, Lisboa, Portugal",
- "apartmentNumber": "1",
- "floor": "1",
- "streetNumber": "1",
- "street": "Rua Exemplo",
- "locality": "Lisboa",
- "area": "Lisboa",
- "postalCode": "0000-000",
- "country": "Portugal"
}, - "location": {
- "type": "Point",
- "coordinates": [
- 1,
- 1
]
}, - "timezone": "Etc/UTC",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get a single Organization by ID.
| id required | integer <int64> Example: 123 A resource's ID. |
curl -XGET "https://auth.homeit.io/v2/organizations/1" \ -H "Content-type: application/json" \ -H "Authorization: Bearer {{token}}"
{- "docs": [
- {
- "id": 1100000000,
- "name": "name0",
- "description": "description",
- "email": "abc@abc.com",
- "vatin": "vatin0",
- "customerId": "customer0",
- "accountingId": "user0",
- "subscriptions": [
- "subscription"
], - "subscriptionQuantity": 1,
- "subscriptionPeriodEnd": "2100-01-01T00:00:00.000Z",
- "address": {
- "formatted": "Rua Exemplo 1, Lisboa, Portugal",
- "apartmentNumber": "1",
- "floor": "1",
- "streetNumber": "1",
- "street": "Rua Exemplo",
- "locality": "Lisboa",
- "area": "Lisboa",
- "postalCode": "0000-000",
- "country": "Portugal"
}, - "location": {
- "type": "Point",
- "coordinates": [
- 1,
- 1
]
}, - "timezone": "Etc/UTC",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Update an Organization you own.
| id required | integer <int64> Example: 123 A resource's ID. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
Organization object.
| name | string The Organization's name. |
| description | string The Organization's description. |
string <email> The Organization's contact email. | |
| vatin | string The Organization's VAT identification number. |
string or object Organization postal address. | |
object Coordinates used for geocoding the organization address. | |
| timezone | string IANA timezone identifier. |
{- "name": "Updated organization",
- "description": "Updated description"
}{- "docs": [
- {
- "id": 1100000000,
- "name": "name0",
- "description": "description",
- "email": "abc@abc.com",
- "vatin": "vatin0",
- "customerId": "customer0",
- "accountingId": "user0",
- "subscriptions": [
- "subscription"
], - "subscriptionQuantity": 1,
- "subscriptionPeriodEnd": "2100-01-01T00:00:00.000Z",
- "address": {
- "formatted": "Rua Exemplo 1, Lisboa, Portugal",
- "apartmentNumber": "1",
- "floor": "1",
- "streetNumber": "1",
- "street": "Rua Exemplo",
- "locality": "Lisboa",
- "area": "Lisboa",
- "postalCode": "0000-000",
- "country": "Portugal"
}, - "location": {
- "type": "Point",
- "coordinates": [
- 1,
- 1
]
}, - "timezone": "Etc/UTC",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Delete an Organization you own.
| id required | integer <int64> Example: 123 A resource's ID. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
curl -XDELETE "https://auth.homeit.io/v2/organizations/1" \ -H "Content-type: application/json" \ -H "Authorization: Bearer {{token}}"
{- "docs": [
- {
- "id": 1100000002,
- "name": "name2",
- "description": "description",
- "email": "abc@abc.com",
- "vatin": "vatin2",
- "customerId": "customer2",
- "accountingId": "user2",
- "subscriptions": [
- "subscription0"
], - "subscriptionQuantity": 1,
- "subscriptionPeriodEnd": "2100-01-01T00:00:00.000Z",
- "address": {
- "formatted": "Rua Exemplo 1, Lisboa, Portugal",
- "apartmentNumber": "1",
- "floor": "1",
- "streetNumber": "1",
- "street": "Rua Exemplo",
- "locality": "Lisboa",
- "area": "Lisboa",
- "postalCode": "0000-000",
- "country": "Portugal"
}, - "location": {
- "type": "Point",
- "coordinates": [
- 1,
- 1
]
}, - "timezone": "Etc/UTC",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": true,
- "deletedAt": "2020-01-01T00:00:00.000Z",
- "deletedBy": 1000000
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get all Users you have access to. You may use filters to narrow your search.
| q | string Example: q=Example Free-text search across indexed resource fields. |
| limit | integer <int64> [ 1 .. 100 ] Default: 10 Example: limit=10 Maximum number of resources to return. |
| skip | integer <int64> >= 0 Default: 0 Number of resources to skip. |
| sortBy | string Example: sortBy=dateCreated Field used to sort the result set. |
| order | string Default: "asc" Enum: "asc" "desc" Example: order=desc Sort order. |
| id | Array of integers <int64> [ items <int64 > ] Example: id=123 A list of resource IDs. |
| name | string Example: name=Example The resource's name, or part of it. Case-insensitive. |
string Example: email=example@example.com An email address, or part of it. Case-insensitive. | |
| phone | Array of strings Example: phone=+351912345678 A phone number, or part of it. |
| organization | Array of integers <int64> [ items <int64 > ] Example: organization=1100000000 A list of organization IDs. |
| organizationRole | Array of strings Example: organizationRole=member Filter by organization role. |
| lastLoginBefore | string <date-time> Example: lastLoginBefore=2020-01-01T00:00:00.000Z Filter by last login date. Format MUST comply with ISO 8601. |
| lastLoginAfter | string <date-time> Example: lastLoginAfter=2020-01-01T00:00:00.000Z Filter by last login date. Format MUST comply with ISO 8601. |
| mfaType | Array of strings Example: mfaType=totp Filter by MFA type. |
| federationProvider | Array of strings Example: federationProvider=google Filter by federation provider. |
| language | Array of strings Example: language=en Filter by user language. |
| tag | Array of strings Example: tag=tag Filter by tag. |
| isTester | Array of booleans <= 2 items Example: isTester=false Filter by test data flag. |
| isActive | boolean Example: isActive=true Filter by active status. |
| createdBefore | string <date-time> Example: createdBefore=2020-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| createdAfter | string <date-time> Example: createdAfter=2020-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| updatedBefore | string <date-time> Example: updatedBefore=2020-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| updatedAfter | string <date-time> Example: updatedAfter=2020-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
| hypermedia | boolean Default: true Disable hypermedia links in response. |
curl -XGET "https://auth.homeit.io/v2/users?email=example@example.com&organization=1100000000" \ -H "Content-type: application/json" \ -H "Authorization: Bearer {{token}}"
{- "docs": [
- {
- "id": 1000000,
- "name": "name0",
- "email": "abc@abc.com",
- "phone": "+351987654321",
- "emailVerified": true,
- "phoneVerified": true,
- "forceReset": false,
- "organization": 1,
- "organizationRole": "member",
- "scopes": [
- "host",
- "external",
- "guest"
], - "language": "pt",
- "about": "",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}, - {
- "id": 1000001,
- "name": "name1",
- "email": "abc1@abc.com",
- "phone": "+351987654321",
- "emailVerified": true,
- "phoneVerified": true,
- "forceReset": false,
- "scopes": [
- "host",
- "external",
- "guest"
], - "language": "pt",
- "about": "",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 2,
- "limit": 10,
- "skip": 0,
- "success": true
}Create a new User.
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
User object.
| name | string The User's display name. |
| email required | string <email> The User's email address. |
| phone | string The User's phone number. |
| password | string The User's password. |
| language | string The user's preferred language. |
| about | string Free-form profile description. |
{- "name": "Example user",
- "email": "user@example.com",
- "password": "example-password"
}{- "docs": [
- {
- "id": 1000000,
- "name": "name0",
- "email": "abc@abc.com",
- "phone": "+351987654321",
- "emailVerified": true,
- "phoneVerified": true,
- "forceReset": false,
- "organization": 1,
- "organizationRole": "member",
- "scopes": [
- "host",
- "external",
- "guest"
], - "language": "pt",
- "about": "",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get a single User by ID.
| id required | integer <int64> Example: 123 A resource's ID. |
curl -XGET "https://auth.homeit.io/v2/users/1" \ -H "Content-type: application/json" \ -H "Authorization: Bearer {{token}}"
{- "docs": [
- {
- "id": 1000000,
- "name": "name0",
- "email": "abc@abc.com",
- "phone": "+351987654321",
- "emailVerified": true,
- "phoneVerified": true,
- "forceReset": false,
- "organization": 1,
- "organizationRole": "member",
- "scopes": [
- "host",
- "external",
- "guest"
], - "language": "pt",
- "about": "",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Update a User you own.
| id required | integer <int64> Example: 123 A resource's ID. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
User object.
| name | string The User's display name. |
string <email> The User's email address. | |
| phone | string The User's phone number. |
| password | string The User's password. |
| language | string The user's preferred language. |
| about | string Free-form profile description. |
{- "name": "Updated user",
- "about": "Updated profile description"
}{- "docs": [
- {
- "id": 1000000,
- "name": "name0",
- "email": "abc@abc.com",
- "phone": "+351987654321",
- "emailVerified": true,
- "phoneVerified": true,
- "forceReset": false,
- "organization": 1,
- "organizationRole": "member",
- "scopes": [
- "host",
- "external",
- "guest"
], - "language": "pt",
- "about": "",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Delete a User you own.
| id required | integer <int64> Example: 123 A resource's ID. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
curl -XDELETE "https://auth.homeit.io/v2/users/1" \ -H "Content-type: application/json" \ -H "Authorization: Bearer {{token}}"
{- "docs": [
- {
- "id": 1000002,
- "name": "name2",
- "email": "abc2@abc.com",
- "phone": "+351987654321",
- "emailVerified": true,
- "phoneVerified": true,
- "forceReset": false,
- "scopes": [
- "host",
- "external",
- "guest"
], - "language": "pt",
- "about": "",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": true,
- "deletedAt": "2020-01-01T00:00:00.000Z",
- "deletedBy": 1000000
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}| id | integer <int64> The API Key's numeric ID. |
| name | string The API Key's name. |
| description | string The API Key's description. |
| user | integer <int64> The user that owns the API Key. |
| organization | integer <int64> The organization associated with the API Key. |
| token | string The API Key token value. |
| scope | Array of strings A list of authorization scopes. |
| expires | string <date-time> Expiration date and time. Format MUST comply with ISO 8601. |
| tags | Array of strings Arbitrary labels assigned to the API Key. |
| isTester | boolean Is the API Key intended for testing? |
| isActive | boolean (isActive) Is the resource active? |
| createdBy | integer <int64> The user that created the API Key. |
| dateCreated | string <date-time> (dateCreated) Creation date and time. Format MUST comply with ISO 8601. |
| updatedBy | integer <int64> The user that last updated the API Key. |
| dateUpdated | string <date-time> (dateUpdated) Last update date and time. Format MUST comply with ISO 8601. |
| deleted | boolean (deleted) Is the resource deleted? |
| deletedAt | string <date-time> (deletedAt) Deletion date and time. Format MUST comply with ISO 8601. |
| deletedBy | integer <int64> The user that deleted the API Key. |
API Key example
{- "id": 1200000000,
- "name": "name0",
- "description": "description",
- "user": 1000000,
- "organization": 1100000000,
- "token": "token",
- "scope": [
- "external"
], - "expires": "2100-01-01T00:00:00.000Z",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}| id | integer <int64> The Organization's numeric ID. |
| name | string The Organization's name. |
| description | string The Organization's description. |
string <email> The Organization's contact email. | |
| vatin | string The Organization's VAT identification number. |
| customerId | string External customer identifier. |
| accountingId | string External accounting identifier. |
| subscriptions | Array of strings Organization subscription codes. |
| subscriptionQuantity | integer Number of subscribed units. |
| subscriptionPeriodEnd | string <date-time> Subscription period end date and time. Format MUST comply with ISO 8601. |
object Organization postal address. | |
object Organization geographic location. | |
| timezone | string IANA timezone identifier. |
| tags | Array of strings Arbitrary labels assigned to the Organization. |
| isTester | boolean Is the Organization intended for testing? |
| isActive | boolean (isActive) Is the resource active? |
| createdBy | integer <int64> The user that created the Organization. |
| dateCreated | string <date-time> (dateCreated) Creation date and time. Format MUST comply with ISO 8601. |
| updatedBy | integer <int64> The user that last updated the Organization. |
| dateUpdated | string <date-time> (dateUpdated) Last update date and time. Format MUST comply with ISO 8601. |
| deleted | boolean (deleted) Is the resource deleted? |
| deletedAt | string <date-time> (deletedAt) Deletion date and time. Format MUST comply with ISO 8601. |
| deletedBy | integer <int64> The user that deleted the Organization. |
Organization example
{- "id": 1100000000,
- "name": "name0",
- "description": "description",
- "email": "abc@abc.com",
- "vatin": "vatin0",
- "customerId": "customer0",
- "accountingId": "user0",
- "subscriptions": [
- "subscription"
], - "subscriptionQuantity": 1,
- "subscriptionPeriodEnd": "2100-01-01T00:00:00.000Z",
- "address": {
- "formatted": "Rua Exemplo 1, Lisboa, Portugal",
- "apartmentNumber": "1",
- "floor": "1",
- "streetNumber": "1",
- "street": "Rua Exemplo",
- "locality": "Lisboa",
- "area": "Lisboa",
- "postalCode": "0000-000",
- "country": "Portugal"
}, - "location": {
- "type": "Point",
- "coordinates": [
- 1,
- 1
]
}, - "timezone": "Etc/UTC",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}| id | integer <int64> The User's numeric ID. |
| name | string The User's display name. |
string <email> The User's email address. | |
| phone | string The User's phone number. |
| emailVerified | boolean Whether the email address has been verified. |
| phoneVerified | boolean Whether the phone number has been verified. |
| forceReset | boolean Whether the user must reset the password. |
| organization | integer <int64> The organization the user belongs to. |
| organizationRole | string Enum: "owner" "admin" "member" "billing" The user's role within the organization. |
| scopes | Array of strings The user's granted scopes. |
| lastLogin | string <date-time> Last login date and time. Format MUST comply with ISO 8601. |
| mfaType | string Value: "totp" Multi-factor authentication type. |
| federationProvider | string External federation provider name. |
| language | string The user's preferred language. |
| about | string Free-form profile description. |
| tags | Array of strings Arbitrary labels assigned to the user. |
| isTester | boolean Is the user intended for testing? |
| isActive | boolean (isActive) Is the resource active? |
| createdBy | integer <int64> The user that created the account. |
| dateCreated | string <date-time> (dateCreated) Creation date and time. Format MUST comply with ISO 8601. |
| updatedBy | integer <int64> The user that last updated the account. |
| dateUpdated | string <date-time> (dateUpdated) Last update date and time. Format MUST comply with ISO 8601. |
| deleted | boolean (deleted) Is the resource deleted? |
| deletedAt | string <date-time> (deletedAt) Deletion date and time. Format MUST comply with ISO 8601. |
| deletedBy | integer <int64> The user that deleted the account. |
User example
{- "id": 1000000,
- "name": "name0",
- "email": "abc@abc.com",
- "phone": "+351987654321",
- "emailVerified": true,
- "phoneVerified": true,
- "forceReset": false,
- "organization": 1,
- "organizationRole": "member",
- "scopes": [
- "host",
- "external",
- "guest"
], - "language": "pt",
- "about": "",
- "tags": [
- "tag"
], - "isTester": false,
- "isActive": true,
- "createdBy": 1000000,
- "updatedBy": 1000000,
- "dateCreated": "2020-01-01T00:00:00.000Z",
- "dateUpdated": "2020-01-01T00:00:00.000Z",
- "deleted": false
}