IPera Starling | Developer HubIPera Starling | Developer Hub
  • IPera Starling REST API

    • Getting Started
  • Endpoints

    • Access Codes
    • Advertisements
    • Analytics Information
    • Guests
    • Guest Activities
    • Guest Dashboard
    • Guest Devices
    • Guest Sessions
    • Location Information
    • Location Analytics
    • Tenants
    • Users

Getting Started

Base URL

Throughout this documentation, [[BaseUrl]] refers to the base URL of your environment.

ENGAGEMENT Environment

https://api.iperawifi.com/api/v1

MIDDLE EAST Environment

https://api.me.iperawifi.com/api/v1

Postman Collection

Download the ready-to-use Postman collection for all V1 endpoints. Import it into Postman, set the baseUrl and api_token variables, and start making requests immediately.

⬇ Download Postman Collection

After importing:

  1. Open the collection in Postman
  2. Go to Variables tab
  3. Set baseUrl to your environment URL (e.g. https://api.iperawifi.com/api/v1)
  4. Set api_token to your Bearer token

Authentication

All API requests must include a Bearer token in the Authorization header.

Authorization: Bearer <api_token>

API tokens are provided by IPERA. Keep your token secure and do not share it publicly.

Content Type

All requests and responses use JSON. Include the Content-Type header in every request.

Content-Type: application/json

Pagination

List endpoints return paginated results. Use the page and per_page query parameters to navigate through records.

ParameterTypeDefaultMaxDescription
pageinteger1—Page number to retrieve
per_pageinteger10100 (unless otherwise noted)Number of records per page

Response Structure

Every list response wraps data in a data array and includes links and meta objects:

{
  "data": [...],
  "links": {
    "first": "[[BaseUrl]]/guests?page=1",
    "last": null,
    "prev": null,
    "next": "[[BaseUrl]]/guests?page=2"
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "path": "[[BaseUrl]]/guests",
    "per_page": 10,
    "to": 10
  }
}
FieldDescription
meta.current_pageThe page number of the current response
meta.from / toIndex of the first and last record on this page
links.nextURL for the next page (null on the last page)
links.prevURL for the previous page (null on the first page)

Example

Fetch the second page of guests, 25 records at a time:

curl -X GET "[[BaseUrl]]/guests?page=2&per_page=25" \
  -H "Authorization: Bearer <api_token>" \
  -H "Content-Type: application/json"

To iterate through all pages, continue requesting links.next until it returns null.

Rate Limiting

Most endpoints are limited to 60 requests per minute. Endpoints with a different limit are noted individually in their documentation.

When you exceed the rate limit, the API returns:

Caution

HTTP/1.1 429 Too Many Requests

Error Responses

The API uses standard HTTP status codes. Common error responses are listed below.

Caution

HTTP/1.1 401 Unauthorized

{
  "message": "Unauthenticated."
}

Caution

HTTP/1.1 403 Forbidden

{
  "message": "This action is unauthorized."
}

Caution

HTTP/1.1 404 Not Found

{
  "error": "Record not found"
}

Caution

HTTP/1.1 422 Unprocessable Entity

{
  "message": "The given data was invalid.",
  "errors": {
    "field_name": [
      "Validation error message."
    ]
  }
}

Caution

HTTP/1.1 429 Too Many Requests

Caution

HTTP/1.1 500 Internal Server Error

Notes

  • Date fields are returned in ISO 8601 format and in UTC timezone (e.g. 2024-01-21T11:41:39.000000Z).
  • Date filter parameters use the format yyyy-mm-dd unless otherwise stated.
  • Boolean parameters accept true or false as values.

Changelog

VersionDateDescription
v2.26Aug 11, 2026Documentation site upgraded with a refreshed UI, on-site search, a downloadable Postman collection, and expanded Getting Started (Pagination, Rate Limiting, Error Responses); various documentation formatting and accuracy fixes
v2.25Jun 03, 2025API Base URLs are separated based on environment
Last Updated: 8/12/26, 10:27 AM