# Etuovi Autocomplete API Documentation

<p><strong>Etuovi Autocomplete API</strong> turns text into ranked Finnish places: cities, districts, postcodes and regions. Each result has a <code>type</code> and a <code>code</code>. Pass both to the search route as <code>location_type</code> and <code>location_code</code>. Never invent codes: an invented code returns no results. A result with <code>searchable</code> false cannot be used as a search location. An empty list is a valid answer and is billed.</p>

- **Documentation:** [https://scrappa.co/docs/etuovi-api/etuovi_autocomplete](https://scrappa.co/docs/etuovi-api/etuovi_autocomplete)
- **API group:** Etuovi API
- **Endpoint:** `GET https://scrappa.co/api/etuovi/autocomplete`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `query` | string | Yes | Search text, 2 to 100 characters. Example: Tampere. |

## Example response

```json
{
    "data": {
        "query": "Tamp",
        "results": [
            {
                "geo": {
                    "lat": 61.498336,
                    "lng": 23.769304
                },
                "code": "FI_PIRKANMAA_TAMPERE",
                "name": "Tampere",
                "type": "CITY",
                "region": {
                    "code": "FI_PIRKANMAA",
                    "name": "Pirkanmaa"
                },
                "full_name": "Tampere",
                "searchable": true,
                "municipality": {
                    "code": null,
                    "name": null
                }
            },
            {
                "geo": {
                    "lat": 61.482627,
                    "lng": 23.829865
                },
                "code": "FI_PIRKANMAA_TAMPERE_AAKKULA",
                "name": "Aakkula",
                "type": "DISTRICT",
                "region": {
                    "code": "FI_PIRKANMAA",
                    "name": "Pirkanmaa"
                },
                "full_name": "Aakkula, Tampere",
                "searchable": true,
                "municipality": {
                    "code": "FI_PIRKANMAA_TAMPERE",
                    "name": "Tampere"
                }
            },
            {
                "geo": {
                    "lat": 61.514361,
                    "lng": 23.920749
                },
                "code": "FI_PIRKANMAA_TAMPERE_AHOLA",
                "name": "Ahola",
                "type": "DISTRICT",
                "region": {
                    "code": "FI_PIRKANMAA",
                    "name": "Pirkanmaa"
                },
                "full_name": "Ahola, Tampere",
                "searchable": true,
                "municipality": {
                    "code": "FI_PIRKANMAA_TAMPERE",
                    "name": "Tampere"
                }
            }
        ]
    },
    "meta": {
        "billable": true,
        "endpoint_family": "autocomplete"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required parameter or a value is invalid. This response is not billable. |
| 503 | Upstream Unavailable | Etuovi could not be reached or returned data that does not match the request. This response is not billable and is retryable. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
