RideWiseCore Docs

API overview

Base URL, authentication, request format, errors and rate limits shared by every endpoint.

Base URL

Every endpoint in this reference is relative to your RideWiseCore API base URL. The examples call it RWC_API_URL:

export RWC_API_URL="https://<your-ridewisecore-api-host>"
export RWC_API_KEY="rwc_…"

The real-time socket connects to the same host. See Real-time events.

Authentication

Send an API key as a Bearer token on every request:

Authorization: Bearer rwc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

See Authentication for details.

Requests and responses

  • Request bodies are JSON. Send Content-Type: application/json.
  • Responses are JSON. Timestamps are ISO-8601 strings in UTC, for example 2026-09-23T08:15:02.114Z.
  • Match IDs are UUIDs.

Errors

Every error uses the same envelope:

{
  "error": {
    "message": "Match not found",
    "statusCode": 404
  }
}
StatusMeaning
400 Bad RequestThe body or a parameter failed validation. message describes what's wrong
401 UnauthorizedMissing, invalid or revoked API key
402 Payment RequiredNo payment method on file and no free trial running. Matching and tracking are locked
403 ForbiddenSubscription cancelled, suspended for non-payment, or disabled
404 Not FoundThe resource doesn't exist for your tenant
409 ConflictThe resource is in a state that doesn't allow the action, for example cancelling a finished match
429 Too Many RequestsRate limit exceeded
5xxSomething went wrong at RideWiseCore. Safe to retry with backoff

You can only ever see your own resources. A match ID that belongs to another tenant returns 404, exactly as if it didn't exist.

Rate limits

300 requests per minute per API key, across all REST endpoints. Each response includes:

HeaderMeaning
x-ratelimit-limitRequests allowed per window
x-ratelimit-remainingRequests left in the current window
x-ratelimit-resetSeconds until the window resets
retry-afterSent with 429: seconds to wait before retrying

Socket events (agent:location, ride:respond) don't count toward this limit. Use the socket, not polling, for high-frequency traffic.

Endpoint index

Integration endpoints

MethodPathDescription
POST/matchesRequest an agent for a pickup
GET/matches/{matchId}Get a match's current state
POST/matches/{matchId}/cancelCancel a match that's still searching
WSSocket.IO /Agent locations, ride offers, match updates

Account, API key, usage and billing management is done in the dashboard. Your application doesn't need any other endpoints.

Public

MethodPathDescription
GET/healthService liveness: { "status": "ok" }

On this page