Skip to content

Where this run's tracts were placed

GET
/v1/runs/{reference}/placements
curl --request GET \
--url https://example.com/v1/runs/example/placements \
--header 'Authorization: Bearer <token>'

The positions an operator saved, document then tract order.

An empty list means the run exists and nobody has put it on a map yet, which is the ordinary case: extraction and placement are two acts, and plenty of documents are read without ever being located.

reference
required
Reference
string

Successful Response

Media typeapplication/json
PlacementListResponse

Every position this run has, in tract order.

Empty means the run exists and nothing has been placed yet, which is the same answer a run whose tracts were never put on a map should give.

object
reference
required
Reference
string
placements
required
Placements
Array<object>
PlacedTract

One tract’s position on the earth, as both the wire and the table carry it.

The bounds are the point of the model. A longitude of 200 is not a place, and a rotation of 4,000 degrees is a client that forgot to take a modulus, so both are refused at the edge rather than stored and puzzled over later.

object
document
Document

The document this tract came from.

string
""
tract_index
required
Tract Index

Which tract of the document, by its index.

integer
lon
required
Lon

WGS 84 longitude of the point of beginning.

number
>= -180 <= 180
lat
required
Lat

WGS 84 latitude of the point of beginning.

number
>= -90 <= 90
rotation_deg
Rotation Deg

Clockwise from north, as the placement tool reports it.

number
0 >= -360 <= 360
Example
{
"placements": [
{
"lat": 36.0726,
"lon": -80.2442,
"rotation_deg": 0,
"tract_index": 0
}
],
"reference": "job_1a2b3c"
}

Missing, unknown, or revoked API key

Media typeapplication/json
ErrorResponse
object
error
required
ErrorDetail
object
type
required
Type
string
message
required
Message
string
key
additional properties
any
Example
{
"error": {
"documents_used": 200,
"message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.",
"monthly_cap": 200,
"resets_on": "2026-08-01",
"type": "quota_exceeded"
}
}

No such resource under this caller

Media typeapplication/json
ErrorResponse
object
error
required
ErrorDetail
object
type
required
Type
string
message
required
Message
string
key
additional properties
any
Example
{
"error": {
"documents_used": 200,
"message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.",
"monthly_cap": 200,
"resets_on": "2026-08-01",
"type": "quota_exceeded"
}
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}

Extraction temporarily unavailable

Media typeapplication/json
ErrorResponse
object
error
required
ErrorDetail
object
type
required
Type
string
message
required
Message
string
key
additional properties
any
Example
{
"error": {
"documents_used": 200,
"message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.",
"monthly_cap": 200,
"resets_on": "2026-08-01",
"type": "quota_exceeded"
}
}