POST /v1/ors/directions/{profile} ORS directions proxy Auth required Request body
Thin proxy to OpenRouteService directions v2.
The request body and successful response payloads are passed through as JSON.
If ORS returns an HTTP error response, that upstream JSON payload is also passed through with the upstream status code.
Local auth, rate-limit, and request-validation failures still use the standard Velvari `ErrorResponse` envelope.
Invalid request or upstream ORS validation error payload
application/json
401
Unauthorized
application/json
404
Upstream ORS not-found payload
application/json
429
Rate limited locally or by upstream ORS
application/json
500
Server error or upstream ORS error payload
application/json
503
Upstream unavailable, ORS not configured, or upstream ORS error payload
application/json
GET /v1/ors/isochrones ORS isochrones Auth required
Thin GET wrapper over OpenRouteService isochrones.
Successful responses and upstream HTTP error payloads are passed through as JSON when the request reaches ORS.
Local auth, rate-limit, and validation failures use the standard Velvari `ErrorResponse` envelope.
Example: 300,600. Comma-separated integers forwarded to ORS `range`.
profile
string · default driving-car
No
Not documented
range_type
string · default time
No
Not documented
interval
integer
No
Not documented
Responses
Status
Description
Content types
200
Upstream ORS GeoJSON payload
application/json
400
Invalid request or upstream ORS validation error payload
application/json
401
Unauthorized
application/json
404
Upstream ORS not-found payload
application/json
429
Rate limited locally or by upstream ORS
application/json
500
Server error or upstream ORS error payload
application/json
503
Upstream unavailable, ORS not configured, or upstream ORS error payload
application/json
POST /v1/ors/matrix/{profile} ORS matrix proxy Auth required Request body
Thin proxy to OpenRouteService matrix v2.
The request body and successful response payloads are passed through as JSON.
If ORS returns an HTTP error response, that upstream JSON payload is also passed through with the upstream status code.
Local auth, rate-limit, and request-validation failures still use the standard Velvari `ErrorResponse` envelope.
Authenticated cached public Suno profile song index endpoints.
6 operations
GET /v1/suno/profiles/{handle}/songs Read cached public Suno profile songs Auth required
Reads the local JSON snapshot for an allowed public Suno profile handle and returns the normalized Songs-section snapshot. This endpoint does not fetch Suno live. Snapshot data comes from public Suno profile metadata and anonymous public unified feed pagination.
Example: akaki. Public Suno profile handle without a leading `@`. Must be enabled by `SUNO_ALLOWED_HANDLES`.
Responses
Status
Description
Content types
200
Cached Suno profile song index
application/json
400
Invalid handle format
application/json
401
Unauthorized
application/json
403
Handle is not allowed
application/json
404
Snapshot not found
application/json
429
Rate limited
application/json
500
Server error
application/json
GET /v1/suno/profiles/{handle}/songs/search Search and filter cached Suno profile songs Auth required
Searches one allowed cached Suno profile snapshot by title, style, lyrics, model, and minimum play count. Results can be sorted and limited without downloading the full profile snapshot.
Example: akaki. Public Suno profile handle without a leading `@`. Must be enabled by `SUNO_ALLOWED_HANDLES`.
Query parameters
Name
Type
Required
Description
title
string
No
Example: Night Ride. Not documented
style
string
No
Example: electro-pop. Not documented
lyrics
string
No
Example: neon. Not documented
model
string
No
Example: v5. Not documented
min_play_count
integer
No
Example: 10. Not documented
sort
string
No
Example: -play_count. Supported fields are `play_count`, `upvote_count`, `comment_count`, `duration_seconds`, `created_at`, and `title`; prefix with `-` for descending order.
limit
integer · default 50
No
Example: 10. Not documented
exact
boolean · default true
No
Exact matching applies to title and model; style and lyrics use substring matching.
Responses
Status
Description
Content types
200
Matching cached Suno songs with full normalized metadata
application/json
400
Invalid or missing query
application/json
401
Unauthorized
application/json
403
Handle is not allowed
application/json
404
Snapshot or song not found
application/json
429
Rate limited
application/json
500
Server error
application/json
GET /v1/suno/profiles/{handle}/stats Read cached Suno profile stats Auth required
Aggregates counters, model/style buckets, duration, and top songs from the cached Suno profile snapshot. This endpoint does not call Suno live.
Example: akaki. Public Suno profile handle without a leading `@`. Must be enabled by `SUNO_ALLOWED_HANDLES`.
Responses
Status
Description
Content types
200
Cached Suno profile stats
application/json
400
Invalid handle format
application/json
401
Unauthorized
application/json
403
Handle is not allowed
application/json
404
Snapshot not found
application/json
429
Rate limited
application/json
500
Server error
application/json
POST /v1/suno/profiles/{handle}/sync Refresh cached public Suno profile songs Auth required
Reads allowed public Suno profile metadata, resolves the public target user ID, paginates anonymous public unified feed `user_songs` with a top-level cursor, extracts valid public song clips, then atomically writes a local JSON snapshot. The sync is bounded by configured page and timeout limits, deduplicates songs by ID, and prevents a warning-state partial result from overwriting a larger existing snapshot. No private Suno account token, Browser-Token, Device-Id, cookies, or login flow is required.
Example: akaki. Public Suno profile handle without a leading `@`. Must be enabled by `SUNO_ALLOWED_HANDLES`.
Responses
Status
Description
Content types
200
Refreshed Suno profile song index
application/json
400
Invalid handle format
application/json
401
Unauthorized
application/json
403
Handle is not allowed
application/json
429
Rate limited
application/json
500
Snapshot write or internal error
application/json
503
Suno public profile fetch, sync, or parser failure
application/json
GET /v1/suno/songs/{id} Read a cached Suno song by ID Auth required
Searches allowed cached Suno profile snapshots for a public song UUID and returns the full normalized song item. This endpoint does not call Suno live.
Example: 132ec409-86b3-4587-87f8-a32ae30446d3. Public Suno song UUID.
Responses
Status
Description
Content types
200
Cached Suno song
application/json
400
Invalid song ID
application/json
401
Unauthorized
application/json
404
Song not found in allowed cached snapshots
application/json
429
Rate limited
application/json
500
Server error
application/json
GET /v1/suno/songs/search Search cached Suno songs by artist and title Auth required
Reads the cached snapshot for an allowed Suno profile handle passed as `artist` and returns matching normalized songs by title. This endpoint does not call Suno live; it exists so clients can request full track metadata, counters, lyrics, and style fields without downloading the whole profile song list. Exact title matching is used by default. Set `exact=false` for case-insensitive substring matching.
Example: akaki. Public Suno profile handle without a leading `@`. Must be enabled by `SUNO_ALLOWED_HANDLES`.
title
string
Yes
Example: Night Ride. Song title to match against cached Suno song titles.
exact
boolean · default true
No
Set to `false` to use case-insensitive substring title matching.
Responses
Status
Description
Content types
200
Matching cached Suno songs with full normalized metadata
application/json
400
Invalid or missing query
application/json
401
Unauthorized
application/json
403
Artist handle is not allowed
application/json
404
Snapshot or song not found
application/json
429
Rate limited
application/json
500
Server error
application/json
Taxi Cards v2
Strict machine-friendly taxi-card contract for new integrations.
2 operations
GET /v2/cards/taxi Search taxi cards (v2) Auth required
Strict machine-friendly taxi-card contract for new integrations.
Provide zero or one of `q`, `id`, `number`, `registration_mark`, or `vin`.
The endpoint also accepts documented compatibility aliases for current clients.
Use `valid` to filter MTR validity status. Runtime also accepts `kehtiv` and `validity_status`.