API v1.1 · Live local listings

Build with hyper-local community AI

Nyata is powered by local organisations, for local people. Give your users real answers about free meals, support services, local events and offers, drawn from the live listings of verified local organisations. One REST endpoint, every city Nyata rolls out to.

Get an API key
Request
curl https://nyataai.co.uk/external_api.php \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $NYATA_API_KEY" \
  -d '{
    "model": "nyata-1",
    "messages": [{
      "role": "user",
      "content": "Where can I get a free meal today?"
    }]
  }'
Response (excerpt) 200 OK
{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "Several free meal services are open today..."
    }
  }],
  "nyata": {
    "results": [{
      "type": "charity_service",
      "name": "Community Lunch Club",
      "start_time": "12:00",
      "open_now": true
    }]
  }
}

Get started in three steps

  1. Get an API key

    Pick a plan and pay securely with Stripe, or redeem a free-trial code. No account needed first.

    Choose a plan
  2. Download the starter kit

    Ready-to-run scripts for macOS, Linux, Windows, Python and Node.js, with nothing to install.

  3. Make your first request

    Paste your key into .env and run one command.

    Open the quickstart

Real local answers in your product, today

One click takes you to secure Stripe checkout. No account needed: your key is emailed the moment you pay. Card, Apple Pay and Google Pay.

  • Live in minutesReady-to-run starter kit for Python, Node.js and the command line. One command to your first answer.
  • No surprise billsCalls stop at your limit. You're never charged for overage.
  • One key for goodUpgrade or renew and keep the same key, so your code never changes.
  • Free sandboxTest keys return sample data at no cost while you build.

Starter

£0

See it answer your own questions, free for 24 hours.

  • 100 API requests
  • Chat API with live local listings
  • Full documentation and starter kit
  • Basic support
  • Redeem code required

Basic

£10/month

Put live local answers in your website or app.

  • 1,000 requests a month
  • Chat API with live local listings
  • New organisations added every week
  • Dashboard: 7-day usage, 24-hour logs
  • Alerts in your dashboard and by email
  • Email support
Get Basic for £10

Key ready the moment you pay

Enterprise

Custom

When answers must be instant, complete and guaranteed.

  • Unlimited requests
  • Instant listings: live the moment an organisation is approved
  • Latest MCP, early access to new tools, what's-new feed
  • Deeper answers, up to 50 results, open-now and nearest-first
  • 500 web searches a day
  • SLA, 24/7 dedicated support, white-label, custom development
Talk to us

Custom volumes, contract and invoicing

No monthly fee

Pay as you go, from £5

Busy some weeks, quiet others? Buy credits once and use them whenever you like. 1 credit = 1 request, credits never expire, and you top up the same key any time, with an invoice every time.

No account needed: pay, and your key is emailed straight away. Chat API with live listings; AI assistants (MCP) come with Premium.

Buy 1,800 credits for £20

Which plan is right for me?

Compare every plan

What each Nyata API plan includes
What you getStarterBasicPay as you goPremiumEnterprise
Price£0 with a code£10 a monthFrom £5, no expiry£50 a monthCustom
Requests100 in 24 hours1,000 a monthWhat you buy10,000 a monthUnlimited
Cost per requestFree1p1p to 1.25p0.5pAgreed with you
Chat API with live listings✓✓✓✓✓
AI assistants (MCP)———✓✓ Latest, early access
Live web search, with sources———100 a day500 a day
Newly approved organisationsWeeklyWeeklyWeeklyWeeklyInstantly, with alerts
Results per searchUp to 25Up to 25Up to 25Up to 25Up to 50, open-now, nearest-first
DashboardBasicBasicBasicAdvancedAdvanced
Usage history and logs7 days, 24 hours7 days, 24 hours7 days, 24 hours90 days, 30 days, CSV90 days, 30 days, CSV
Webhooks, Slack, team, IP controls———✓✓
Alerts in the dashboard and by email✓✓✓✓✓
Free sandbox test keys✓✓✓✓✓
SupportBasicEmailEmailPriority24/7 dedicated, SLA

Payment is handled securely by Stripe. Your key appears straight after payment and is emailed to you. Already have a Nyata account? Use the same email at checkout and the key is added to it automatically. Events, session times and closures are live on every plan.

Why build with Nyata

