Developers & API
Last updated: 6 October 2026
Snaprint exposes a small public JSON API for the print-shop directory and for booking a demo. No authentication or API key is needed. The full machine-readable description is the OpenAPI 3.1 spec at /openapi.json; every operation has an operationId, typed parameters and response schemas, so it can be loaded directly as LLM function-calling tools. Base URL: https://snaprints.com.
Endpoints
GET /api/locations/areas(listAreas): every live neighbourhood with its listed print shops.GET /api/locations/{slug}(getArea): one neighbourhood by slug.GET /api/book/providers(listBookingProviders): founders available for demos.GET /api/book/availability?date=YYYY-MM-DD(getBookingAvailability): open demo slots.POST /api/book/submit(createBooking): book a slot. Same-origin only.POST /api/desktop-registrations(registerDesktopShop): shop-owner sign-up. Same-origin only.GET /api/reddit/feed(getCommunityFeed): recent r/Snaprint posts.
Static data for agents: /ai/locations.json, /llms.txt.
Example
curl https://snaprints.com/api/locations/rajajinagar
{ "slug": "rajajinagar", "name": "Rajajinagar", "city": "bengaluru",
"liveLocations": [{ "name": "...", "address": "...", "lat": 12.99, "lng": 77.55, ... }], ... }Errors
Errors are RFC 9457 problem details, served as application/problem+json, never HTML. Unknown /api/* paths return a JSON 404 too.
{ "type": "https://snaprints.com/developers#error-invalid_field",
"title": "invalid field", "status": 400,
"detail": "Query param 'date' is required in YYYY-MM-DD format",
"code": "invalid_field", "hint": "Example: ?date=2026-10-20",
"error": "Query param 'date' is required in YYYY-MM-DD format" }invalid_json(400): Body is not valid JSON.invalid_field(400): A field or query param is missing or malformed; see hint.forbidden_origin(403): Write endpoints accept same-origin requests only.not_found(404): Unknown endpoint or area slug.payload_too_large(413): Body exceeds the endpoint's size limit.unsupported_media_type(415): Send Content-Type: application/json.rate_limited(429): Too many requests; wait Retry-After seconds.
Rate limits
/api/book/* allows 5 requests per 60 seconds per IP. Responses carry the IETF RateLimit header fields: RateLimit-Policy: "book";q=5;w=60 and RateLimit: "book";r=4;t=59 (r requests left, t seconds until reset). A 429 also includes Retry-After in seconds. The directory endpoints are CDN-cached and not rate limited; please cache responses for an hour.
Contact
Questions or higher limits: snaprints@sanskritilabs.in.