Back to app

Coral classifier API

Base URL for local development: http://localhost:5001. All paths below are appended to that base (for example, http://localhost:5001/V1/api/health).

MethodRouteExpected response
GET/V1/api/health200 — JSON: { status: 'success' }
GET/V1/api/status/{JOB_ID}200 — JSON: { status, completed_chunks, total_chunks, remaining_chunks, progress, result_image?, chunks? }
POST/V1/api/classify200 — JSON: { job_id: 1052 } (example job ID)
DELETE/V1/api/classify/{JOB_ID}200 — JSON: { status: 'success' }

Definitions (mobile)

GET /V1/api/health

Returns whether the service is running and responding. Use this for readiness or uptime checks.

GET /V1/api/status/{JOB_ID}

Returns the real chunk-analysis progress for JOB_ID. When complete, the same response includes the stitched coloured result image as a base64 PNG plus metadata for each analysed chunk.

POST /V1/api/classify

Upload an image (multipart form field name: image). The server queues classification, splits images larger than 244x244 into chunks, and responds immediately with a job ID. Poll GET /V1/api/status/{JOB_ID} until status is completed.

DELETE /V1/api/classify/{JOB_ID}

Cancels and removes the job for JOB_ID. Use this if the client no longer needs the result or is abandoning the upload flow.

Status response

Progress is returned as analysed chunks out of total chunks. The final completed response also includes the stitched coloured PNG inresult_image.

{
  "status": "processing",
  "completed_chunks": 3,
  "total_chunks": 10,
  "remaining_chunks": 7,
  "progress": "3/10"
}
{
  "status": "completed",
  "completed_chunks": 10,
  "total_chunks": 10,
  "remaining_chunks": 0,
  "progress": "10/10",
  "result_image": "data:image/png;base64,...",
  "summary": {
    "bleached_chunks": 4,
    "healthy_chunks": 6,
    "total_chunks": 10
  },
  "chunks": [
    {
      "x": 0,
      "y": 0,
      "width": 244,
      "height": 244,
      "probability": 0.82,
      "predicted_label": "Bleached Coral"
    }
  ]
}

Training data

The model is trained on imagery from the NOAA PIFSC ESD coral bleaching dataset.

Github and model downloads

The github repository for this project is located at Github Repository.

The model downloads for the ai models are located at Model Downloads.