Local knowledge people can act on, behind an API that's easy to work with.

  • Local knowledge

    Answers about food banks, free meals, support services, events and community resources, from a model fine-tuned on local community information.

  • Live local listings

    Answers come from local organisations listed and verified on Nyata, and every response includes those listings as structured results you can show as cards or on a map.

  • Clear errors

    Documented status codes, a Retry-After header on rate limits and a distinct quota_exceeded error, so your integration can fail gracefully.

  • Secure and ICO registered

    Registered with the UK Information Commissioner's Office (ZC042900). Every request is authenticated with your key and encrypted over HTTPS.

  • A dashboard that keeps you informed

    Track requests, quota and spend, test calls in the built-in console, and get alerts in the dashboard and by email. Premium adds 90-day analytics, 30-day logs, webhooks and team access.

  • Works inside AI assistants

    Connect Nyata to Claude, ChatGPT, Cursor, VS Code and other MCP apps, and they can search verified local listings as tools. Included with Premium and Enterprise.

  • Live web search, with sources

    For what listings can't cover (transport changes, council notices, a venue's latest hours), assistants can search the web and get a short answer with its sources.

  • Built for discovery

    The API points people to the right service. Bookings and payments stay with providers, so partners keep their own customer relationships.

API documentation

Everything you need to integrate Nyata AI into your application.

Overview

The Nyata AI API gives your application the same local knowledge that powers the Nyata app. Send a question in plain words and get back a reply, plus the live listings behind it: services from verified local organisations and community events, with days, times and addresses.

Endpoint
POST https://nyataai.co.uk/external_api.php
Authentication
X-API-Key header
Format
JSON over HTTPS
Version
v1.1
Coverage
One API for every city. Live listings roll out city by city; pass city or location to scope results.

New in v1.1: live listings. Answers now come from the services and events listed on Nyata, every response includes them in nyata.results, and you can send the user's location to get the nearest first. See Live results.

New: Nyata in AI assistants. Nyata now runs an MCP server, so Claude, ChatGPT, Cursor, VS Code, Gemini CLI and other MCP apps can search Nyata's live listings directly. See Use with AI assistants (MCP).

Built for discovery. The API recommends services and tells people where to go. It doesn't make bookings or take payments; those stay with the provider or happen in the Nyata app.

Quickstart

Make your first request in a few minutes. Each quickstart is a single file with nothing to install.

Nyata starter kit

Ready-to-run quickstarts for Bash, PowerShell, Python and Node.js, plus a Postman collection, an API spec and a settings template.

