DRAFT CONTRACT

Get started with the RemoteDesk API

Authenticate a server-to-server integration and retrieve your first workforce resource in a few minutes.

Developer preview

The documented v1 resources are a proposed public contract. They are not yet connected to production RemoteDesk services.

1 Before you begin

Request sandbox credentials

Each integration receives an Access ID and Access Key. Credentials belong to one organization and only carry explicitly approved scopes.

Access ID

Identifies the integration. It may be shown in logs and credential settings.

Access Key

A secret shown only once. Store it in a secrets manager, never in frontend code.

Request developer access
2 Authenticate

Exchange credentials for a token

RemoteDesk uses the OAuth 2.0 Client Credentials flow for machine-to-machine access. Tokens are short-lived and should be cached until shortly before expiry.

curl --request POST \
  --url https://api.sandbox.remotedesk.com/public-api/v1/oauth2/token \
  --user "$ACCESS_ID:$ACCESS_KEY" \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=client_credentials
Security note

Never send an Access Key to a browser or mobile client. Perform token exchange from your trusted backend.

3 Make a request

List people in your organization

Pass the access token as a Bearer token. Collection responses use cursor pagination and include a request ID for support and audit trails.

curl --request GET \
  --url 'https://api.sandbox.remotedesk.com/public-api/v1/people?page_size=20' \
  --header "authorization: Bearer $ACCESS_TOKEN" \
  --header 'accept: application/json'

Environments

EnvironmentBase URLPurpose
Sandboxhttps://api.sandbox.remotedesk.com/public-api/v1Test data and integration development
Productionhttps://api.remotedesk.com/public-api/v1Approved live integrations

Consistent errors

Errors use a stable code for programmatic handling and a request ID for tracing. Validation problems include field-level details.

{
  "error": {
    "code": "invalid_request",
    "message": "The request could not be validated.",
    "request_id": "req_01K3...",
    "details": [{ "field": "page_size", "reason": "must be at most 100" }]
  }
}

Public API design principles

  1. External contract first.Public resources are not a direct mirror of internal service models or route prefixes.
  2. Safe evolution.Breaking changes require a new API version and a published migration window.
  3. Least privilege.Scopes, organization boundaries, and field policies apply to every request.
  4. Repeatable writes.Mutation endpoints accept an idempotency key to make retries safe.