Logo Railway Info
Login

api API Documentation

Reference for external developers who want to consume Community Railway Info data.

Base path: /api Format: application/json

Authentication

Some endpoints are public, others require an authenticated browser session (Discord login), and a few are restricted to admins only.

⚠️ Fair Use & API Guidelines

This API is provided free of charge for public use. To ensure stability for everyone, we ask that you follow these guidelines:

Public Endpoints

GET/api/lines

Returns all lines, including stations and operator metadata.

GET/api/operators

Returns all operators.

GET/api/stations

Returns all stations.

GET/api/stations/<id_or_name>

Returns one station with connected lines and statistics.

GET/api/stations/search/<term>

Searches stations by name.

GET/api/discord/user/<user_id>

Resolves Discord user metadata for a given user ID.

Session-Protected Endpoints

POST/api/lines

Creates a new line.

PUT/api/lines/<name>

Updates a line.

DELETE/api/lines/<name>

Deletes a line.

PUT/api/operators/<uid>

Updates an operator (member/admin only).

POST/api/operators/request

Submits a new operator request.

POST/api/stations/create

Creates a station.

POST/api/stations/update

Updates a station.

Admin Endpoints

GET/api/admin/logs

Returns server log entries.

POST/api/admin/companies/handle-request

Accepts or rejects operator requests.

POST/api/admin/settings/update

Updates runtime/admin settings.

Quick Examples

Fetch all lines

curl -sS "https://railinfo.juliandev02.me/api/lines"

Fetch station by ID

curl -sS "https://railinfo.juliandev02.me/api/stations/42"

Create an operator request (session required)

curl -X POST "https://railinfo.juliandev02.me/api/operators/request" \
  -H "Content-Type: application/json" \
  -b "session=<your-session-cookie>" \
  -d '{
    "companyName": "Noctis Rail",
    "shortCode": "NTR",
    "color": "#3A84F7",
    "additionalUsers": ["123456789012345678"],
    "companyUid": "noctis-rail"
  }'