# List DFW civic-data research coverage

`GET /api/v1/public/coverage` - [human page](https://aicdapi.com/api-reference#listDfwResearchCoverage)

**Release status.** Available

Returns dated source-discovery evidence for 238 active municipalities and 16 counties in the NCTCOG region. Inactive Mustang is omitted unless `includeInactive=true`. M/D/P/R/U/N statuses apply only to the named data subtype. They do not prove full-family coverage, current completeness, reuse permission or production ingestion. Cursors are bound to the catalog version and all filters.

**Authentication.** No credentials. This endpoint is public.

### Parameters

| Field | Type | Required | Bounds | Description |
| --- | --- | --- | --- | --- |
| `query jurisdictionSlug` | string | no | length 1..80 | Exact jurisdiction slug, such as `dallas` or `dallas-county`. |
| `query county` | one of 16 values | no |  | One of the 16 lowercase DFW county slugs, such as `tarrant`. |
| `query family` | one of 21 values | no |  | Fully qualified family ID, such as `city.permits` or `county.property_tax`. |
| `query includeInactive` | boolean | no | default `false` | Set to true to include inactive Mustang. The default is false. |
| `query limit` | integer | no | >= 1, <= 20, default `20` | Maximum jurisdictions per page. The small cap bounds source-evidence text. |
| `query cursor` | string | no | length 1..4096 | Opaque cursor from the prior page. Use it with the same filters and limit. |

### Example request

```bash
curl -X GET 'https://aicdapi.com/api/v1/public/coverage'
```

### Response 200

Dated research evidence and gaps. This is not an ingestion-health response.

| Field | Type | Required | Bounds | Description |
| --- | --- | --- | --- | --- |
| `data` | object[] | yes | max 20 items |  |
| `meta` | object | yes |  |  |
| `meta.catalogVersion` | string | yes | pattern ^\\d{4}-\\d{2}-\\d{2}\\.[a-f0-9]{12}$ |  |
| `meta.researchDate` | string (date) | yes |  |  |
| `meta.ingestionVerified` | boolean | yes |  |  |
| `meta.statusDefinitions` | object | yes |  |  |
| `meta.scope` | object | yes |  |  |
| `meta.pagination` | object | yes |  |  |

### Errors

| Status | `error.code` | Description |
| --- | --- | --- |
| **400** | `invalid_parameter` | A path or query parameter is invalid or unsupported. |
| **429** | `rate_limited` | More than 120 requests were made by this client IP in 60 seconds. |
| **500** | `internal_error` | The request could not be completed because of an internal error. |

### Behaviour

- **Pagination.** Offset cursor pagination, 1 to 20 items per page with a default of 20. The cursor is invalidated by any filter change and by a new catalog version.
- **Limits.** 120 requests per 60 seconds per client IP, counted separately for each public endpoint and keyed on the first X-Forwarded-For entry. The allowance is not shared between public endpoints: exhausting one leaves the others available. If the limiter's own store fails, the request is allowed through rather than refused.
- **Retry-After.** Sent on 429 only, as whole seconds.
