IwiConnect API docs

IwiConnect API

Build iwi engagement into your own systems

The IwiConnect API lets your consenting system, asset management platform or internal tooling create projects, send them to iwi, and follow the kōrero that comes back, without anyone re-keying it into the portal.

Everything here is scoped to what your team can already do in the portal. An API key never grants more than the account it belongs to, and most keys are deliberately given less.

What you can do

The public API covers the work an industry or council team does day to day on the platform.

Base URL

Base URL
https://api.iwiconnect.com

The whole public surface is also published as an OpenAPI document at https://api.iwiconnect.com/openapi.json, so you can generate a client rather than write one, and as a browsable reference at api.iwiconnect.com/reference where you can authorise with a key and send real requests. See the OpenAPI specification.

One host, for everything. What separates live from sandbox is the key you send, not the address you call. See API keys for how sandbox keys behave.

A first request

Request
curl https://api.iwiconnect.com/projects \
  -H 'Authorization: Bearer iwk_live_7Qx4...' \
  -H 'Accept: application/json'
Response
{
  "success": true,
  "message": "Projects retrieved",
  "status_code": 200,
  "response_object": {
    "data": [
      {
        "id": "8f0c2c1e-2f4a-4a63-9d0e-6c1a2f0f1a11",
        "name": "Waikanae Bridge strengthening",
        "type": "INFRASTRUCTURE_DEVELOPMENT",
        "status": "AWAITING_RESPONSE",
        "respond_by_date": "2026-10-14T00:00:00.000Z"
      }
    ],
    "total": 1,
    "page": 1,
    "limit": 20,
    "total_pages": 1
  }
}

Names and text

Macrons. Names come back with macrons intact (Ngāti, Te Āti Awa, takiwā). Send and store UTF-8, and set Content-Type: application/json; charset=utf-8 if your client is fussy about it.

Where to go next

If you are starting cold, read the quickstart. It walks through creating a key, checking which iwi cover a site, creating a project and sending it, which is the whole loop most integrations need. After that, scopes is worth ten minutes because getting the scopes right the first time saves you rotating keys later. If you would rather start from generated code, take the OpenAPI specification straight into your toolchain.