RLReadyLinks Docs

API authentication

Authenticate to the ReadyLinks REST API with your organization ID and API key, from curl, Python or any HTTP client.

Every call to the ReadyLinks REST API at https://api.readylinks.io is authenticated with two values from ReadyView: your organization ID and your API key. Send them with HTTP Basic authentication. The organization ID is the username and the API key is the password.

#Get your organization ID and API key

  1. Sign in to ReadyView.
  2. Open Profile, then Your Account.
  3. Under Organization Details:
    • Organization ID: choose Copy.
    • API Key: choose Show to see it, or Copy.

#Make a request

This example lists the organization's offline switches. The examples read the two values from the same environment variables the readyview Python library uses.

shell
export READYVIEW_DASHBOARD_ORG_ID="your-organization-id"
export READYVIEW_DASHBOARD_API_KEY="your-api-key"
List offline switches
shell
curl -u "$READYVIEW_DASHBOARD_ORG_ID:$READYVIEW_DASHBOARD_API_KEY" \
  "https://api.readylinks.io/v2/devices?device_type=Switch&status=Offline"

GET /v2/devices returns a JSON array with one object per device. Every endpoint, its parameters and its response are in the API reference.

#With the Python library

The readyview library reads READYVIEW_DASHBOARD_ORG_ID and READYVIEW_DASHBOARD_API_KEY from the environment and authenticates every call for you:

python
# pip install --upgrade readyview
import readyview

dashboard = readyview.Dashboard()
networks = dashboard.network.get_networks()

#Clients that only send bearer tokens

If your HTTP client can only send a bearer token, base64-encode organization-id:api-key and send it as Authorization: Bearer <encoded value>. The API reads it exactly as it reads Basic authentication.

shell
TOKEN=$(printf '%s:%s' "$READYVIEW_DASHBOARD_ORG_ID" "$READYVIEW_DASHBOARD_API_KEY" | base64)
curl -H "Authorization: Bearer $TOKEN" "https://api.readylinks.io/v2/devices?status=Offline"

#Which organization a request acts in

  • The organization ID chooses the organization. If your account belongs to several organizations, your API key is the same in all of them. Send another organization's ID to work there.
  • Requests run with your roles in that organization. A call your roles do not allow is refused with 403, and the response names the missing permission. See Roles and permissions.

#Use a dedicated member for integrations

For a script or integration that runs unattended, invite a separate member for it (Profile → Team → Invite people). Give that member a role with only the permissions the integration needs, and use its API key rather than your own. The integration then can never do more than its role allows, and it keeps working when people leave your team.

#Turn a key off

  • Remove the member. Removing a member from your organization (Profile → Team) removes their API key from it. Requests with that key are refused within about five minutes.
  • A key that may have leaked. There is no self-service way to replace an API key yet. Contact ReadyLinks support.

#Errors

Every error has the same shape:

json
{"code": 401, "success": false, "message": "Invalid organization", "content": {}, "response_type": "UNAUTHORIZED"}
StatusmessageWhat it means
401Not authenticatedNo credentials were sent. Add the Authorization header.
401Invalid organizationNo organization has that ID. Copy it again from Your Account.
401Invalid organization document please contact readylinks incThe API key is not valid for that organization: it was mistyped, the member was removed, or the account is not a member of this organization. Copy both values again.
403Names the permissionYour roles in that organization do not include the permission this call needs. response_type is PERMISSION_DENIED, content.permission_name names the permission, and content.resolution says what to ask an administrator for.
429Rate limit messageToo many calls in a short time. Wait for the number of seconds in the Retry-After header, then try again.

#Rate limits

Each endpoint has its own per-minute limit, counted per API key. GET /v2/devices, for example, allows 15 calls a minute, so a dashboard that refreshes every minute or two stays well inside it. Over the limit, the API answers 429 with a Retry-After header. The readyview library reports that wait as retry_after when it raises ReadyViewAPIError.

#AI assistants

To use ReadyView from Claude, ChatGPT or another AI assistant, connect the ReadyView MCP server at https://api.readylinks.io/mcp instead of handing the assistant an API key. You sign in with your ReadyView account, and the assistant gets the same tools as ReadyView's Network Assistant. See api.readylinks.io/mcp/docs.

Edit this page on GitLab

Last updated November 10, 2026