Druveo API
Druveo car marketplace API. Pan-Central America. OpenAPI spec auto-generated from Elysia t.Object schemas.
health
Health and readiness probes
1 endpointsauth
Authentication, sessions, password reset
10 endpointsusers
User profiles, ratings, favorites
13 endpointslistings
Vehicle listings CRUD and search
11 endpointsvin
VIN validation, NHTSA lookup, fraud detection
6 endpointssearch
Full-text search via Meilisearch
5 endpointschat
Real-time messaging
5 endpointsnotifications
Multi-channel notifications
5 endpointsanalytics
Tracking and dashboard metrics
6 endpointsadmin
Moderation and platform management
21 endpointspayments
Stripe integration, subscriptions
6 endpointsvaluations
Vehicle valuation ranges from listing comparables
5 endpointssaved-searches
Saved search alerts and match notifications
6 endpointsinspections
Druveo Inspected booking, fulfillment, badge
9 endpointsmessaging
Multi-channel messaging gateway (WhatsApp, Telegram)
6 endpointsOther
1 endpointsAvailable formats
No separate URL to discover. Your AI agent hits this page directly and receives the token-optimized format — no /llms.txt convention required.
curl -H "Accept: text/markdown" http://localhost:3000/
health
Health and readiness probes
GET/healthLiveness probe None required{ "status": "string", "timestamp": "string", "uptime": 0 }
auth
Authentication, sessions, password reset
POST/v1/auth/registerRegister a new account None required{ "id": "string", "email": "string", "firstName": "string", "lastName": "string", "role": "string" | "string" | "string", "status": "string" | "string" | "string" | "string", "createdAt": "string" }{ "error": "string", "code": "string", "details": "string" }{ "error": "string", "code": "string", "details": "string" }POST/v1/auth/loginLogin with email and password None required{ "accessToken": "string", "refreshToken": "string", "user": { "id": "string", "email": "string", "firstName": "string", "lastName": "string", "role": "string" | "string" | "string", "status": "string" | "string" | "string" | "string", "createdAt": "string" } }{ "error": "string", "code": "string", "details": "string" }{ "error": "string", "code": "string", "details": "string" }{ "error": "string", "code": "string", "details": "string" }POST/v1/auth/refreshRotate refresh token, return new tokens None required{ "accessToken": "string", "refreshToken": "string" }{ "error": "string", "code": "string", "details": "string" }{ "error": "string", "code": "string", "details": "string" }POST/v1/auth/logoutRevoke a single session by refresh token None requiredNo response bodyPOST/v1/auth/verify-emailConsume an email verification token None required{ "message": "string" }{ "error": "string", "code": "string", "details": "string" }POST/v1/auth/resend-verificationResend verification email (rate-limited 1/min) None required{ "message": "string" }{ "error": "string", "code": "string", "details": "string" }POST/v1/auth/forgot-passwordRequest a password reset email None required{ "message": "string" }POST/v1/auth/reset-passwordConsume reset token and set a new password None required{ "message": "string" }{ "error": "string", "code": "string", "details": "string" }GET/v1/auth/meReturn the authenticated user None required{ "id": "string", "email": "string", "firstName": "string", "lastName": "string", "role": "string" | "string" | "string", "status": "string" | "string" | "string" | "string", "createdAt": "string" }{ "error": "string", "code": "string", "details": "string" }{ "error": "string", "code": "string", "details": "string" }POST/v1/auth/logout-allRevoke ALL sessions for the current user None required{ "error": "string", "code": "string", "details": "string" }{ "error": "string", "code": "string", "details": "string" }
users
User profiles, ratings, favorites
GET/v1/users/{id}Public user profile None required{ "id": "string", "firstName": "string", "lastName": "string", "avatar": "string" | null, "bio": "string" | null, "location": "string" | null, "memberSince": "string", "ratingsSummary": { "count": "string" | 0, "average": 0 } }{ "error": "string", "code": "string" }GET/v1/users/{id}/ratingsPaginated ratings for a user None required{ "items": [ { "id": "string", "reviewerId": "string", "userId": "string", "type": "string" | "string", "rating": 0, "comment": "string" | null, "listingId": "string" | null, "createdAt": "string", "isEdited": false } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }POST/v1/users/{id}/ratingsRate a user (max one per listing per rater) None required{ "id": "string", "reviewerId": "string", "userId": "string", "type": "string" | "string", "rating": 0, "comment": "string" | null, "listingId": "string" | null, "createdAt": "string", "isEdited": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/users/meOwn full profile None required{ "id": "string", "email": "string", "firstName": "string", "lastName": "string", "phone": "string" | null, "phoneVerified": false, "avatar": "string" | null, "bio": "string" | null, "location": "string" | null, "role": "string" | "string" | "string", "status": "string" | "string" | "string" | "string", "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }PATCH/v1/users/meUpdate own profile None required{ "id": "string", "email": "string", "firstName": "string", "lastName": "string", "phone": "string" | null, "phoneVerified": false, "avatar": "string" | null, "bio": "string" | null, "location": "string" | null, "role": "string" | "string" | "string", "status": "string" | "string" | "string" | "string", "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/users/me/favoritesPaginated own favorites None required{ "items": [ { "listingId": "string", "title": "string", "price": "string", "currency": "string", "status": "string", "thumbnail": "string" | null, "favoritedAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }POST/v1/users/me/favorites/{listingId}Add favorite (idempotent) None required{ "added": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }DELETE/v1/users/me/favorites/{listingId}Remove favorite (idempotent) None required{ "removed": false }{ "error": "string", "code": "string" }GET/v1/users/me/activitiesPaginated own activity log None required{ "items": [ { "id": "string", "type": "string", "description": "string" | null, "metadata": {}, "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }GET/v1/users/me/notification-preferencesRead notification preferences None required{ "enableAll": false, "doNotDisturb": false, "preferences": {}, "pushToken": "string" | null, "phoneNumber": "string" | null }{ "error": "string", "code": "string" }PATCH/v1/users/me/notification-preferencesPatch notification preferences None required{ "enableAll": false, "doNotDisturb": false, "preferences": {}, "pushToken": "string" | null, "phoneNumber": "string" | null }{ "error": "string", "code": "string" }GET/v1/users/me/identitiesList channel identities linked to the current user None required{ "items": [ { "id": "string", "channel": "string" | "string", "metadata": {}, "verifiedAt": "string" | null, "createdAt": "string" } ] }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/users/me/identities/{channel}/unlinkRevoke an identity link (idempotent) None required{ "unlinked": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }
listings
Vehicle listings CRUD and search
GET/v1/listings/Paginated listing search with filters None required{ "items": [ { "id": "string", "sellerId": "string", "title": "string", "description": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "make": "string", "model": "string", "year": "string" | 0, "vin": "string" | null, "trim": "string" | null, "color": "string" | null, "interiorColor": "string" | null, "mileage": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "engineSize": "string" | null, "horsepower": ... | ... | null, "driveType": ... | ... | ... | ... | null, "doors": ... | ... | null, "seats": ... | ... | null, "price": 0, "originalPrice": 0 | null, "priceNegotiable": false, "currency": "string", "location": "string", "postalCode": "string" | null, "country": "string" | null, "latitude": 0 | null, "longitude": 0 | null, "isFeatured": false, "isPremium": false, "inspectedByDruveo": false, "viewCount": "string" | 0, "favoriteCount": "string" | 0, "contactCount": "string" | 0, "publishedAt": "string" | null, "soldAt": "string" | null, "expiresAt": "string" | null, "createdAt": "string", "updatedAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }POST/v1/listings/Create draft listing None required{ "id": "string", "sellerId": "string", "title": "string", "description": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "make": "string", "model": "string", "year": "string" | 0, "vin": "string" | null, "trim": "string" | null, "color": "string" | null, "interiorColor": "string" | null, "mileage": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "engineSize": "string" | null, "horsepower": "string" | 0 | null, "driveType": "string" | "string" | "string" | "string" | null, "doors": "string" | 0 | null, "seats": "string" | 0 | null, "price": 0, "originalPrice": 0 | null, "priceNegotiable": false, "currency": "string", "location": "string", "postalCode": "string" | null, "country": "string" | null, "latitude": 0 | null, "longitude": 0 | null, "isFeatured": false, "isPremium": false, "inspectedByDruveo": false, "viewCount": "string" | 0, "favoriteCount": "string" | 0, "contactCount": "string" | 0, "publishedAt": "string" | null, "soldAt": "string" | null, "expiresAt": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }GET/v1/listings/{id}Public listing detail None required{ "id": "string", "sellerId": "string", "title": "string", "description": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "make": "string", "model": "string", "year": "string" | 0, "vin": "string" | null, "trim": "string" | null, "color": "string" | null, "interiorColor": "string" | null, "mileage": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "engineSize": "string" | null, "horsepower": "string" | 0 | null, "driveType": "string" | "string" | "string" | "string" | null, "doors": "string" | 0 | null, "seats": "string" | 0 | null, "price": 0, "originalPrice": 0 | null, "priceNegotiable": false, "currency": "string", "location": "string", "postalCode": "string" | null, "country": "string" | null, "latitude": 0 | null, "longitude": 0 | null, "isFeatured": false, "isPremium": false, "inspectedByDruveo": false, "viewCount": "string" | 0, "favoriteCount": "string" | 0, "contactCount": "string" | 0, "publishedAt": "string" | null, "soldAt": "string" | null, "expiresAt": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }PATCH/v1/listings/{id}Update listing (owner or admin) None required{ "id": "string", "sellerId": "string", "title": "string", "description": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "make": "string", "model": "string", "year": "string" | 0, "vin": "string" | null, "trim": "string" | null, "color": "string" | null, "interiorColor": "string" | null, "mileage": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "engineSize": "string" | null, "horsepower": "string" | 0 | null, "driveType": "string" | "string" | "string" | "string" | null, "doors": "string" | 0 | null, "seats": "string" | 0 | null, "price": 0, "originalPrice": 0 | null, "priceNegotiable": false, "currency": "string", "location": "string", "postalCode": "string" | null, "country": "string" | null, "latitude": 0 | null, "longitude": 0 | null, "isFeatured": false, "isPremium": false, "inspectedByDruveo": false, "viewCount": "string" | 0, "favoriteCount": "string" | 0, "contactCount": "string" | 0, "publishedAt": "string" | null, "soldAt": "string" | null, "expiresAt": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }DELETE/v1/listings/{id}Soft delete listing (status removed) None required{ "id": "string", "sellerId": "string", "title": "string", "description": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "make": "string", "model": "string", "year": "string" | 0, "vin": "string" | null, "trim": "string" | null, "color": "string" | null, "interiorColor": "string" | null, "mileage": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "engineSize": "string" | null, "horsepower": "string" | 0 | null, "driveType": "string" | "string" | "string" | "string" | null, "doors": "string" | 0 | null, "seats": "string" | 0 | null, "price": 0, "originalPrice": 0 | null, "priceNegotiable": false, "currency": "string", "location": "string", "postalCode": "string" | null, "country": "string" | null, "latitude": 0 | null, "longitude": 0 | null, "isFeatured": false, "isPremium": false, "inspectedByDruveo": false, "viewCount": "string" | 0, "favoriteCount": "string" | 0, "contactCount": "string" | 0, "publishedAt": "string" | null, "soldAt": "string" | null, "expiresAt": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/listings/{id}/clickLog a click event (analytics ingest) None required{ "id": "string", "listingId": "string", "clickType": "string", "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/listings/{id}/publishPublish listing (draft -> published) None required{ "id": "string", "sellerId": "string", "title": "string", "description": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "make": "string", "model": "string", "year": "string" | 0, "vin": "string" | null, "trim": "string" | null, "color": "string" | null, "interiorColor": "string" | null, "mileage": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "engineSize": "string" | null, "horsepower": "string" | 0 | null, "driveType": "string" | "string" | "string" | "string" | null, "doors": "string" | 0 | null, "seats": "string" | 0 | null, "price": 0, "originalPrice": 0 | null, "priceNegotiable": false, "currency": "string", "location": "string", "postalCode": "string" | null, "country": "string" | null, "latitude": 0 | null, "longitude": 0 | null, "isFeatured": false, "isPremium": false, "inspectedByDruveo": false, "viewCount": "string" | 0, "favoriteCount": "string" | 0, "contactCount": "string" | 0, "publishedAt": "string" | null, "soldAt": "string" | null, "expiresAt": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/listings/{id}/unpublishUnpublish listing (published -> draft) None required{ "id": "string", "sellerId": "string", "title": "string", "description": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "make": "string", "model": "string", "year": "string" | 0, "vin": "string" | null, "trim": "string" | null, "color": "string" | null, "interiorColor": "string" | null, "mileage": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "engineSize": "string" | null, "horsepower": "string" | 0 | null, "driveType": "string" | "string" | "string" | "string" | null, "doors": "string" | 0 | null, "seats": "string" | 0 | null, "price": 0, "originalPrice": 0 | null, "priceNegotiable": false, "currency": "string", "location": "string", "postalCode": "string" | null, "country": "string" | null, "latitude": 0 | null, "longitude": 0 | null, "isFeatured": false, "isPremium": false, "inspectedByDruveo": false, "viewCount": "string" | 0, "favoriteCount": "string" | 0, "contactCount": "string" | 0, "publishedAt": "string" | null, "soldAt": "string" | null, "expiresAt": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/listings/{id}/soldMark listing sold (final state) None required{ "id": "string", "sellerId": "string", "title": "string", "description": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "make": "string", "model": "string", "year": "string" | 0, "vin": "string" | null, "trim": "string" | null, "color": "string" | null, "interiorColor": "string" | null, "mileage": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "engineSize": "string" | null, "horsepower": "string" | 0 | null, "driveType": "string" | "string" | "string" | "string" | null, "doors": "string" | 0 | null, "seats": "string" | 0 | null, "price": 0, "originalPrice": 0 | null, "priceNegotiable": false, "currency": "string", "location": "string", "postalCode": "string" | null, "country": "string" | null, "latitude": 0 | null, "longitude": 0 | null, "isFeatured": false, "isPremium": false, "inspectedByDruveo": false, "viewCount": "string" | 0, "favoriteCount": "string" | 0, "contactCount": "string" | 0, "publishedAt": "string" | null, "soldAt": "string" | null, "expiresAt": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/listings/{id}/reportReport a listing None required{ "id": "string", "listingId": "string", "reason": "string", "status": "string", "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/listings/{id}/historyListing change history (owner or admin) None required{ "items": [ { "id": "string", "action": "string", "userId": "string" | null, "changes": {} | null, "notes": "string" | null, "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }
vin
VIN validation, NHTSA lookup, fraud detection
GET/v1/vin/{vin}/validateISO 3779 validation (no NHTSA call) None required{ "valid": false, "vin": "string", "reason": "string" | "string" | "string" }GET/v1/vin/{vin}/decodeDecode VIN (Redis -> Postgres -> NHTSA) None required{ "vin": "string", "cached": false, "source": "string" | "string" | "string", "modelYear": 0 | null, "make": "string" | null, "model": "string" | null, "trim": "string" | null, "bodyType": "string" | null, "engine": "string" | null, "transmission": "string" | null, "drivetrain": "string" | null, "fuelType": "string" | null, "doors": 0 | null, "hitCount": 0, "decodedBy": "string" | null, "errorMessage": "string" | null }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/vin/{vin}/historyPublic history summary (counts only) None required{ "vin": "string", "summary": { "decode": "string" | 0, "report": "string" | 0, "total": "string" | 0 }, "reports": { "count": "string" | 0, "reasonCounts": {} }, "firstSeenAt": "string" | null, "lastDecodedAt": "string" | null }{ "error": "string", "code": "string" }POST/v1/vin/{vin}/reportReport a VIN (auth, rate-limited) None required{ "id": "string", "vin": "string", "reason": "string", "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/vin/{vin}/history/detailsPaginated history details (auth; user ids masked unless admin or own) None required{ "items": [ { "id": "string", "vin": "string", "action": "string", "wasSuccessful": false, "errorMessage": "string" | null, "reportReason": "string" | null, "reportDescription": "string" | null, "userId": "string" | null, "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0 }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/vin/me/checksCurrent user's recent VIN actions None required{ "items": [ { "id": "string", "vin": "string", "action": "string", "wasSuccessful": false, "errorMessage": "string" | null, "reportReason": "string" | null, "reportDescription": "string" | null, "userId": "string" | null, "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0 }{ "error": "string", "code": "string" }
search
Full-text search via Meilisearch
GET/v1/search/listingsSearch listings via Meilisearch None required{ "hits": [ { "id": "string", "sellerId": "string", "status": "string", "title": "string", "description": "string", "make": "string", "model": "string", "trim": "string" | null, "year": "string" | 0, "mileage": "string" | 0, "price": 0, "priceNegotiable": false, "currency": "string", "fuelType": "string", "transmission": "string", "driveType": "string" | null, "condition": "string", "color": "string" | null, "country": "string" | null, "location": "string", "isFeatured": false, "isPremium": false, "hasImages": false, "createdAt": 0, "publishedAt": 0 | null } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "facets": {}, "processingTimeMs": "string" | 0, "query": "string" }{ "error": "string", "code": "string" }GET/v1/search/suggestAutocomplete suggestions None required{ "hits": [ { "id": "string", "title": "string", "make": "string", "model": "string", "year": "string" | 0, "price": 0 } ] }{ "error": "string", "code": "string" }POST/v1/search/me/saved-searchesCreate a saved search None required{ "id": "string", "userId": "string", "name": "string", "description": "string" | null, "criteria": {}, "useCount": "string" | 0, "lastUsedAt": "string" | null, "isActive": false, "createdAt": "string" }{ "error": "string", "code": "string" }GET/v1/search/me/saved-searchesList own saved searches None required{ "items": [ { "id": "string", "userId": "string", "name": "string", "description": "string" | null, "criteria": {}, "useCount": "string" | 0, "lastUsedAt": "string" | null, "isActive": false, "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0 }{ "error": "string", "code": "string" }DELETE/v1/search/me/saved-searches/{id}Delete a saved search None required{ "id": "string", "userId": "string", "name": "string", "description": "string" | null, "criteria": {}, "useCount": "string" | 0, "lastUsedAt": "string" | null, "isActive": false, "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }
chat
Real-time messaging
POST/v1/chat/conversationsGet or create a conversation around a listing (idempotent) None required{ "id": "string", "buyerId": "string", "sellerId": "string", "listingId": "string", "status": "string" | "string" | "string", "lastMessageContent": "string" | null, "lastMessageSenderId": "string" | null, "lastMessageAt": "string" | null, "unreadCount": "string" | 0, "blockedByBuyer": false, "blockedBySeller": false, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/chat/conversationsList own conversations with last-message preview and unread counts None required{ "items": [ { "id": "string", "buyerId": "string", "sellerId": "string", "listingId": "string", "status": "string" | "string" | "string", "lastMessageContent": "string" | null, "lastMessageSenderId": "string" | null, "lastMessageAt": "string" | null, "unreadCount": "string" | 0, "blockedByBuyer": false, "blockedBySeller": false, "createdAt": "string", "updatedAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0 }{ "error": "string", "code": "string" }GET/v1/chat/conversations/{id}/messagesPaginated message history (cursor on created_at) None required{ "items": [ { "id": "string", "conversationId": "string", "senderId": "string", "content": "string", "type": "string" | "string" | "string", "isEdited": false, "isDeleted": false, "createdAt": "string" } ], "nextCursor": "string" | null }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/chat/conversations/{id}/messagesSend a text message and broadcast over WS None required{ "id": "string", "conversationId": "string", "senderId": "string", "content": "string", "type": "string" | "string" | "string", "isEdited": false, "isDeleted": false, "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/chat/conversations/{id}/readMark messages as read up to a given message id None required{ "marked": "string" | 0, "upToMessageId": "string", "readAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }
notifications
Multi-channel notifications
GET/v1/notifications/mePaginated own in-app notifications None required{ "items": [ { "id": "string", "type": "string", "title": "string", "message": "string", "data": {} | null, "priority": "string" | "string" | "string" | "string", "isRead": false, "readAt": "string" | null, "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0 }{ "error": "string", "code": "string" }POST/v1/notifications/me/{id}/readMark a notification read (idempotent) None required{ "id": "string", "type": "string", "title": "string", "message": "string", "data": {} | null, "priority": "string" | "string" | "string" | "string", "isRead": false, "readAt": "string" | null, "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/notifications/me/read-allMark all unread notifications read None required{ "updated": "string" | 0 }{ "error": "string", "code": "string" }POST/v1/notifications/me/devicesRegister or refresh an FCM device token (idempotent on token) None required{ "id": "string", "token": "string", "platform": "string" | "string" | "string", "lastUsedAt": "string" }{ "error": "string", "code": "string" }DELETE/v1/notifications/me/devices/{token}Remove an FCM device token None required{ "removed": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }
analytics
Tracking and dashboard metrics
POST/v1/analytics/listing-viewRecord a listing-page view None required{ "id": "string", "isUnique": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/analytics/listing-clickLog a listing CTA click None required{ "id": "string", "clickType": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/analytics/conversionRecord a conversion event (server-side) None required{ "id": "string", "conversionType": "string", "status": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/analytics/me/listings/{id}Per-listing analytics (owner-only; admin can view any) None required{ "listingId": "string", "range": { "from7d": "string", "from30d": "string", "to": "string" }, "views": { "total7d": "string" | 0, "unique7d": "string" | 0, "total30d": "string" | 0, "unique30d": "string" | 0, "totalAllTime": "string" | 0 }, "clicks": { "total30d": "string" | 0, "byType30d": {} }, "conversions": { "total30d": "string" | 0, "byType30d": {}, "byStatus30d": {} } }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/analytics/me/summaryCaller-wide totals + top listings None required{ "listings": { "total": "string" | 0, "active": "string" | 0, "sold": "string" | 0 }, "totals": { "views30d": "string" | 0, "uniqueViews30d": "string" | 0, "clicks30d": "string" | 0, "contacts30d": "string" | 0, "conversions30d": "string" | 0 }, "topListings": [ { "listingId": "string", "title": "string", "views30d": "string" | 0, "clicks30d": "string" | 0 } ] }{ "error": "string", "code": "string" }GET/v1/analytics/admin/overviewPlatform-wide overview (admin) None required{ "users": { "total": "string" | 0, "activeLast30d": "string" | 0 }, "listings": { "active": "string" | 0, "listedLast30d": "string" | 0, "soldLast30d": "string" | 0 }, "events": { "viewsLast30d": "string" | 0, "uniqueViewsLast30d": "string" | 0, "clicksLast30d": "string" | 0, "conversionsLast30d": "string" | 0 }, "revenue": { "mrrCents": "string" | 0, "paidLast30dCents": "string" | 0 } }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }
admin
Moderation and platform management
GET/v1/admin/usersList users with status filter None required{ "items": [ { "id": "string", "email": "string" | null, "firstName": "string", "lastName": "string", "role": "string" | "string" | "string", "status": "string" | "string" | "string" | "string", "isShadow": false, "lastLoginAt": "string" | null, "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/users/{id}/banBan user (status=SUSPENDED + revoke sessions) None required{ "id": "string", "email": "string" | null, "firstName": "string", "lastName": "string", "role": "string" | "string" | "string", "status": "string" | "string" | "string" | "string", "isShadow": false, "lastLoginAt": "string" | null, "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/users/{id}/unbanUnban user None required{ "id": "string", "email": "string" | null, "firstName": "string", "lastName": "string", "role": "string" | "string" | "string", "status": "string" | "string" | "string" | "string", "isShadow": false, "lastLoginAt": "string" | null, "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/users/{id}/lockLock user (status=INACTIVE + revoke sessions) None required{ "id": "string", "email": "string" | null, "firstName": "string", "lastName": "string", "role": "string" | "string" | "string", "status": "string" | "string" | "string" | "string", "isShadow": false, "lastLoginAt": "string" | null, "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/users/{id}/unlockUnlock user None required{ "id": "string", "email": "string" | null, "firstName": "string", "lastName": "string", "role": "string" | "string" | "string", "status": "string" | "string" | "string" | "string", "isShadow": false, "lastLoginAt": "string" | null, "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/admin/users/{id}/identitiesList all channel identities for a user (includes external IDs) None required{ "items": [ { "id": "string", "userId": "string", "channel": "string" | "string", "externalId": "string", "metadata": {}, "verifiedAt": "string" | null, "revokedAt": "string" | null, "createdAt": "string" } ] }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/users/mergeMerge two user accounts (loser → winner) None required{ "winnerId": "string", "loserId": "string", "merged": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/admin/listingsList listings with status filter None required{ "items": [ { "id": "string", "sellerId": "string", "title": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "price": 0, "currency": "string", "createdAt": "string", "updatedAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/listings/{id}/take-downTake down listing (status=removed) None required{ "id": "string", "sellerId": "string", "title": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "price": 0, "currency": "string", "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/listings/{id}/reinstateReinstate listing (status=published) None required{ "id": "string", "sellerId": "string", "title": "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "price": 0, "currency": "string", "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/admin/reportsReports queue (default: pending + under_review) None required{ "items": [ { "id": "string", "reporterId": "string", "reportedEntityType": "string" | "string" | "string" | "string", "reportedEntityId": "string", "reason": "string", "description": "string" | null, "status": "string" | "string" | "string" | "string", "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/reports/{id}/resolveResolve a report None required{ "id": "string", "reporterId": "string", "reportedEntityType": "string" | "string" | "string" | "string", "reportedEntityId": "string", "reason": "string", "description": "string" | null, "status": "string" | "string" | "string" | "string", "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/admin/system-configsList all system configs None required{ "items": [ { "id": "string", "category": "string" | "string" | "string" | "string" | "string" | "string" | "string", "key": "string", "value": "string", "type": "string" | "string" | "string" | "string", "description": "string", "isPublic": false, "isEditable": false, "updatedAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }PATCH/v1/admin/system-configs/{category}/{key}Patch system config value None required{ "id": "string", "category": "string" | "string" | "string" | "string" | "string" | "string" | "string", "key": "string", "value": "string", "type": "string" | "string" | "string" | "string", "description": "string", "isPublic": false, "isEditable": false, "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/admin/auditRecent admin audit entries None required{ "items": [ { "id": "string", "moderatorId": "string", "moderatorEmail": "string" | null, "actionType": "string", "targetUserId": "string" | null, "targetEntityType": "string" | null, "targetEntityId": "string" | null, "reason": "string", "notes": "string" | null, "metadata": {} | null, "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/admin/notification-templates/List notification templates None required{ "items": [ { "id": "string", "category": "string", "locale": "string", "channel": "string", "subject": "string" | null, "title": "string" | null, "bodyText": "string", "bodyHtml": "string" | null, "replyTo": "string" | null, "priority": ... | ... | ... | ... | null, "updatedBy": "string" | null, "createdAt": "string", "updatedAt": "string" } ] }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/notification-templates/Create a template row None required{ "id": "string", "category": "string", "locale": "string", "channel": "string", "subject": "string" | null, "title": "string" | null, "bodyText": "string", "bodyHtml": "string" | null, "replyTo": "string" | null, "priority": "string" | "string" | "string" | "string" | null, "updatedBy": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/admin/notification-templates/{id}Fetch one template None required{ "id": "string", "category": "string", "locale": "string", "channel": "string", "subject": "string" | null, "title": "string" | null, "bodyText": "string", "bodyHtml": "string" | null, "replyTo": "string" | null, "priority": "string" | "string" | "string" | "string" | null, "updatedBy": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }PUT/v1/admin/notification-templates/{id}Update a template (X-Confirm: true required in prod) None required{ "id": "string", "category": "string", "locale": "string", "channel": "string", "subject": "string" | null, "title": "string" | null, "bodyText": "string", "bodyHtml": "string" | null, "replyTo": "string" | null, "priority": "string" | "string" | "string" | "string" | null, "updatedBy": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }DELETE/v1/admin/notification-templates/{id}Delete a template (refused if last for category) None required{ "deleted": false, "id": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/notification-templates/previewRender a template against a payload (no persistence) None required{ "email": { "subject": "string", "text": "string", "html": "string", "replyTo": "string" }, "push": { "title": "string", "body": "string" }, "inApp": { "title": "string", "message": "string", "priority": "string" | "string" | "string" | "string" } }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }
payments
Stripe integration, subscriptions
POST/v1/payments/checkout/listing-boostCreate a Stripe Checkout session for a listing boost None required{ "url": "string", "sessionId": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/payments/checkout/subscriptionCreate a Stripe Checkout session for a subscription priceId None required{ "url": "string", "sessionId": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/payments/me/subscriptionCurrent subscription state for caller None required{ "id": "string", "plan": "string" | "string" | "string", "status": "string" | "string" | "string" | "string" | "string" | "string" | "string", "billingInterval": "string" | "string", "price": 0, "currency": "string", "currentPeriodStart": "string" | null, "currentPeriodEnd": "string" | null, "trialEndsAt": "string" | null, "cancelAtPeriodEnd": false, "canceledAt": "string" | null } | null{ "error": "string", "code": "string" }POST/v1/payments/me/subscription/cancelSchedule cancel-at-period-end on the active subscription None required{ "cancelAtPeriodEnd": false, "currentPeriodEnd": "string" | null }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/payments/me/invoicesPaginated invoices for caller None required{ "items": [ { "id": "string", "invoiceNumber": "string", "status": "string" | "string" | "string" | "string" | "string", "total": 0, "currency": "string", "dueDate": "string", "paidAt": "string" | null, "pdfUrl": "string" | null, "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0 }{ "error": "string", "code": "string" }POST/v1/payments/webhookStripe webhook (raw body, signature-verified, idempotent) None required{ "received": false, "eventId": "string", "duplicate": false }{ "received": false, "error": "string" }{ "received": false, "eventId": "string" }
valuations
Vehicle valuation ranges from listing comparables
POST/v1/valuations/Compute a vehicle valuation (price range from comparables) None required{ "id": "string", "status": "string" | "string" | "string", "range": { "low": 0, "high": 0, "median": 0, "currency": "string" }, "comparableCount": "string" | 0, "confidence": "string" | "string", "algorithmVersion": "string", "message": "string", "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/valuations/{id}Public valuation summary (anonymized) None required{ "id": "string", "status": "string" | "string" | "string", "range": { "low": 0, "high": 0, "median": 0, "currency": "string" }, "comparableCount": "string" | 0, "confidence": "string" | "string", "algorithmVersion": "string", "make": "string", "model": "string", "year": "string" | 0, "km": "string" | 0, "condition": "string" | "string" | "string" | "string" | null, "source": "string" | "string" | "string" | "string", "comparableListingIds": ["string"], "message": "string", "createdAt": "string" }{ "error": "string", "code": "string" }GET/v1/me/valuationsList valuations for the current user None required{ "items": [ { "id": "string", "status": "string" | "string" | "string", "range": { "low": 0, "high": 0, "median": 0, "currency": "string" }, "comparableCount": "string" | 0, "confidence": "string" | "string", "algorithmVersion": "string", "message": "string", "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }GET/v1/me/valuations/{id}Owner-scoped valuation detail with comparable IDs None required{ "id": "string", "status": "string" | "string" | "string", "range": { "low": 0, "high": 0, "median": 0, "currency": "string" }, "comparableCount": "string" | 0, "confidence": "string" | "string", "algorithmVersion": "string", "make": "string", "model": "string", "year": "string" | 0, "km": "string" | 0, "condition": "string" | "string" | "string" | "string" | null, "source": "string" | "string" | "string" | "string", "comparableListingIds": ["string"], "message": "string", "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/admin/valuations/{id}Admin valuation detail with full audit trail None required{ "id": "string", "status": "string" | "string" | "string", "range": { "low": 0, "high": 0, "median": 0, "currency": "string" }, "comparableCount": "string" | 0, "confidence": "string" | "string", "algorithmVersion": "string", "make": "string", "model": "string", "year": "string" | 0, "km": "string" | 0, "condition": "string" | "string" | "string" | "string" | null, "source": "string" | "string" | "string" | "string", "comparableListingIds": ["string"], "message": "string", "createdAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }
saved-searches
Saved search alerts and match notifications
GET/v1/me/search-alerts/List saved searches for the current user None required{ "items": [ { "id": "string", "userId": "string", "name": "string" | null, "criteria": { "make": "string", "model": "string", "yearMin": ... | ..., "yearMax": ... | ..., "priceMin": 0, "priceMax": 0, "mileageMax": ... | ..., "fuelType": ... | ... | ... | ... | ... | ... | ..., "transmission": ... | ... | ... | ..., "driveType": ... | ... | ... | ..., "condition": ... | ... | ..., "country": "string", "location": "string" }, "notifyChannels": ["string"], "isActive": false, "lastMatchAt": "string" | null, "matchCount": "string" | 0, "createdAt": "string", "updatedAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }POST/v1/me/search-alerts/Create a saved search alert None required{ "id": "string", "userId": "string", "name": "string" | null, "criteria": { "make": "string", "model": "string", "yearMin": "string" | 0, "yearMax": "string" | 0, "priceMin": 0, "priceMax": 0, "mileageMax": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "driveType": "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "country": "string", "location": "string" }, "notifyChannels": ["string"], "isActive": false, "lastMatchAt": "string" | null, "matchCount": "string" | 0, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/me/search-alerts/{id}Fetch one saved search by id (owner-scoped) None required{ "id": "string", "userId": "string", "name": "string" | null, "criteria": { "make": "string", "model": "string", "yearMin": "string" | 0, "yearMax": "string" | 0, "priceMin": 0, "priceMax": 0, "mileageMax": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "driveType": "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "country": "string", "location": "string" }, "notifyChannels": ["string"], "isActive": false, "lastMatchAt": "string" | null, "matchCount": "string" | 0, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }PATCH/v1/me/search-alerts/{id}Update a saved search (criteria, name, channels, isActive) None required{ "id": "string", "userId": "string", "name": "string" | null, "criteria": { "make": "string", "model": "string", "yearMin": "string" | 0, "yearMax": "string" | 0, "priceMin": 0, "priceMax": 0, "mileageMax": "string" | 0, "fuelType": "string" | "string" | "string" | "string" | "string" | "string" | "string", "transmission": "string" | "string" | "string" | "string", "driveType": "string" | "string" | "string" | "string", "condition": "string" | "string" | "string", "country": "string", "location": "string" }, "notifyChannels": ["string"], "isActive": false, "lastMatchAt": "string" | null, "matchCount": "string" | 0, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }DELETE/v1/me/search-alerts/{id}Delete a saved search None required{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/me/search-alerts/{id}/testPreview up to 5 listings matching the saved criteria (no notification) None required{ "items": [ { "id": "string", "title": "string", "make": "string", "model": "string", "year": "string" | 0, "price": 0, "currency": "string", "mileage": "string" | 0, "location": "string" } ] }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }
inspections
Druveo Inspected booking, fulfillment, badge
POST/v1/inspections/Book an inspection (status: pending) None required{ "id": "string", "requestedBy": "string", "listingId": "string" | null, "vehicleInfo": { "vin": "string", "make": "string", "model": "string", "year": "string" | 0 } | null, "locationAddress": "string", "locationLat": 0 | null, "locationLng": 0 | null, "countryCode": "string", "preferredDate": "string", "confirmedDate": "string" | null, "status": "string" | "string" | "string" | "string" | "string" | "string", "assignedInspector": "string" | null, "priceAmount": 0, "priceCurrency": "string", "paidAt": "string" | null, "paymentRef": "string" | null, "outcome": {} | null, "notes": "string" | null, "cancelledReason": "string" | null, "cancelledBy": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/inspections/meList the caller's inspections None required{ "items": [ { "id": "string", "requestedBy": "string", "listingId": "string" | null, "vehicleInfo": { "vin": ..., "make": ..., "model": ..., "year": ... } | null, "locationAddress": "string", "locationLat": 0 | null, "locationLng": 0 | null, "countryCode": "string", "preferredDate": "string", "confirmedDate": "string" | null, "status": "string" | "string" | "string" | "string" | "string" | "string", "assignedInspector": "string" | null, "priceAmount": 0, "priceCurrency": "string", "paidAt": "string" | null, "paymentRef": "string" | null, "outcome": {} | null, "notes": "string" | null, "cancelledReason": "string" | null, "cancelledBy": "string" | null, "createdAt": "string", "updatedAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }GET/v1/inspections/{id}Fetch one inspection (owner or admin) None required{ "id": "string", "requestedBy": "string", "listingId": "string" | null, "vehicleInfo": { "vin": "string", "make": "string", "model": "string", "year": "string" | 0 } | null, "locationAddress": "string", "locationLat": 0 | null, "locationLng": 0 | null, "countryCode": "string", "preferredDate": "string", "confirmedDate": "string" | null, "status": "string" | "string" | "string" | "string" | "string" | "string", "assignedInspector": "string" | null, "priceAmount": 0, "priceCurrency": "string", "paidAt": "string" | null, "paymentRef": "string" | null, "outcome": {} | null, "notes": "string" | null, "cancelledReason": "string" | null, "cancelledBy": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/inspections/{id}/cancelCancel an inspection (owner or admin) None required{ "id": "string", "requestedBy": "string", "listingId": "string" | null, "vehicleInfo": { "vin": "string", "make": "string", "model": "string", "year": "string" | 0 } | null, "locationAddress": "string", "locationLat": 0 | null, "locationLng": 0 | null, "countryCode": "string", "preferredDate": "string", "confirmedDate": "string" | null, "status": "string" | "string" | "string" | "string" | "string" | "string", "assignedInspector": "string" | null, "priceAmount": 0, "priceCurrency": "string", "paidAt": "string" | null, "paymentRef": "string" | null, "outcome": {} | null, "notes": "string" | null, "cancelledReason": "string" | null, "cancelledBy": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/inspections/{id}/payStart a Stripe Checkout session to pay for an inspection None required{ "url": "string", "sessionId": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }GET/v1/admin/inspections/Admin: list inspections with filters None required{ "items": [ { "id": "string", "requestedBy": "string", "listingId": "string" | null, "vehicleInfo": { "vin": ..., "make": ..., "model": ..., "year": ... } | null, "locationAddress": "string", "locationLat": 0 | null, "locationLng": 0 | null, "countryCode": "string", "preferredDate": "string", "confirmedDate": "string" | null, "status": "string" | "string" | "string" | "string" | "string" | "string", "assignedInspector": "string" | null, "priceAmount": 0, "priceCurrency": "string", "paidAt": "string" | null, "paymentRef": "string" | null, "outcome": {} | null, "notes": "string" | null, "cancelledReason": "string" | null, "cancelledBy": "string" | null, "createdAt": "string", "updatedAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/inspections/{id}/confirmAdmin: confirm a pending inspection None required{ "id": "string", "requestedBy": "string", "listingId": "string" | null, "vehicleInfo": { "vin": "string", "make": "string", "model": "string", "year": "string" | 0 } | null, "locationAddress": "string", "locationLat": 0 | null, "locationLng": 0 | null, "countryCode": "string", "preferredDate": "string", "confirmedDate": "string" | null, "status": "string" | "string" | "string" | "string" | "string" | "string", "assignedInspector": "string" | null, "priceAmount": 0, "priceCurrency": "string", "paidAt": "string" | null, "paymentRef": "string" | null, "outcome": {} | null, "notes": "string" | null, "cancelledReason": "string" | null, "cancelledBy": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/inspections/{id}/completeAdmin: mark a confirmed inspection completed None required{ "id": "string", "requestedBy": "string", "listingId": "string" | null, "vehicleInfo": { "vin": "string", "make": "string", "model": "string", "year": "string" | 0 } | null, "locationAddress": "string", "locationLat": 0 | null, "locationLng": 0 | null, "countryCode": "string", "preferredDate": "string", "confirmedDate": "string" | null, "status": "string" | "string" | "string" | "string" | "string" | "string", "assignedInspector": "string" | null, "priceAmount": 0, "priceCurrency": "string", "paidAt": "string" | null, "paymentRef": "string" | null, "outcome": {} | null, "notes": "string" | null, "cancelledReason": "string" | null, "cancelledBy": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }POST/v1/admin/inspections/{id}/reportAdmin: submit inspection report (transitions completed -> reported) None required{ "id": "string", "requestedBy": "string", "listingId": "string" | null, "vehicleInfo": { "vin": "string", "make": "string", "model": "string", "year": "string" | 0 } | null, "locationAddress": "string", "locationLat": 0 | null, "locationLng": 0 | null, "countryCode": "string", "preferredDate": "string", "confirmedDate": "string" | null, "status": "string" | "string" | "string" | "string" | "string" | "string", "assignedInspector": "string" | null, "priceAmount": 0, "priceCurrency": "string", "paidAt": "string" | null, "paymentRef": "string" | null, "outcome": {} | null, "notes": "string" | null, "cancelledReason": "string" | null, "cancelledBy": "string" | null, "createdAt": "string", "updatedAt": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }
messaging
Multi-channel messaging gateway (WhatsApp, Telegram)
GET/webhooks/whatsappWhatsApp webhook verification challenge (Meta) None required"string""string"POST/webhooks/whatsappWhatsApp webhook (signature-verified, ACK <500ms, async) None required{ "ok": false, "jobId": "string" }{ "ok": false, "jobId": "string" }{ "ok": false, "jobId": "string" }POST/webhooks/telegramTelegram webhook (secret-token verified, ACK <500ms, async) None required{ "ok": false, "jobId": "string" }{ "ok": false, "jobId": "string" }{ "ok": false, "jobId": "string" }GET/v1/messaging/conversations/meList the caller's messaging conversations None required{ "items": [ { "id": "string", "userId": "string", "channel": "string" | "string", "status": "string" | "string" | "string", "lastInboundAt": "string" | null, "lastOutboundAt": "string" | null, "totalTokensIn": "string" | 0, "totalTokensOut": "string" | 0, "createdAt": "string", "updatedAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false }{ "error": "string", "code": "string" }GET/v1/messaging/conversations/{id}Fetch one conversation with its message timeline (owner or admin) None required{ "conversation": { "id": "string", "userId": "string", "channel": "string" | "string", "status": "string" | "string" | "string", "lastInboundAt": "string" | null, "lastOutboundAt": "string" | null, "totalTokensIn": "string" | 0, "totalTokensOut": "string" | 0, "createdAt": "string", "updatedAt": "string" }, "messages": { "items": [ { "id": "string", "conversationId": "string", "channel": ... | ..., "direction": ... | ..., "status": ... | ... | ... | ... | ..., "text": ... | ..., "hasMedia": false, "createdAt": "string" } ], "total": "string" | 0, "page": "string" | 0, "limit": "string" | 0, "hasNext": false } }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }{ "error": "string", "code": "string" }DELETE/v1/messaging/mePurge the caller's messaging history (right-to-erasure stub for #62) None required{ "deleted": "string" | 0 }{ "error": "string", "code": "string" }
Other
GET/None requiredNo response body