Routespring Logo
Request Demo

Core concepts

Build for state, not just requests.

Crew travel spans schedules, policy, suppliers, and operational recovery. These rules keep integrations deterministic when processing is asynchronous and supplier state changes.

Updated Current v1 behavior

Authentication and environments

The API uses OAuth2 client credentials. Sandbox tokens come fromoauth-sandbox.routespring.comand API calls go tosandbox.routespring.com/api/v1. Production hosts are confirmed during onboarding.

The bearer token resolves your company. There is no airline identifier in the URL, and resource identifiers must never be reused across tenants.

Schedules are complete snapshots

Each schedule submission represents the full picture for its date window. RouteSpring compares that snapshot with prior persisted legs and bookings to derive new stays, changes, cancellations, swaps, and deadhead flights.

  • Reposting an identical roster is a no-op.
  • Changing a deadhead identity key can produce a cancellation plus a new action item.
  • Duty dates and local departure timestamps must agree or the leg can be dropped during grouping.

Asynchronous processing

POST /crew/schedules acknowledges ingestion before reconciliation and supplier work finish. Continue polling the processing-status endpoint while poll_recommended is true. Stop when the API returns false.

A false value can accompany COMPLETED or FAILED, or a BOOKINGstate held only by items that need human action. Read action items and individual booking states before deciding that every travel requirement succeeded.

Identifiers and short-lived selections

Treat schedule, action, booking, cursor, trip-session, and flight-option identifiers as opaque. Flight options expire in roughly 20 minutes, so search fresh and pass the selected ID back verbatim.

Errors and retries

400

Malformed request

Fix syntax, query values, or unsupported filters before retrying.

401

Unauthorized

Refresh the access token and verify the bearer header.

404

Not found

Confirm the tenant-scoped identifier and resource path.

409

State conflict

Refresh the resource and reconcile the current lifecycle state.

422

Validation or policy failure

Fix field-level validation or an unmet booking prerequisite.

429

Rate limited

Back off and retry with jitter.

5xx

RouteSpring or supplier failure

Retry safely using exponential backoff or the booking retry API.

For booking failures, prefer the dedicated retry endpoints. They expose queue and job status so operators can distinguish a retried request from a duplicate booking attempt.