Download OpenAPI specification:
REST API for running water resources simulations (SWMM, EPANET, HEC-RAS) on demand.
All endpoints except /, /health, and /openapi.yaml require a Bearer token in the Authorization header:
Authorization: Bearer <token>
Visit https://aip.neer.ai/user/keys or https://aip.neer.ai/teams/
Returns basic information about the API, including documentation links and available endpoints
{- "name": "Water Resources Modeling API",
- "version": "1.0.0",
- "contact": {
- "name": "NEER",
- "email": "support@neer.ai"
}, - "endpoints": {
- "health": "/health",
- "simulations": "/simulations"
}
}Retrieves a list of simulations accessible to the authenticated user or team. Results can be filtered by simulation type.
| type | string (SimulationType) Enum: "swmm" "epanet" "hec_ras" Example: type=swmm Filter by simulation type |
[- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "user_id": "usr-123",
- "team_id": "team-456",
- "project_id": "proj-789",
- "label": "Storm water analysis",
- "type": "swmm",
- "version": "5.2.4",
- "context": {
- "rainfall": 100,
- "duration": 24
}, - "status": "pending",
- "created_at": "2026-01-17T10:30:00Z",
- "started_at": "2026-01-17T10:31:00Z",
- "ended_at": "2026-01-17T10:35:00Z"
}
]Creates a new simulation and submits it for execution.
An additional hec_ras_plan_number field is required for HEC-RAS simulations.
Choose your content type based on your input method:
application/json - For remote files (HTTPS or S3 URIs)
input_file_uri fieldmultipart/form-data - For local file uploads
file fieldInput file methods:
https://example.com/models/stormwater.inps3://my-bucket/models/project.zip| type required | string (SimulationType) Enum: "swmm" "epanet" "hec_ras" Type of water resources simulation:
|
| label | string Human-readable label for the simulation |
| input_file_uri | string <uri> URI to the input file. Supported schemes:
If omitted and using multipart/form-data, a file can be uploaded directly. |
| hec_ras_plan_number | string HEC-RAS plan number to execute. Required when |
{- "type": "swmm",
- "label": "Storm water analysis - HTTPS",
}{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "user_id": "usr-123",
- "team_id": "team-456",
- "project_id": "proj-789",
- "label": "Storm water analysis",
- "type": "swmm",
- "version": "5.2.4",
- "context": {
- "rainfall": 100,
- "duration": 24
}, - "status": "pending",
- "created_at": "2026-01-17T10:30:00Z",
- "started_at": "2026-01-17T10:31:00Z",
- "ended_at": "2026-01-17T10:35:00Z"
}Retrieves detailed information about a specific simulation
| id required | string <uuid> Example: 550e8400-e29b-41d4-a716-446655440000 Simulation ID (UUID) |
{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "user_id": "usr-123",
- "team_id": null,
- "project_id": "proj-456",
- "label": "Storm water analysis",
- "type": "swmm",
- "version": "5.2.4",
- "context": {
- "rainfall": 100,
- "duration": 24
}, - "status": "running",
- "created_at": "2026-01-17T10:30:00Z",
- "started_at": "2026-01-17T10:31:00Z",
- "ended_at": null
}Re-runs an existing simulation with updated parameters or a new input file. Only the simulation owner (user or team) can update it.
| id required | string <uuid> Simulation ID (UUID) |
| type required | string (SimulationType) Enum: "swmm" "epanet" "hec_ras" Type of water resources simulation:
|
| label | string Human-readable label for the simulation |
| input_file_uri | string <uri> URI to the input file. Supported schemes:
If omitted and using multipart/form-data, a file can be uploaded directly. |
| hec_ras_plan_number | string HEC-RAS plan number to execute. Required when |
{- "type": "swmm",
- "label": "Storm water runoff analysis - January 2026",
- "input_file_uri": "s3://neeraip-simulations-dev/input/model.inp",
- "hec_ras_plan_number": "01"
}{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "user_id": "usr-123",
- "team_id": "team-456",
- "project_id": "proj-789",
- "label": "Storm water analysis",
- "type": "swmm",
- "version": "5.2.4",
- "context": {
- "rainfall": 100,
- "duration": 24
}, - "status": "pending",
- "created_at": "2026-01-17T10:30:00Z",
- "started_at": "2026-01-17T10:31:00Z",
- "ended_at": "2026-01-17T10:35:00Z"
}Retrieves all files associated with a simulation, including input files, output files, reports, and other simulation artifacts.
| id required | string <uuid> Example: 550e8400-e29b-41d4-a716-446655440000 Simulation ID (UUID) |
[- {
- "id": "file-001",
- "simulation_id": "550e8400-e29b-41d4-a716-446655440000",
- "type": "input",
- "uri": "s3://my-bucket/swmm/550e8400-e29b-41d4-a716-446655440000/input.inp",
- "size": 45000,
- "created_at": "2026-01-17T10:30:00Z"
}, - {
- "id": "file-002",
- "simulation_id": "550e8400-e29b-41d4-a716-446655440000",
- "type": "output",
- "uri": "s3://my-bucket/swmm/550e8400-e29b-41d4-a716-446655440000/output.out",
- "size": 120000,
- "created_at": "2026-01-17T10:35:00Z"
}, - {
- "id": "file-003",
- "simulation_id": "550e8400-e29b-41d4-a716-446655440000",
- "type": "auxiliary",
- "auxiliary": "rainfall",
- "uri": "s3://my-bucket/swmm/550e8400-e29b-41d4-a716-446655440000/sta15314.dat",
- "size": 30000,
- "created_at": "2026-01-17T10:36:00Z"
}
]Downloads all files associated with a simulation as a single ZIP archive. Files that cannot be retrieved are silently skipped.
| id required | string <uuid> Example: 550e8400-e29b-41d4-a716-446655440000 Simulation ID (UUID) |
{- "error": "missing authorization header"
}Retrieves logs for a simulation with pagination and sorting support. By default, logs are ordered by timestamp in descending order (newest first).
| id required | string <uuid> Example: 550e8400-e29b-41d4-a716-446655440000 Simulation ID (UUID) |
| limit | integer [ 1 .. 500 ] Default: 50 Example: limit=25 Maximum number of logs to return (default 50, max 500) |
| offset | integer >= 0 Default: 0 Number of logs to skip for pagination (default 0) |
| sort | string Default: "desc" Enum: "asc" "desc" "ascending" "descending" Example: sort=desc Sort order by timestamp (default desc for newest first) |
{- "logs": [
- {
- "simulation_id": "550e8400-e29b-41d4-a716-446655440000",
- "timestamp": "2026-01-17T10:35:00Z",
- "message": "Simulation completed successfully"
}, - {
- "simulation_id": "550e8400-e29b-41d4-a716-446655440000",
- "timestamp": "2026-01-17T10:34:30Z",
- "message": "Running SWMM simulation"
}, - {
- "simulation_id": "550e8400-e29b-41d4-a716-446655440000",
- "timestamp": "2026-01-17T10:31:00Z",
- "message": "Simulation started"
}
], - "total": 15,
- "limit": 25,
- "offset": 0,
- "has_more": false
}