{"async_workflow":{"concurrency_limit":4,"poll":{"failed_example":{"error":{"message":"error summary"},"job_id":"...","status":"failed"},"method":"GET","path":"/soiling-simulation/jobs/<job_id>","query_params":{"plot":"Optional. Set to \"true\" or \"1\" to get PNG plot instead of JSON (only for succeeded jobs)"},"running_example":{"job_id":"...","progress":{"processed_days":4,"total_days":10},"status":"running"},"success_example":{"job_id":"...","result":{"data":"[list of daily records with soiling_loss]","date_range":"...","location":"..."},"status":"succeeded"}},"retention_seconds":86400,"submit":{"method":"POST","params":["lat","lon","start_date","end_date"],"path":"/soiling-simulation/jobs","response_202":{"job_id":"UUID","poll_url":"/soiling-simulation/jobs/<job_id>","status":"queued"}}},"deprecation":{"message":"Use the async job workflow. This endpoint will be removed in a future release.","synchronous_endpoint":"/soiling-simulation"},"description":"REST API for simulating soiling accumulation on solar panels using spatial-temporal interpolation","endpoints":{"/":"This information page","/health":"Health check endpoint","/soiling-simulation":"Synchronous deprecated endpoint (will be removed)","/soiling-simulation/jobs":"Submit (POST) or GET with query params to create an async soiling simulation job","/soiling-simulation/jobs/<job_id>":"Poll job status or retrieve result when completed (GET), cancel (DELETE)","/soiling-simulation/legacy":"Legacy fallback (deprecated)","DELETE /soiling-simulation/jobs/<job_id>":"Request cancellation of a queued or running job"},"examples":{"poll_json_curl":"curl 'http://localhost:5000/soiling-simulation/jobs/<job_id>'","poll_plot_curl":"curl 'http://localhost:5000/soiling-simulation/jobs/<job_id>?plot=true' -o simulation.png","submit_curl":"curl -X POST 'http://localhost:5000/soiling-simulation/jobs?lat=39&lon=-98&start_date=2019-01-01&end_date=2019-01-05'"},"service":"Solar Panel Soiling Simulator","validation_rules":{"coverage_end":"2025-07-31","coverage_start":"2019-01-01","date_range_limit_days":3650,"lat":"Numeric -90 to 90","lon":"Numeric -180 to 180"}}
