---
title: "Create a feasibility analysis"
method: POST
path: "/api/v1/feasibility/analyses"
tags: ["feasibility"]
---

# Create a feasibility analysis

`POST /api/v1/feasibility/analyses`

## Request

- Base URL: `https://buckybuild.com`
- URL: `https://buckybuild.com/api/v1/feasibility/analyses`
- Auth: one of:
  - HTTP bearer
  - none

Runs the v1 deterministic feasibility pipeline for a site reference or location input, persists the result, and returns the analysis snapshot. Authentication is optional for non-polygon inputs; polygon geometry and polygon-resolved sites require a Supabase bearer JWT and return `AUTH_REQUIRED` when missing. Parcel owner details and assessment/sale data (`site.selectedParcel.ownershipHint` and `rawCityData`) are returned only to authenticated callers; anonymous responses null those fields. The route accepts an `Idempotency-Key` header for safe retries, uses the `PUBLIC_READ_HEAVY` route bucket behind the `PUBLIC_API` middleware backstop, and returns registered v1 error codes including `INVALID_REQUEST`, `AUTH_REQUIRED`, `RATE_LIMITED`, and `ANALYSIS_FAILED`.

## Response `200`

Successful response.

## Other responses

- `400`: Validation or client error.
- `401`: Authentication required.
- `403`: Insufficient permissions.
- `404`: No such resource, or no such route under this version prefix.
- `429`: Rate limit exceeded (`code: RATE_LIMIT_EXCEEDED`, `retryable: true`). Honour `Retry-After`.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/buckybuild/apis/bucky-public-api.md) · [All operations](https://skmtc.dev/buckybuild/apis/bucky-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/buckybuild/apis/bucky-public-api/revisions/30e442927a24?raw)
