iBusAPI

Access, keys and privacy

Keys#

IP addresses#

A project may accept requests only from listed addresses (IPv4, IPv6, networks). Then a request needs both the right key and an allowed address (IP_NOT_ALLOWED otherwise, with ip_seen). To see the address the server sees:

curl
curl -H "Authorization: Bearer $IBUS_API_KEY" https://api.ibusisrael.online/api/access/whoami

The answer shows ip_seen and checks in the order the server applies them: the secret, the key, the project, the address (allowed, denied or not_configured). A refusal stops at the first failing check and shows only its code, the key prefix and ip_seen. It costs no data quota and is limited to 30 calls per minute.

Refusal codes#

Each refusal has code, a short detail, docs (a link to this table) and request_id. Quote request_id when you write to iBus.

codeHTTPWhat it means and what to do
KEY_REQUIRED401This address needs a key. Send Authorization: Bearer <key>; request access if you have none.
KEY_INVALID401The key is unknown or mistyped. Copy it again from the developer cabinet; repeated wrong keys from one network are restricted for a while.
KEY_REVOKED401The key was revoked (by you, after a rotation or by iBus). Create a new key in the cabinet.
KEY_EXPIRED401The key's validity date has passed. Create a new key.
KEY_IN_QUERY400A key or token was found in the URL. Keys go only in the Authorization header; a key that was in a URL should be replaced.
KEY_NOT_ACCEPTED_HERE401A key was sent to an address other than api.ibusisrael.online (for example the app's own address). Keys are checked only at https://api.ibusisrael.online — send the request there; elsewhere a key is refused, never ignored.
GROUP_NOT_ALLOWED403Your project has no access to this group of operations. Ask for it from the project page.
OPERATION_NOT_AVAILABLE403The operation is not public, or needs an approved project.
IP_NOT_ALLOWED403The key is right, but the request came from an address that is not on the project's list. The answer shows ip_seen: the address the server saw.
PROJECT_SUSPENDED403The project is paused by iBus. The reason is on the project page; keys keep their state.
PROJECT_BLOCKED403The project is blocked and its keys are revoked. The reason is on the project page; you can reply there.
ACCESS_EXPIRED403The project's access period has ended. Ask for an extension from the project page.
PLATE_LOOKUP_NOT_ALLOWED403Looking up a vehicle by its licence plate is not available to your project. Vehicles appear under daily pseudonyms.
RATE_LIMITED429Too many requests per minute: of your project (with a key) or of your network (without a key). Wait Retry-After seconds.
QUOTA_EXCEEDED429The day, month or heavy-request budget of the project is used up. scope says which; Retry-After says when it resets.
CONCURRENCY_LIMIT429Too many requests of the project at the same time. Wait for answers before sending more.
TEMPORARILY_RESTRICTED429Requests are paused for a short time after repeated violations (for example many wrong keys). Wait Retry-After.
CAPACITY_RESERVED503The service is busy and keeps capacity for passengers. Retry after Retry-After seconds.
POLICY_UNAVAILABLE503Access rules cannot be checked right now, so keyed requests are refused rather than let through. Retry shortly.
EXTERNAL_PAUSED503iBus has paused external integrations for a while (an incident or maintenance). Retry after Retry-After; your keys and limits are unchanged.
BODY_TOO_LARGE413The request body is larger than allowed. Read operations need no body.

Not part of this API#

Browsers and CORS#

Cross-origin browser requests are allowed only for the iBus web app (https://app.ibusisrael.online), without cookies. Keys are not for browsers: a page on another site calls its own server.

What the server keeps#

Contact#

Questions and problem reports: ibusisrael.online/contact. About a refusal, quote its request_id.

Guide
↑ ↓ moveEnter openEsc close