Account endpoints

Check which member and key a request runs as, see today's quota usage, and fetch the OpenAPI document.

View as Markdown

All paths are relative to https://urnextdoor.com/api/v1. See API reference for the envelope and headers every endpoint shares.

EndpointWhat it doesScopeDaily quota
GET /meWho am Iany keynot counted
GET /usageToday's quota usageany keynot counted
GET /openapi.jsonOpenAPI documentpublic, no keynot counted

Who am I

GET https://urnextdoor.com/api/v1/me

Returns the member this key acts as and details of the key itself (name, prefix, scopes, expiry). Works with any valid key. Use it to test a key.

  • Auth: your API key (Bearer or X-API-Key)
  • Scope: any valid key
  • Daily quota: not counted
  • operationId: getMe

Example

cURL
curl "https://urnextdoor.com/api/v1/me" \
  -H "Authorization: Bearer $UND_API_KEY"
JavaScript
const res = await fetch("https://urnextdoor.com/api/v1/me", {
  headers: {
    Authorization: `Bearer ${process.env.UND_API_KEY}`,
  },
});
console.log(res.status, await res.json());
Python
import os

import requests

api_key = os.environ["UND_API_KEY"]

response = requests.get(
    "https://urnextdoor.com/api/v1/me",
    headers={
        "Authorization": f"Bearer {api_key}",
    },
    timeout=30,
)
print(response.status_code, response.json())
PHP
<?php
$apiKey = getenv('UND_API_KEY');

$ch = curl_init('https://urnextdoor.com/api/v1/me');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
    ],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);

echo $status, PHP_EOL, $body, PHP_EOL;

Sample response: 200 OK

JSON
{
  "ok": true,
  "user": {
    "id": 7,
    "username": "aarav",
    "display_name": "Aarav",
    "plan": "free",
    "profile_url": "https://urnextdoor.com/users/aarav"
  },
  "key": {
    "id": 3,
    "name": "Claude Code",
    "prefix": "und_sk_7Hq2x",
    "scopes": [
      "content",
      "media",
      "schedule",
      "read"
    ],
    "created_at": "2026-10-15T09:00:00Z",
    "expires_at": "2027-01-13T09:00:00Z"
  },
  "request_id": "9f8e7d6c5b4a3921"
}

Responses

StatusMeaningCodes
200 OKThe member and the key.
401 UnauthorizedNo key, or the key is unknown, malformed, revoked or expired, or the member is not active.missing_api_key, invalid_api_key
421 Misdirected RequestCalled on a community subdomain. Use https://urnextdoor.com.wrong_host
429 Too Many RequestsOver 60 requests a minute from this member (or too many failed key checks from one address), or today's quota for this action is used up.rate_limited, quota_exceeded
500 Internal Server ErrorOur fault. Safe to retry with the same Idempotency-Key.server_error
503 Service UnavailableThe API is switched off.api_disabled

Today's quota usage

GET https://urnextdoor.com/api/v1/usage

Returns your plan, the current UTC day, when counters reset, and used and remaining counts for each action. Works with any valid key and is not quota-counted.

  • Auth: your API key (Bearer or X-API-Key)
  • Scope: any valid key
  • Daily quota: not counted
  • operationId: getUsage

Example

cURL
curl "https://urnextdoor.com/api/v1/usage" \
  -H "Authorization: Bearer $UND_API_KEY"
JavaScript
const res = await fetch("https://urnextdoor.com/api/v1/usage", {
  headers: {
    Authorization: `Bearer ${process.env.UND_API_KEY}`,
  },
});
console.log(res.status, await res.json());
Python
import os

import requests

api_key = os.environ["UND_API_KEY"]

response = requests.get(
    "https://urnextdoor.com/api/v1/usage",
    headers={
        "Authorization": f"Bearer {api_key}",
    },
    timeout=30,
)
print(response.status_code, response.json())
PHP
<?php
$apiKey = getenv('UND_API_KEY');

$ch = curl_init('https://urnextdoor.com/api/v1/usage');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
    ],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);

echo $status, PHP_EOL, $body, PHP_EOL;

Sample response: 200 OK

JSON
{
  "ok": true,
  "plan": "free",
  "day": "2026-10-15",
  "resets_at": "2026-10-16T00:00:00Z",
  "quotas": [
    {
      "action": "post",
      "limit": 20,
      "used": 3,
      "remaining": 17
    },
    {
      "action": "question",
      "limit": 20,
      "used": 0,
      "remaining": 20
    },
    {
      "action": "media",
      "limit": 50,
      "used": 2,
      "remaining": 48
    }
  ],
  "request_id": "9f8e7d6c5b4a3921"
}

Responses

StatusMeaningCodes
200 OKUsage for the current UTC day.
401 UnauthorizedNo key, or the key is unknown, malformed, revoked or expired, or the member is not active.missing_api_key, invalid_api_key
421 Misdirected RequestCalled on a community subdomain. Use https://urnextdoor.com.wrong_host
429 Too Many RequestsOver 60 requests a minute from this member (or too many failed key checks from one address), or today's quota for this action is used up.rate_limited, quota_exceeded
500 Internal Server ErrorOur fault. Safe to retry with the same Idempotency-Key.server_error
503 Service UnavailableThe API is switched off.api_disabled

OpenAPI document

GET https://urnextdoor.com/api/v1/openapi.json

Returns this OpenAPI 3.1 document. Public: no key needed. Import it into ChatGPT Actions, Postman or a code generator.

  • Auth: public, no key needed
  • Scope: none
  • Daily quota: not counted
  • operationId: getOpenapi

Example

cURL
curl "https://urnextdoor.com/api/v1/openapi.json"
JavaScript
const res = await fetch("https://urnextdoor.com/api/v1/openapi.json");
console.log(res.status, await res.json());
Python
import requests

response = requests.get(
    "https://urnextdoor.com/api/v1/openapi.json",
    timeout=30,
)
print(response.status_code, response.json())
PHP
<?php
$ch = curl_init('https://urnextdoor.com/api/v1/openapi.json');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);

echo $status, PHP_EOL, $body, PHP_EOL;

Sample response: 200 OK

JSON
{
  "openapi": "3.1.0",
  "info": {
    "title": "Ur Next Door API",
    "version": "1.0.0"
  }
}

Responses

StatusMeaningCodes
200 OKThe OpenAPI document.
404 Not FoundThe document is not available on this server.

Last updated