nyata-starter-kit/
├── README.md
├── .env.example
├── .gitignore
├── bash/quickstart.sh
├── windows/quickstart.ps1
├── python/quickstart.py
├── node/quickstart.mjs
├── postman/
│   └── nyata-api.postman_collection.json
└── spec/
    └── nyata-api.spec.yaml
  1. Get your API key

    Copy it from your API dashboard. No key yet? Buy a plan or redeem a trial code.

  2. Unzip the kit and add your key

    Copy .env.example to .env, then paste your key after NYATA_API_KEY=.

    Terminal
    # macOS / Linux
    cp .env.example .env
    
    # Windows
    copy .env.example .env
    

    Prefer environment variables? Set NYATA_API_KEY instead. It takes priority over .env.

  3. Run the quickstart for your platform

    Needs curl, which comes with macOS and most Linux distributions. Also works in WSL and Git Bash.

    Terminal
    cd nyata-starter-kit
    bash bash/quickstart.sh "Where can I find a food bank?"
    
    View the full script bash/quickstart.sh, 144 lines
    bash/quickstart.sh
    #!/usr/bin/env bash
    #
    # Nyata AI API - quickstart for macOS, Linux, WSL and Git Bash
    #
    # Usage (from the starter-kit folder):
    #   bash bash/quickstart.sh "Where can I find a food bank?"
    #
    # Needs curl. If python3 or jq is installed, only the reply text is printed;
    # otherwise you'll see the full JSON response.
    #
    # Your API key is read from the NYATA_API_KEY environment variable, or from a
    # .env file in the current folder or the starter-kit folder.
    
    set -euo pipefail
    
    DEFAULT_API_URL="https://nyataai.co.uk/external_api.php"
    DEFAULT_MODEL="nyata-1"
    DASHBOARD_URL="https://app.nyataai.co.uk/developers"
    MAX_RETRIES=4
    
    KIT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
    
    # Read KEY=VALUE lines from a .env file. Variables that are already set win.
    load_env() {
      local file="$1" line key value
      local pattern='^[[:space:]]*(export[[:space:]]+)?([A-Za-z_][A-Za-z0-9_]*)[[:space:]]*=[[:space:]]*(.*)$'
      local double_quoted='^"(.*)"$'
      local single_quoted="^'(.*)'\$"
      [[ -f "$file" ]] || return 0
      while IFS= read -r line || [[ -n "$line" ]]; do
        line="${line%$'\r'}"
        [[ "$line" =~ $pattern ]] || continue
        key="${BASH_REMATCH[2]}"
        value="${BASH_REMATCH[3]}"
        value="${value%"${value##*[![:space:]]}"}"
        if [[ "$value" =~ $double_quoted || "$value" =~ $single_quoted ]]; then
          value="${BASH_REMATCH[1]}"
        fi
        if [[ -z "${!key:-}" ]]; then
          export "$key=$value"
        fi
      done < "$file"
    }
    
    load_env "$PWD/.env"
    load_env "$KIT_DIR/.env"
    
    API_URL="${NYATA_API_URL:-$DEFAULT_API_URL}"
    MODEL="${NYATA_MODEL:-$DEFAULT_MODEL}"
    API_KEY="${NYATA_API_KEY:-}"
    QUESTION="${*:-Where can I get a free meal today?}"
    
    if [[ -z "$API_KEY" || "$API_KEY" == "your_api_key" ]]; then
      echo "Add your API key first: copy .env.example to .env and paste your key," >&2
      echo "or run: export NYATA_API_KEY=\"your_api_key\"" >&2
      exit 1
    fi
    
    if ! command -v curl >/dev/null 2>&1; then
      echo "This script needs curl. Install it, then try again." >&2
      exit 1
    fi
    
    # Turn a string into a JSON string literal without extra tools.
    json_string() {
      local s
      s="$(printf '%s' "$1" | tr -d '\001-\010\013\014\016-\037')"
      s="${s//\\/\\\\}"
      s="${s//\"/\\\"}"
      s="${s//$'\n'/\\n}"
      s="${s//$'\r'/\\r}"
      s="${s//$'\t'/\\t}"
      printf '"%s"' "$s"
    }
    
    BODY="{\"model\":$(json_string "$MODEL"),\"messages\":[{\"role\":\"user\",\"content\":$(json_string "$QUESTION")}],\"max_tokens\":300,\"temperature\":0.7}"
    
    RESPONSE_FILE="$(mktemp)"
    HEADERS_FILE="$(mktemp)"
    trap 'rm -f "$RESPONSE_FILE" "$HEADERS_FILE"' EXIT
    
    attempt=0
    while true; do
      if ! status="$(curl -sS "$API_URL" \
          -H "Content-Type: application/json" \
          -H "X-API-Key: $API_KEY" \
          -A "nyata-starter-kit/1.0 (bash)" \
          --max-time 30 \
          --data-binary "$BODY" \
          -D "$HEADERS_FILE" -o "$RESPONSE_FILE" -w '%{http_code}')"; then
        echo "Network error: could not reach $API_URL" >&2
        exit 1
      fi
    
      # Retry rate limits (429) and server errors (5xx) with backoff.
      if [[ "$status" == "429" || "$status" == 5* ]] && (( attempt < MAX_RETRIES )); then
        delay="$(awk 'tolower($1) == "retry-after:" { gsub(/\r/, "", $2); print $2 }' "$HEADERS_FILE" | tail -n 1)"
        if ! [[ "$delay" =~ ^[0-9]+$ ]]; then
          delay=$(( 1 << attempt ))
        fi
        if (( delay > 60 )); then
          delay=60
        fi
        echo "HTTP $status - retrying in ${delay}s..." >&2
        sleep "$delay"
        attempt=$(( attempt + 1 ))
        continue
      fi
      break
    done
    
    if [[ "$status" == "200" ]]; then
      if command -v python3 >/dev/null 2>&1 &&
         PYTHONIOENCODING=utf-8 python3 -c 'import json, sys; print(json.load(sys.stdin)["choices"][0]["message"]["content"])' < "$RESPONSE_FILE" 2>/dev/null; then
        exit 0
      fi
      if command -v jq >/dev/null 2>&1 && jq -er '.choices[0].message.content' < "$RESPONSE_FILE" 2>/dev/null; then
        exit 0
      fi
      cat "$RESPONSE_FILE"
      echo
      exit 0
    fi
    
    case "$status" in
      400) message="Bad request - check the model name and message format." ;;
      401) message="Invalid or missing API key - check NYATA_API_KEY." ;;
      403)
        if grep -q "quota_exceeded" "$RESPONSE_FILE"; then
          message="Monthly quota used up - check $DASHBOARD_URL or upgrade your plan."
        else
          message="This API key doesn't have access to the API."
        fi
        ;;
      429) message="Too many requests - slow down and try again shortly." ;;
      5??) message="Nyata AI had a problem handling the request - try again in a moment." ;;
      *) message="Unexpected response." ;;
    esac
    
    echo "Error $status: $message" >&2
    if [[ -s "$RESPONSE_FILE" ]]; then
      echo "Response: $(head -c 500 "$RESPONSE_FILE")" >&2
    fi
    exit 1
    

    The reply is printed in your terminal. If something goes wrong, the script explains the error and what to do about it.

