API Documentation
Build amazing puzzle applications with the Puzzlr API. Access puzzle data, user progress, reviews, and more through our RESTful API.
Quick Start Guide
Authentication Setup
Configure Clerk authentication for your application
import { ClerkProvider } from '@clerk/nextjs'
export default function App({ children }) {
return (
<ClerkProvider>
{children}
</ClerkProvider>
)
}
Make API Calls
Use authenticated requests to access Puzzlr API
const response = await fetch('/api/puzzles', {
headers: {
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/json'
}
})
const puzzles = await response.json()
Handle Responses
Process API responses and handle errors
if (response.ok) {
const data = await response.json()
// Handle success
} else {
const error = await response.json()
console.error('API Error:', error.message)
}
API Reference
Authentication
Secure authentication endpoints using Clerk
/api/auth/user
Get current user information
/api/auth/sync
Sync user data with Supabase
Puzzles
Manage puzzle data and information
/api/puzzles
Get paginated list of approved puzzles
/api/puzzles/[id]
Get specific puzzle details
/api/puzzles
Create new puzzle entry
/api/puzzles/[id]
Update puzzle information
Puzzle Logs
Track user puzzle progress and status
/api/puzzle-logs
Get user's puzzle logs
/api/puzzle-logs
Create new puzzle log entry
/api/puzzle-logs/[id]
Update puzzle log status/notes
/api/puzzle-logs/[id]
Remove puzzle from user collection
Reviews
Puzzle reviews and ratings system
/api/reviews
Get reviews with filters
/api/reviews
Submit puzzle review
/api/reviews/[id]
Update user's review
/api/reviews/[id]
Delete user's review
Collections
Puzzle collections and curation
/api/collections
Get public collections
/api/collections
Create new collection
/api/collections/[id]
Get collection details
/api/collections/[id]/follow
Follow/unfollow collection
Media Upload
Image upload and management
/api/upload-photos
Upload puzzle progress photos
/api/upload-photos/[id]
Delete uploaded photo
Authentication
Clerk Integration
Puzzlr uses Clerk for authentication. All authenticated requests require a valid Clerk session token.
// Get auth token in your frontend
import { useAuth } from '@clerk/nextjs'
const { getToken } = useAuth()
const token = await getToken()
// Include in API requests
fetch('/api/puzzle-logs', {
headers: {
'Authorization': `Bearer ${token}`
}
})
Base URL
All API requests should be made to:
https://puzzlr.in/api/
Response Format
Success Response
{
"success": true,
"data": {
// Response data here
},
"pagination": {
"page": 1,
"limit": 20,
"total": 100
}
}
Error Response
{
"success": false,
"error": {
"message": "Error description",
"code": "ERROR_CODE",
"details": {}
}
}
Rate Limits & Guidelines
Rate Limits
- • Authenticated requests: 1000 requests/hour
- • Public endpoints: 100 requests/hour
- • File uploads: 50 uploads/hour
- • Bulk operations: 10 requests/minute
Best Practices
- • Cache responses when possible
- • Use pagination for large datasets
- • Handle rate limit responses gracefully
- • Respect data privacy and community guidelines
SDKs & Tools
JavaScript SDK
Official SDK for web applications
Coming SoonPostman Collection
Ready-to-use API collection
Coming SoonOpenAPI Spec
Machine-readable API specification
Coming SoonThese developer tools are currently in development.
Contact us for early access or specific API needsNeed Help with the API?
Our developer community and support team are here to help you build amazing puzzle applications.