# Seeding Rate API
> Planting seed-rate maths as an API, computed locally and deterministically — the plant-population, seed-spacing and seeding-rate numbers a farmer, agronomist or precision-ag tool sets a planter or drill to. The population endpoint gives the plants per acre = 6,272,640 ÷ (row spacing × in-row seed spacing) in inches (the 6,272,640 is the square inches in an acre), so 30-inch rows with seeds 6 inches apart give about 34,800 plants per acre — closer spacing raises the population and the competition. The seed-spacing endpoint runs it the other way: the in-row spacing for a target population = 6,272,640 ÷ (target plants × row spacing), so 35,000 plants per acre in 30-inch rows means a seed about every 6 inches, the value to set on a singulating meter or seed-rate drive. The seeding-rate endpoint gives the pounds of seed per acre = the target population ÷ the germination rate ÷ the seeds per pound, over-seeding for the seeds that never come up — 35,000 plants of a 1,500-seeds-per-lb crop at 95 % germination needs about 24.6 lb/acre, working from the seed lot's own tag. Everything is computed locally and deterministically, so it is instant and private. Ideal for precision-ag and farm-management tools, planter-calibration and agronomy apps, and seed-retail utilities. Pure local computation — no key, no third-party service, instant. US units. 3 compute endpoints. For sprayer rates use a spray API; for fertiliser a fertilizer API.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/seedrate-api/..."
```

## Pricing
- **Free** (Free) — 7,350 calls/Mo, 2 req/s
- **Starter** ($9/Mo) — 76,500 calls/Mo, 6 req/s
- **Pro** ($29/Mo) — 324,000 calls/Mo, 15 req/s
- **Mega** ($90/Mo) — 1,510,000 calls/Mo, 40 req/s

## Endpoints

### Seed

#### `GET /v1/population` — Plants per acre from spacing

**Parameters:**
- `row_spacing_in` (query, required, string) — Row spacing (inches) Example: `30`
- `seed_spacing_in` (query, required, string) — In-row seed spacing (inches) Example: `6`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/seedrate-api/v1/population?row_spacing_in=30&seed_spacing_in=6"
```

**Response:**
```json
{
    "data": {
        "note": "Plant population per acre = 6,272,640 ÷ (row spacing × in-row seed spacing), both in inches — the 6,272,640 is the square inches in an acre. So 30-inch rows with seeds 6 inches apart give about 34,800 plants per acre. Closer spacing raises the population (and competition); seed companies publish an optimum for each hybrid, so set the planter to land on it.",
        "inputs": {
            "row_spacing_in": 30,
            "seed_spacing_in": 6
        },
        "plants_per_acre": 34848,
        "plants_per_hectare": 86111
    },
    "meta": {
        "timestamp": "2026-06-07T08:17:59.701Z",
        "request_id": "b4981777-6a56-4b64-86bb-a46cd8613d6a"
    },
    "status": "ok",
    "message": "Plant population",
    "success": true
}
```

#### `GET /v1/seed-spacing` — Seed spacing for a target population

**Parameters:**
- `target_population` (query, required, string) — Target plants per acre Example: `35000`
- `row_spacing_in` (query, required, string) — Row spacing (inches) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/seedrate-api/v1/seed-spacing?target_population=35000&row_spacing_in=30"
```

**Response:**
```json
{
    "data": {
        "note": "The in-row seed spacing for a target population = 6,272,640 ÷ (target plants × row spacing). To plant 35,000 per acre in 30-inch rows you drop a seed about every 6 inches. This is the number you set on a planter's seed-rate drive or the singulating meter; check it with a seed-spacing/wheel test in the field, because skips and doubles move the real stand off the target.",
        "inputs": {
            "row_spacing_in": 30,
            "target_population": 35000
        },
        "seed_spacing_in": 5.974
    },
    "meta": {
        "timestamp": "2026-06-07T08:17:59.799Z",
        "request_id": "6210641e-1d8e-4c3e-a420-eef834590f73"
    },
    "status": "ok",
    "message": "Seed spacing",
    "success": true
}
```

#### `GET /v1/seeding-rate` — Pounds of seed per acre

**Parameters:**
- `target_population` (query, required, string) — Target plants per acre Example: `35000`
- `seeds_per_lb` (query, required, string) — Seeds per pound Example: `1500`
- `germination_pct` (query, optional, string) — Germination % (default 100) Example: `95`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/seedrate-api/v1/seeding-rate?target_population=35000&seeds_per_lb=1500&germination_pct=95"
```

**Response:**
```json
{
    "data": {
        "note": "Seeding rate in pounds per acre = the target plant population ÷ the germination rate ÷ the seeds per pound. Dividing by germination over-seeds to allow for the seeds that never come up — drilling 35,000 plants of a 1,500-seeds-per-lb crop at 95 % germination needs about 24.6 lb/acre. Seeds-per-pound varies a lot by crop and variety, so use the lot's tag, not a generic number.",
        "inputs": {
            "seeds_per_lb": 1500,
            "germination_pct": 95,
            "target_population": 35000
        },
        "seeds_to_plant_per_acre": 36842,
        "seeding_rate_lb_per_acre": 24.56
    },
    "meta": {
        "timestamp": "2026-06-07T08:17:59.894Z",
        "request_id": "45812be3-35e5-457c-a9ac-d8774cac3a6d"
    },
    "status": "ok",
    "message": "Seeding rate",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/seedrate-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "notes": "US units (in, plants/acre, seeds/lb, lb/acre). population = 6,272,640/(row×seed); spacing = 6,272,640/(pop×row); rate = pop/germ/seeds-per-lb. For sprayer/product rates use a spray API; for fertiliser a fertilizer API.",
        "service": "seedrate-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/population": "Plants per acre from row and seed spacing.",
            "GET /v1/seed-spacing": "In-row seed spacing for a target population.",
            "GET /v1/seeding-rate": "Pounds of seed per acre from population, seed size and germination."
        },
        "description": "Planting seed-rate maths: plant population from spacing, in-row spacing for a target, and seeding rate in lb/acre."
    },
    "meta": {
        "timestamp": "2026-06-07T08:17:59.994Z",
        "request_id": "a577cad8-b9b4-472a-8148-512f0d93027f"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/seedrate-api
OpenAPI spec: https://www.oanor.com/api/seedrate-api/openapi.json