Authentication

Every request needs your API key in the X-API-Key header.

X-API-Key: your_api_key

Find your key on your API dashboard. New to Nyata? Get a key: you'll create an account, then buy a plan or redeem a free-trial code. The examples on this page read your key from the NYATA_API_KEY environment variable.

Keep your key secret. Call the API from your server, never from browser or mobile-app code, and keep keys out of version control. The starter kit's .gitignore already excludes .env. If a key is exposed, email support@nyataai.co.uk straight away.

Endpoint

All requests go to one endpoint:

POST https://nyataai.co.uk/external_api.php
HeaderValue
Content-Typeapplication/json
X-API-KeyYour API key

Always use HTTPS, and send the request body as JSON.

Request

Send a JSON body with these parameters:

ParameterTypeRequiredDescription
modelstringRequiredModel identifier: nyata-1
messagesarrayRequiredThe conversation so far, as message objects (see below).
max_tokensintegerOptionalMaximum length of the reply, in tokens. Default: 1000.
temperaturenumberOptionalFrom 0 to 1. Lower values give more focused replies. Default: 0.7.
locationobjectOptionalWhere the person is: { "latitude": 51.45, "longitude": -2.58 }. Live results are sorted nearest first and include distance_km. New in v1.1.
citystringOptionalLimit live results to one city, written as your users would write it. New in v1.1.

Send the model string exactly as shown. It's matched character for character, so don't shorten or change it.

Message objects

FieldTypeDescription
rolestringuser for the person's question; assistant for earlier replies you include as context.
contentstringThe message text.

Example body

JSON
{
  "model": "nyata-1",
  "messages": [
    { "role": "user", "content": "Where can I get a free lunch today?" }
  ],
  "location": { "latitude": 51.45, "longitude": -2.58 },
  "max_tokens": 300,
  "temperature": 0.7
}

Response

A successful request returns 200 and a JSON object:

JSON
{
  "id": "nyata-abc123",
  "object": "nyata.answer",
  "created": 1793500000,
  "model": "nyata-1",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Alright my lover! Community Lunch Club is on today from 12:00 to 14:00..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 410, "completion_tokens": 96, "total_tokens": 506 },
  "api_usage": { "requests_used": 4, "requests_limit": 1000, "requests_remaining": 996 },
  "nyata": {
    "model": "nyata-1",
    "founder": "Ibrahim Maina",
    "version": "1.1",
    "results": [
      {
        "type": "charity_service",
        "id": 10,
        "name": "Community Lunch Club",
        "organisation": "Example Community Kitchen",
        "organisation_type": "charity",
        "verification": "verified",
        "service_type": "meals",
        "day": "Saturday",
        "next_date": "2026-10-31",
        "start_time": "12:00",
        "end_time": "14:00",
        "open_now": false,
        "meal_period": "lunch",
        "booking_required": false,
        "address": "1 Example Street",
        "postcode": "AB1 2CD",
        "distance_km": 0.4,
        "directions_url": "https://www.google.com/maps/search/?api=1&query=51.45,-2.58"
      }
    ]
  }
}
FieldDescription
choices[0].message.contentThe reply text. This is usually the only field you need.
choices[0].finish_reasonWhy the reply ended. stop means it finished normally.
usageTokens used by the request: prompt_tokens, completion_tokens and total_tokens.
nyata.resultsThe live listings behind the reply: services and events you can show as cards, a list or map pins. Empty when nothing matched. See Live results.
api_usageYour plan's requests used, limit and remaining after this request.
id, created, modelThe response's identifier, when it was created (Unix time) and the model that produced it.

