{"success":true,"message":"SHYNIT API.","data":{"name":"SHYNIT API","description":"Premium on-demand car care. Two mobile applications served from one API, namespaced by audience so authorization is enforceable at the router rather than per handler.","status":"ok","environment":"production","uptimeSeconds":1337,"startedAt":"2026-08-24T16:42:50.051Z","build":{"version":"1.0.0","build":"1","commit":"local"},"api":{"current":"v1","supported":["v1"],"baseUrl":"http://24.199.89.192:3000/v1","versioning":"URI major versioning. Breaking changes ship as a new major prefix; /v1 is never mutated."},"documentation":{"reference":"http://24.199.89.192:3000/v1/docs","swagger":"http://24.199.89.192:3000/v1/docs/swagger","openapi":"http://24.199.89.192:3000/v1/docs-json","openapiYaml":"http://24.199.89.192:3000/v1/docs-yaml","markdown":"http://24.199.89.192:3000/v1/docs/spec.md","postman":"http://24.199.89.192:3000/v1/docs/postman.json"},"health":{"liveness":"http://24.199.89.192:3000/v1/health","readiness":"http://24.199.89.192:3000/v1/health/ready","version":"http://24.199.89.192:3000/v1/version"},"endpoints":{"authentication":{"customer":"http://24.199.89.192:3000/v1/auth/customer","provider":"http://24.199.89.192:3000/v1/auth/provider"},"common":{"config":"http://24.199.89.192:3000/v1/common/config","countries":"http://24.199.89.192:3000/v1/common/countries","languages":"http://24.199.89.192:3000/v1/common/languages","serviceCategories":"http://24.199.89.192:3000/v1/common/service-categories","platformCharges":"http://24.199.89.192:3000/v1/common/platform-charges","places":"http://24.199.89.192:3000/v1/common/places/autocomplete","vehicleMakes":"http://24.199.89.192:3000/v1/common/vehicle-makes","signUpload":"http://24.199.89.192:3000/v1/common/media/sign-upload"},"customer":{"onboarding":"http://24.199.89.192:3000/v1/customer/onboarding","profile":"http://24.199.89.192:3000/v1/customer/me","settings":"http://24.199.89.192:3000/v1/customer/settings","addresses":"http://24.199.89.192:3000/v1/customer/addresses","vehicles":"http://24.199.89.192:3000/v1/customer/vehicles","services":"http://24.199.89.192:3000/v1/customer/services","plans":"http://24.199.89.192:3000/v1/customer/plans","subscription":"http://24.199.89.192:3000/v1/customer/subscription","paymentMethods":"http://24.199.89.192:3000/v1/customer/payment-methods","promos":"http://24.199.89.192:3000/v1/customer/promos","providers":"http://24.199.89.192:3000/v1/customer/providers","bookings":"http://24.199.89.192:3000/v1/customer/bookings","favorites":"http://24.199.89.192:3000/v1/customer/favorites","transactions":"http://24.199.89.192:3000/v1/customer/transactions","notifications":"http://24.199.89.192:3000/v1/customer/notifications","devices":"http://24.199.89.192:3000/v1/customer/devices","account":"http://24.199.89.192:3000/v1/customer/account","issues":"http://24.199.89.192:3000/v1/customer/issues"},"provider":{"onboarding":"http://24.199.89.192:3000/v1/provider/onboarding","certification":"http://24.199.89.192:3000/v1/provider/certification","home":"http://24.199.89.192:3000/v1/provider/home","availability":"http://24.199.89.192:3000/v1/provider/availability","services":"http://24.199.89.192:3000/v1/provider/services","jobs":"http://24.199.89.192:3000/v1/provider/jobs","balance":"http://24.199.89.192:3000/v1/provider/balance","payouts":"http://24.199.89.192:3000/v1/provider/payouts","earnings":"http://24.199.89.192:3000/v1/provider/earnings","performance":"http://24.199.89.192:3000/v1/provider/performance","transactions":"http://24.199.89.192:3000/v1/provider/transactions","profile":"http://24.199.89.192:3000/v1/provider/profile","documents":"http://24.199.89.192:3000/v1/provider/documents","settings":"http://24.199.89.192:3000/v1/provider/settings/notifications","notifications":"http://24.199.89.192:3000/v1/provider/notifications","devices":"http://24.199.89.192:3000/v1/provider/devices","account":"http://24.199.89.192:3000/v1/provider/account","issues":"http://24.199.89.192:3000/v1/provider/issues"},"webhooks":{"stripe":"http://24.199.89.192:3000/v1/webhooks/stripe","didit":"http://24.199.89.192:3000/v1/webhooks/didit","cloudinary":"http://24.199.89.192:3000/v1/webhooks/cloudinary"}},"realtime":{"transport":"socket.io","url":"http://24.199.89.192:3000","namespaces":{"customer":"/customer","provider":"/provider"},"authentication":"Access token in the handshake `auth.token`, verified by the gateway’s own middleware."},"conventions":{"envelope":"Every response, success or failure, is enveloped as `{ success, message, data, meta }`. Collections are nested under a named key — never a bare array or scalar at the top level.","authentication":"Bearer RS256 access token, 15 minutes, refreshed against the session endpoints.","requiredHeaders":{"X-Client-Type":"customer | provider — required outside the exempt routes listed in `health` and `documentation`.","X-Client-Version":"Semver plus build, e.g. \"1.4.0 (241)\". Absent is treated as unknown rather than blocked.","X-Platform":"ios | android | web."},"idempotency":"Unsafe writes accept `Idempotency-Key`; a replay returns the original response with `X-Idempotent-Replay`.","pagination":"Keyset, on an explicit sort key with `id` as tie-breaker. Cursors are opaque.","rateLimits":"Per-IP and per-principal buckets. `X-RateLimit-*` on every response, `Retry-After` on a 429.","errors":"Stable machine-readable codes with a documentation URL. Unknown request body fields are rejected, not dropped."},"support":{"email":"support@shynit.com","website":"https://shynit.com","terms":"https://shynit.com/terms","errorReference":"https://docs.shynit.com/errors"}},"meta":{"requestId":"e485b21d-d573-4016-a563-d08fd512b6ad","timestamp":"2026-08-24T17:05:06.724Z"}}