Skip to content

Blocks that can reach many POIs

POST
/v1/pois/catchment

Every census block within reach of each of many POIs and its travel time, one row per (POI, block, mode). This is the batch form of GET /v1/pois/{dest_id}/catchment. Each row carries its origin dest_id.

CatchmentBatch
object
block
Any of:
Array<integer>
dest_ids
required
Dest Ids

POI destination ids (1-250)

Array<integer>
max_minutes
Any of:
number
<= 30
mode
Any of:
Array<string>
Example
{
"dest_ids": [
4181,
4182
],
"max_minutes": 10,
"mode": [
"walk"
]
}

Successful Response

BatchCatchmentResponse

POST /v1/pois/catchment (routers.batch.poi_catchment_batch)

object
errors
required
Errors
Array<object>
OriginError

One origin that could not be resolved in a batch call. Extra members carry the origin key: geoid (blocks), origin_lat/origin_lon (points), or dest_id (catchment). (routers.batch)

object
detail
required
Detail
string
type
required
Type

Error slug: block-not-found, no-block-data, point-not-covered, or poi-not-found

string
key
additional properties
any
results
required
Results
Array<object>
BatchCatchmentResult

A catchment row tagged with its origin POI. (routers.batch)

object
dest_id
required
Dest Id

Origin POI destination id

integer
geoid
required
Geoid
string
mode
required
Mode
string
travel_time
required
Travel Time

Minutes, 1 decimal

number
truncated
required
Truncated

Dest_ids skipped once the row budget was spent

Array<integer>
truncated_reason
Any of:
string
Example
{
"errors": [],
"results": [
{
"dest_id": 4181,
"geoid": "410390020001010",
"mode": "walk",
"travel_time": 8
}
],
"truncated": [],
"truncated_reason": null
}

Invalid request (e.g. invalid-parameters, invalid-cursor, invalid-bbox, missing-location, missing-area, invalid-geometry, polygon-too-complex, missing-origins, too-many-origins)

ValidationProblem

400 invalid-parameters, carrying the offending fields. (core.problems, RequestValidationError handler)

object
detail
Any of:
string
errors
Any of:
Array<object>
ValidationErrorItem
object
loc
required
Loc
Array
msg
required
Msg
string
type
required
Type
string
status
required
Status
integer
title
required
Title
string
type
required
Type

Problem type URI; the final path segment is the stable slug

string
key
additional properties
any

Missing or invalid API key (missing-key, invalid-key)

Problem

RFC 9457 problem detail. Served as application/problem+json. Additional members appear for some problem types (e.g. errors). (core.problems.problem)

object
detail
Any of:
string
status
required
Status
integer
title
required
Title
string
type
required
Type

Problem type URI; the final path segment is the stable slug

string
key
additional properties
any

Key disabled (account-disabled)

Problem

RFC 9457 problem detail. Served as application/problem+json. Additional members appear for some problem types (e.g. errors). (core.problems.problem)

object
detail
Any of:
string
status
required
Status
integer
title
required
Title
string
type
required
Type

Problem type URI; the final path segment is the stable slug

string
key
additional properties
any

Rate limited or token balance exhausted (rate-limited, tokens-exhausted); sets Retry-After

Problem

RFC 9457 problem detail. Served as application/problem+json. Additional members appear for some problem types (e.g. errors). (core.problems.problem)

object
detail
Any of:
string
status
required
Status
integer
title
required
Title
string
type
required
Type

Problem type URI; the final path segment is the stable slug

string
key
additional properties
any

Backend temporarily unavailable (debit-unavailable, store-unavailable); may set Retry-After

Problem

RFC 9457 problem detail. Served as application/problem+json. Additional members appear for some problem types (e.g. errors). (core.problems.problem)

object
detail
Any of:
string
status
required
Status
integer
title
required
Title
string
type
required
Type

Problem type URI; the final path segment is the stable slug

string
key
additional properties
any