Live results

Nyata answers from live listings: services run by verified local organisations and community events listed on Nyata. Every response includes the listings behind the answer in nyata.results, so you can show them as cards, a list or pins on a map. The reply text only recommends places that appear in those results.

One API for every city. There are no per-city endpoints or keys. Send city or location and results are scoped to it. As Nyata rolls out city by city, new places appear automatically with no change to your code. When nothing is listed for a request, results is empty and the reply says so rather than guessing.

What's covered

  • Charity and community services (charity_service): free meals and food, showers, shelter, clothing, healthcare, support groups, employment help and emergency support.
  • Events and offers (event): community events, workshops, celebrations, local offers and discounts.
  • Coming next: local services such as barbers, beauty, cleaning and taxis.

Only approved, active listings are returned, with public details only. The API is for discovery: it tells people where to go and when, and bookings stay with the organisation or in the Nyata app.

Service fields

FieldTypeDescription
typestringAlways charity_service.
idintegerListing ID.
namestringName of the service, e.g. a lunch club or shower session.
organisationstringThe organisation that runs it.
organisation_typestringcharity, community_group, religious, restaurant, business or government.
verificationstringHow far Nyata has verified the organisation: new, trusted or verified.
service_typestringmeals, showers, shelter, clothing, healthcare, support_groups, employment, emergency or other.
daystringThe weekday it runs.
next_datestringThe next date it runs (YYYY-MM-DD, UK time).
start_time, end_timestringSession times, 24-hour HH:MM.
open_nowbooleanWhether it is running right now.
meal_period, food_typestringFor meals: breakfast, lunch, dinner, late_night or all_day, and what food is served.
what_is_provided, description, notesstringShort public details from the organisation.
booking_requiredbooleanIf true, people need to book ahead with the organisation.
location_name, address, postcode, citystringWhere it happens.
latitude, longitudenumberCoordinates, when known.
distance_kmnumberDistance from the location you sent. Only present when you send one.
phone, websitestringPublic contact details for the service or organisation.
directions_urlstringA maps link to the location.

Event fields

FieldTypeDescription
typestringAlways event.
idintegerListing ID.
title, descriptionstringWhat it is.
categorystringevent, promotion, discount, ceremony, announcement, news or update.
starts, endsstringStart and end, YYYY-MM-DD HH:MM in UK time. ends may be missing for single-day events.
happening_nowbooleanWhether it is on right now.
discountstringThe offer, for discounts and promotions.
location, citystringWhere it happens.
latitude, longitudenumberCoordinates, when known.
ticketsobject{ "available": true, "price_gbp": 5 } when tickets are sold through Nyata.
link, image_urlstringMore information and an image, when the organiser added them.
featuredbooleanHighlighted by the organiser or Nyata.

Fields without a value are left out, so check that a field exists before you use it. New fields may be added in future versions without notice; existing ones won't be removed or renamed without advance notice.

Example: list the results

JavaScript
const data = await response.json();
const reply = data.choices[0].message.content;   // the answer, as text
const results = data.nyata?.results ?? [];       // the listings behind it

for (const item of results) {
  if (item.type === "charity_service") {
    console.log(`${item.name} (${item.organisation}): ${item.day} ${item.start_time}-${item.end_time}, ${item.address}`);
  } else if (item.type === "event") {
    console.log(`${item.title}: ${item.starts}${item.location ? ", " + item.location : ""}`);
  }
}

Code examples

Any HTTP client works. Each example reads your key from the NYATA_API_KEY environment variable.

Terminal
curl https://nyataai.co.uk/external_api.php \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $NYATA_API_KEY" \
  -d '{
    "model": "nyata-1",
    "messages": [{ "role": "user", "content": "Where can I find a food bank?" }],
    "max_tokens": 300
  }'

