---
title: "List parcels attached to a property"
method: GET
path: "/properties/{property_id}/parcels"
tags: ["Properties"]
---

# List parcels attached to a property

`GET /properties/{property_id}/parcels`

## Request

- Base URL: `https://api.purplegrain.com/api/v1`
- URL: `https://api.purplegrain.com/api/v1/properties/{property_id}/parcels`
- Auth: HTTP bearer

The cadastral parcels stored on this property, each with its external_id and GeoJSON geometry.
Plain JSON. Needs read access to the property's records. Not on a public or link share.

## Path parameters

- `property_id` string, required

## Response `200`

The parcels attached to the property.

- PropertyParcelsResponse
  - `property_id` string, uuid, required
  - `parcels` Parcel[], required
    - `id` string, uuid, nullable: Present once the parcel is stored on the property. Omitted on a search candidate.
    - `external_id` string, required: The cadastral id from that state's parcel service. NSW lot/DP, a Vicmap SPI, a Queensland lotplan, or a Tasmanian PID.
    - `state` 'NSW' | 'VIC' | 'QLD' | 'SA' | 'WA' | 'TAS' | 'NT' | 'ACT', nullable
    - `source` string, nullable: Which public service the geometry came from. nsw_spatial, vicmap_parcel, qld_dcdb or tas_list.
    - `lot` string, nullable
    - `plan` string, nullable
    - `lot_plan` string, nullable: Lot and plan as one label, when the service provides them.
    - `area_ha` number, nullable: Area in hectares, from the parcel service when it publishes one.
    - `geometry` ParcelGeometry, required: GeoJSON in WGS84, longitude first. A Polygon, or a MultiPolygon when the parcel has more than one part. Holes are not stored.
      - `type` 'Polygon' | 'MultiPolygon', required
      - `coordinates` unknown[], required
        - unknown
  - `_meta` OnboardingMeta
    - `onboarding` Onboarding: Where the account in scope is in setting up a farm. A suggestion: reads are never refused because a step is missing. `next_step` is null once every step is done.
      - `status` 'not_started' | 'in_progress' | 'complete'
      - `completed_steps` string[]
      - `next_step` 'create_team' | 'create_property' | 'map_boundaries' | 'map_paddocks' | 'create_blocks' | 'add_mobs' | 'first_record', nullable
      - `skill` string
      - `skill_url` string
      - `agent_hint` string: Plain-language instruction, including a short fallback the agent can follow without the skill.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found

## Changes

- **2026-10-24** `e285768a8f1d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/purplegrain/apis/purple-grain-api/changes/properties/:property_id/parcels/get.md)

---

[API](https://skmtc.dev/purplegrain/apis/purple-grain-api.md) - [All operations](https://skmtc.dev/purplegrain/apis/purple-grain-api/llms.txt) - [OpenAPI document](https://skmtc.dev/purplegrain/apis/purple-grain-api/revisions/e32f34ba218b?raw)
