Skip to content

API Documentation

This section is the entry point for Pillow’s REST API. The API is served by Mill (the Go service) and described by an OpenAPI 3.0 spec.

If you’re looking for narrative guides and examples (especially connector ingestion), start with The Mill (API).

  • Local: http://localhost:4000/docs
  • Production: https://api.garagejs.com/docs
Production: https://api.garagejs.com

For local development:

http://localhost:4000

All API endpoints are prefixed with /api/v1:

Production: https://api.garagejs.com/api/v1
Local: http://localhost:4000/api/v1

Most protected endpoints use a bearer token:

Terminal window
curl -H "Authorization: Bearer your-service-token" \
https://api.garagejs.com/api/v1/properties

Service tokens are created via the admin endpoint:

Terminal window
curl -X POST https://api.garagejs.com/admin/tokens/service \
-H "Content-Type: application/json" \
-d '{
"service_name": "my-service",
"source": "my-source",
"roles": ["connector"]
}'

Get your first API response:

Terminal window
# Create a service token
curl -X POST http://localhost:4000/admin/tokens/service \
-H "Content-Type: application/json" \
-d '{
"service_name": "test-service",
"source": "test-source",
"roles": ["connector"]
}'
# Search for properties (public endpoint, no auth required)
curl "http://localhost:4000/api/v1/properties?limit=5"
# Search with filters
curl "http://localhost:4000/api/v1/properties?city=San%20Francisco&limit=5"
# With authentication (for protected endpoints)
curl -H "Authorization: Bearer your-token" \
"http://localhost:4000/api/v1/properties?city=San%20Francisco&limit=5"