Official Python and JavaScript SDKs are in development. Until they're released, the starter kit's ask() helpers give you retries and clear errors with no dependencies.

Errors

The API uses standard HTTP status codes.

StatusMeaningWhat to do
200 OKSuccess.Read choices[0].message.content.
400 Bad RequestInvalid parameters.Check the model string and message format. Retrying the same request won't help.
401 UnauthorizedInvalid or missing API key.Check the X-API-Key header.
403 ForbiddenThe key doesn't have access, or your plan's monthly quota is used up (quota_exceeded).Don't retry. Check your dashboard, upgrade, or wait for your quota to reset.
429 Too Many RequestsYou're sending requests faster than your plan allows.Wait for the number of seconds in the Retry-After header, then retry.
500 Server ErrorSomething went wrong on our side.Retry with exponential backoff.

403 or 429? A 403 with quota_exceeded means you've used your plan's full monthly allowance: upgrade, or wait for your billing cycle to reset. A 429 means you're within your quota but sending requests too quickly: slow down and retry.

Rate limits and retries

Every plan has a monthly request allowance, shown under Pricing, plus a short-term rate limit that keeps the API responsive for everyone.

Recommended retry strategy

  • On 429, wait for the number of seconds in the Retry-After header, then retry.
  • For repeated 429 or 5xx responses, back off exponentially: 1s, 2s, 4s, 8s.
  • On 403 with quota_exceeded, stop retrying and check your dashboard for your remaining quota and reset date.

The starter-kit scripts already follow this strategy, so you can copy their ask() helpers into your own project.

Versioning

The current API version is v1.1. The model string is versioned separately from the API itself.

Changelog

  • v1.1 (31 October 2026): answers now come from live listings of verified local organisations and community events; every response includes them in nyata.results; new optional location and city request fields; the model identifier is now nyata-1 (the previous identifier still works); the object field now reads nyata.answer. Existing integrations keep working.
  • v1.0: first release.

We'll give advance notice before any breaking change to the endpoint, the request format or the model identifier, so you have time to update your integration.

Use with AI assistants (MCP)

Nyata runs a remote Model Context Protocol server. Connect it to Claude, ChatGPT, Cursor, VS Code, Windsurf, Gemini CLI, Codex or any other app that supports remote MCP, and the assistant can search Nyata's live listings as tools: community support, local services, events and provider details.

MCP https://mcp.nyataai.co.uk/mcp
Transport
Streamable HTTP
Sign-in
Sign in with a Nyata account (OAuth 2.1 with PKCE). Clients register automatically, so there's no client ID to set up.
API key
Or send your Nyata API key as Authorization: Bearer for server-to-server use. MCP with an API key is part of the Premium and Enterprise plans; keys created before 8 November 2026 keep the access they already had.
Plans
Premium: the MCP tools with live data; newly approved organisations are added at the weekly update (Mondays). Enterprise: the latest MCP with early access to new tools, new organisations the moment they're approved, a whats_new feed, open-now and nearest-first search, and up to 50 results. Events, times and closures are live on every plan.
Access
Read-only. The tools find and describe listings; they don't book, pay or post.

Claude (web, desktop and mobile)

  1. In Claude, add a custom connector and paste https://mcp.nyataai.co.uk/mcp as the server URL. There's no client ID or secret to enter.
  2. Click Connect and sign in to your Nyata account, then approve access.
  3. Ask a local question in any chat, for example “Where's open for a free meal near me tonight?”

Once added, the connector works across Claude on web, desktop and mobile. Claude's free plan allows one custom connector. On Team and Enterprise plans, an owner adds it for the organisation and each member connects with their own Nyata account.

Claude plugin

The Nyata plugin bundles the connector with guidance on answering local questions safely (999 first in an emergency). It holds no keys or secrets: everyone signs in with their own Nyata account.

  1. Download the Nyata plugin (.zip). Keep it zipped.
  2. In Claude, open Customize, then Plugins, choose Add and upload the zip.
  3. Open the plugin, go to its Connectors tab, click Connect and sign in with your Nyata account.

An uploaded plugin is added to your own account only. If you've already added the custom connector above, remove it so Nyata isn't connected twice.

Claude Code

Add the server, then run /mcp inside Claude Code to sign in with your Nyata account:

