# API Reference

Aurora GIS provides a comprehensive RESTful API for programmatic access to datasets, analysis tools, and system functionality.

## API Overview

The API is organized into several sections:

- **Basic API**: Dataset listing, details, and GeoJSON queries
- **Server API**: Server information and capabilities
- **Images API**: GeoServer proxy and catalog access
- **Analysis APIs**: Endpoints for running spatial analysis
- **Worker APIs**: Background job management
- **Dataset APIs**: Dataset-specific operations

## Authentication

Most API endpoints require authentication. Authentication is handled via:

- **Session-based**: For web interface requests
- **API Key**: (Optional, if configured)

Unauthenticated requests return `401 Unauthorized`.

Some endpoints support public access for datasets marked as public.

## Base URLs

- **Basic API**: `/api/basic/index.php`
- **Server API**: `/api/server/index.php`
- **Images API**: `/api/images/index.php`
- **Main API**: `/api.php`
- **Dataset APIs**: `/api/datasets/`
- **Analysis APIs**: `/api/analysis/`

## Response Format

All API responses are in JSON format:

```json
{
  "success": true,
  "data": { ... },
  "error": null
}
```

Error responses:

```json
{
  "success": false,
  "error": "Error message",
  "status": 400
}
```

## API Endpoints

```{toctree}
:maxdepth: 2

datasets
analysis
jobs
images
server
```

## Rate Limiting

API requests are subject to rate limiting to ensure system stability. Contact the administrator for rate limit information.

## Related Documentation

- [Architecture Overview](../architecture.md)
- [Analysis Tools](../analysis-tools/index.md)
- [Workers](../workers/index.md)

