---
title: "Get a mob"
method: GET
path: "/mobs/{id}"
tags: ["Mobs"]
---

# Get a mob

`GET /mobs/{id}`

## Request

- Base URL: `https://api.purplegrain.com/api/v1`
- URL: `https://api.purplegrain.com/api/v1/mobs/{id}`
- Auth: one of:
  - none
  - HTTP bearer

One mob: its name, `head_count`, archive state, diary counters
(`record_count`, `open_task_count`), and `current_paddock_id` — the
paddock the mob is in now, derived from its newest completed record that
names a destination, and null while it has never been placed. Resolve
the paddock with `getPaddock` or `listPaddocks`. The owning property is
the `farm` relationship.

Move the mob with `moveMob`. Everything filed on it — the property, its
current paddock, and its tasks and records — is `listAssetResources`
with `asset_type=mob`. The task board alone is `listTasks` with
`asset_id`. Any accepted member of the owning organization can read; a
personal property is its owner's. `withholding` is the meat withholding
period and the export slaughter interval still ahead, from the mob's
completed treatment and husbandry records, or null when the mob is clear.
The same fact for every asset on the property is `getFarmStatus`.

## Path parameters

- `id` string, required

## Query parameters

- `include` string

## Response `200`

Successful

- MobsShowResponseAttributes
  - `data` MobModelAttributes: Single mob in attributes-adapter shape (Accept application/json).
    - `id` string
    - `type` string
    - `slug` string: Unique within its parent (a property per owner; a paddock or mob per property); generated from the name and renamed with it. The old slug keeps resolving. See `resolveLink`.
    - `web_path` string: The address on the web. Present when read directly.
    - `url` string: The whole link; carries the property's `?share=` token when it is shared by link. Present when read directly.
    - `name` string
    - `head_count` integer, nullable: How many head are in the mob, as a number — never a display string. Null is a real state.
    - `withholding` object, nullable: Is the mob under a withholding period or export slaughter interval right now? The latest drench record whose safe-for-slaughter or export date is still ahead, or null. **Derived, not stored.** Read-only.
      - `task_id` string
      - `record_id` string: The DrenchRecord id.
      - `safe_for_slaughter_on` string, date, nullable
      - `export_eligible_on` string, date, nullable
      - `products` string[]
    - `current_paddock_id` string, nullable: Where the mob is right now, derived from the most recent completed record carrying a destination (see `MobModel`). Read-only — move a mob with `moveMob`.
    - `archived` boolean: An archived mob leaves the map and the lists; its records stay on the property.
    - `archived_at` string, date-time, nullable
    - `record_count` integer: Completed rows on this mob — its diary.
    - `open_task_count` integer: Pending rows on this mob.
    - `last_record_at` string, date-time, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `farm` object: Present when include=farm
  - `meta` PaginationMeta
    - `current_page` number
    - `next_page` number, nullable
    - `prev_page` number, nullable

## Other responses

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

---

[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/4bedbc1c784c?raw)