Terminal
claude mcp add --transport http nyata https://mcp.nyataai.co.uk/mcp

To use an API key instead of signing in:

Terminal
claude mcp add --transport http nyata https://mcp.nyataai.co.uk/mcp \
  --header "Authorization: Bearer $NYATA_API_KEY"

ChatGPT

  1. In ChatGPT on the web, open Settings, then Apps & Connectors, then Advanced, and turn on Developer mode.
  2. Back in Apps & Connectors, choose Create. Name it Nyata, paste https://mcp.nyataai.co.uk/mcp as the server URL and choose OAuth.
  3. Sign in with your Nyata account when asked, then pick Nyata from the + menu in a new chat.

Developer mode is available on ChatGPT's paid plans; on Business and Enterprise an admin may need to allow custom connectors. ChatGPT moves this setting from time to time, so check under Settings if it isn't where described.

Cursor

Add Nyata to Cursor

Or add it to ~/.cursor/mcp.json. Cursor asks you to sign in with Nyata the first time it connects.

mcp.json
{
  "mcpServers": {
    "nyata": {
      "url": "https://mcp.nyataai.co.uk/mcp"
    }
  }
}

VS Code (GitHub Copilot)

Install in VS Code

Or add it to .vscode/mcp.json in your project, then click Start above the server and allow the Nyata sign-in.

.vscode/mcp.json
{
  "servers": {
    "nyata": {
      "type": "http",
      "url": "https://mcp.nyataai.co.uk/mcp"
    }
  }
}

Windsurf

In the Cascade panel, open MCPs, choose View raw config and add Nyata, then refresh. Cascade opens the Nyata sign-in on first use.

mcp_config.json
{
  "mcpServers": {
    "nyata": {
      "serverUrl": "https://mcp.nyataai.co.uk/mcp"
    }
  }
}

Gemini CLI

Add the server, then run /mcp auth nyata inside Gemini CLI to sign in:

Terminal
gemini mcp add --transport http nyata https://mcp.nyataai.co.uk/mcp

Codex

Add the server, then sign in:

Terminal
codex mcp add nyata --url https://mcp.nyataai.co.uk/mcp
codex mcp login nyata

Any other MCP app

Nyata works with any app that supports remote MCP servers over Streamable HTTP with OAuth. Give it the server URL and sign in with your Nyata account when asked, or send your API key as Authorization: Bearer if the app only supports headers.

Tools

ToolWhat it does
find_community_supportFree meals, food banks, housing, mental health, jobs and other support near a postcode or area, with opening times.
find_local_servicesBarbers, beauty, cleaning and taxis listed on Nyata.
find_eventsUpcoming community events, workshops and offers.
get_provider_detailsFull details for one listing, using an id from another result.
ask_nyataA plain-words local question, answered by Nyata.
whats_newOrganisations newly approved on Nyata, newest first (Enterprise early access).
web_searchLooks something up live on the web (transport changes, council notices, a place’s own site) and returns a short summary with sources. Clearly marked as not Nyata-verified.
get_coverageWhich areas Nyata covers now and what it can search.

Usage. With an API key, each successful tool call counts towards your plan's monthly allowance, except get_coverage, which is free. Signed-in accounts can search listings freely and have a daily limit on ask_nyata and on web_search (15 a day). With a key, web_search allows 100 a day on Premium and 500 on Enterprise. Both are limited to 60 calls a minute.

Keep your key out of shared configs. If you add your API key to an MCP client, keep that config out of version control. For anything shared with other people, use Nyata sign-in instead, so every user connects with their own account.

Downloads

The starter kit contains everything below. You can also download each file on its own.

  • Starter kitAll quickstarts, the Postman collection, the API spec and a settings template.
  • Postman collectionImport into Postman, set the apiKey variable, then send.
  • API specFor Insomnia, Bruno, Swagger UI or your code generator.
  • Bash quickstartmacOS, Linux, WSL and Git Bash.
  • PowerShell quickstartWindows PowerShell 5.1 and PowerShell 7.
  • Python quickstartPython 3.8+, standard library only.
  • Node.js quickstartNode.js 18+, no dependencies.

Support

Email support@nyataai.co.uk with the time of the request, the endpoint, the status code and the response body. Never include your full API key.

Answers to common questions are in the Help Center and FAQs.