{"success":true,"data":{"title":"Blue Pages v2 API Guide","version":"2.0.0","description":"Complete guide for using Blue Pages v2 Backend API","baseUrl":"https://worker-pdf.bluepages.com.sa","storage":"AWS S3","authentication":{"type":"JWT Bearer Token","header":"Authorization: Bearer <your-jwt-token>","note":"Authentication is handled externally. You need a valid JWT token."},"endpoints":{"health":{"method":"GET","path":"/health","description":"Check API health status","authentication":false,"example":"curl https://worker-pdf.bluepages.com.sa/health"},"guide":{"method":"GET","path":"/api/guide","description":"Get this API guide","authentication":false,"example":"curl https://worker-pdf.bluepages.com.sa/api/guide"},"directories":{"list":{"method":"GET","path":"/api/directories","description":"Get all directories with pagination","authentication":true,"parameters":{"page":"Page number (default: 1)","limit":"Items per page (default: 10)","search":"Search by name (optional)"},"example":"curl -H \"Authorization: Bearer <token>\" \"https://worker-pdf.bluepages.com.sa/api/directories?page=1&limit=10\""},"getById":{"method":"GET","path":"/api/directories/:id","description":"Get directory by ID","authentication":true,"example":"curl -H \"Authorization: Bearer <token>\" \"https://worker-pdf.bluepages.com.sa/api/directories/1\""},"create":{"method":"POST","path":"/api/directories","description":"Create new directory with PDF upload","authentication":true,"contentType":"multipart/form-data","fields":{"name":"Directory name (required)","cityId":"City ID (required)","year":"Year (required)","pdf":"PDF file (required, max 50MB)"},"example":"curl -X POST -H \"Authorization: Bearer <token>\" \\\n  -F \"name=My Directory\" \\\n  -F \"cityId=1\" \\\n  -F \"year=2024\" \\\n  -F \"pdf=@/path/to/file.pdf\" \\\n  \"https://worker-pdf.bluepages.com.sa/api/directories\""},"update":{"method":"PUT","path":"/api/directories/:id","description":"Update directory","authentication":true,"contentType":"multipart/form-data","example":"curl -X PUT -H \"Authorization: Bearer <token>\" \\\n  -F \"name=Updated Name\" \\\n  -F \"pdf=@/path/to/new-file.pdf\" \\\n  \"https://worker-pdf.bluepages.com.sa/api/directories/1\""},"delete":{"method":"DELETE","path":"/api/directories/:id","description":"Delete directory and all its pages","authentication":true,"example":"curl -X DELETE -H \"Authorization: Bearer <token>\" \"https://worker-pdf.bluepages.com.sa/api/directories/1\""}},"pages":{"list":{"method":"GET","path":"/api/pages","description":"Get all pages with pagination","authentication":true,"parameters":{"page":"Page number (default: 1)","limit":"Items per page (default: 10)","directoryId":"Filter by directory ID (optional)"},"example":"curl -H \"Authorization: Bearer <token>\" \"https://worker-pdf.bluepages.com.sa/api/pages?directoryId=1&page=1&limit=5\""},"getById":{"method":"GET","path":"/api/pages/:id","description":"Get page by ID","authentication":true,"example":"curl -H \"Authorization: Bearer <token>\" \"https://worker-pdf.bluepages.com.sa/api/pages/1\""},"upload":{"method":"POST","path":"/api/pages","description":"Upload single page image","authentication":true,"contentType":"multipart/form-data","fields":{"directoryId":"Directory ID (required)","pageIndex":"Page index/number (required)","image":"Image file (required, jpg/png/webp, max 10MB)"},"example":"curl -X POST -H \"Authorization: Bearer <token>\" \\\n  -F \"directoryId=1\" \\\n  -F \"pageIndex=1\" \\\n  -F \"image=@/path/to/page.jpg\" \\\n  \"https://worker-pdf.bluepages.com.sa/api/pages\""},"delete":{"method":"DELETE","path":"/api/pages/:id","description":"Delete page","authentication":true,"example":"curl -X DELETE -H \"Authorization: Bearer <token>\" \"https://worker-pdf.bluepages.com.sa/api/pages/1\""}},"converter":{"start":{"method":"POST","path":"/api/converter/start","description":"Start PDF to images conversion","authentication":true,"body":{"pdfUrl":"PDF file URL (required)","pdfKey":"PDF storage key (required)","directoryId":"Directory ID (required)","options":{"imageFormat":"Output format: jpg, png, webp (default: jpg)","quality":"Image quality: 1-100 (default: 95)","dpi":"Resolution: 72-600 (default: 300)"}},"example":"curl -X POST -H \"Authorization: Bearer <token>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"pdfUrl\": \"https://example.com/file.pdf\",\n    \"pdfKey\": \"directories/1/directory.pdf\",\n    \"directoryId\": 1,\n    \"options\": {\n      \"imageFormat\": \"jpg\",\n      \"quality\": 95,\n      \"dpi\": 300\n    }\n  }' \\\n  \"https://worker-pdf.bluepages.com.sa/api/converter/start\""},"status":{"method":"GET","path":"/api/converter/status/:taskId","description":"Get conversion task status","authentication":true,"example":"curl -H \"Authorization: Bearer <token>\" \"https://worker-pdf.bluepages.com.sa/api/converter/status/task-uuid\""},"list":{"method":"GET","path":"/api/converter/tasks","description":"Get all conversion tasks","authentication":true,"example":"curl -H \"Authorization: Bearer <token>\" \"https://worker-pdf.bluepages.com.sa/api/converter/tasks\""}}},"responseFormats":{"success":{"structure":{"success":true,"data":"Response data object or array","pagination":"Pagination info (for list endpoints)"},"example":{"success":true,"data":{"id":1,"name":"Example Directory","totalPages":10}}},"error":{"structure":{"success":false,"error":{"code":"ERROR_CODE","message":"Human readable error message"}},"example":{"success":false,"error":{"code":"VALIDATION_ERROR","message":"Directory name is required"}}}},"statusCodes":{"200":"Success","201":"Created successfully","400":"Bad Request - Validation error","401":"Unauthorized - Invalid or missing token","403":"Forbidden - Access denied","404":"Not Found - Resource not found","429":"Too Many Requests - Rate limit exceeded","500":"Internal Server Error"},"rateLimits":{"general":"100 requests per 15 minutes per IP","uploads":"10 uploads per hour per IP","conversions":"5 conversions per hour per IP"},"fileConstraints":{"pdf":{"maxSize":"50MB","allowedTypes":["application/pdf"]},"images":{"maxSize":"10MB","allowedTypes":["image/jpeg","image/png","image/webp"]}},"examples":{"quickStart":"# 1. Get API Guide\ncurl https://worker-pdf.bluepages.com.sa/api/guide\n\n# 2. Check Health\ncurl https://worker-pdf.bluepages.com.sa/health\n\n# 3. List Directories (needs token)\ncurl -H \"Authorization: Bearer YOUR_TOKEN\" \"https://worker-pdf.bluepages.com.sa/api/directories\"\n\n# 4. Create Directory (needs token)\ncurl -X POST -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -F \"name=Test Directory\" \\\n  -F \"cityId=1\" \\\n  -F \"year=2024\" \\\n  -F \"pdf=@example.pdf\" \\\n  \"https://worker-pdf.bluepages.com.sa/api/directories\""},"support":{"documentation":"https://github.com/Youssef-Alshwawra/bluepages-server-v2","issues":"https://github.com/Youssef-Alshwawra/bluepages-server-v2/issues","version":"2.0.0"}}}