API Overview
The Pintas.ai API allows developers to integrate with the platform programmatically.
Base URL
Section titled “Base URL”https://pintas.turbospark.my/apiOr your custom domain:
https://your-domain.com/apiAuthentication
Section titled “Authentication”Admin API endpoints require session authentication via Better Auth cookies.
Getting a Session
Section titled “Getting a Session”POST /api/auth/loginContent-Type: application/json
{ "email": "your@email.com", "password": "your-password"}The response includes session cookies for subsequent requests.
Response Format
Section titled “Response Format”All responses are JSON:
{ "data": { ... }, "error": null}Or on error:
{ "data": null, "error": "Error message"}Status Codes
Section titled “Status Codes”| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 429 | Rate Limited |
| 500 | Server Error |
Rate Limiting
Section titled “Rate Limiting”| Endpoint | Limit |
|---|---|
/api/auth/login | 5 per 15 min |
/api/auth/signup | 3 per hour |
| Other endpoints | 100 per minute |
When rate limited:
{ "error": "Too many requests. Please try again later."}Public vs Admin APIs
Section titled “Public vs Admin APIs”Public APIs
Section titled “Public APIs”No authentication required:
- Store pages
- Product listings
- Cart operations
Admin APIs
Section titled “Admin APIs”Session authentication required:
/api/admin/*- Dashboard data
- CRUD operations
Quick Examples
Section titled “Quick Examples”Health Check
Section titled “Health Check”curl https://pintas.turbospark.my/api/healthGet Store
Section titled “Get Store”curl https://pintas.turbospark.my/yourstorecurl -X POST https://pintas.turbospark.my/api/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"you@email.com","password":"pass"}'