Registry API Documentation

Base URL: https://registry.oap.dev

For AI Agents

Use the search endpoint to find applications matching user needs. The response includes trust signals (DNS verification, health status, uptime) to help evaluate application quality. All responses are JSON.

POST/api/v1/register

Register a new app. The app must have a valid OAP manifest at /.well-known/oap.json.

Request Body

{
  "url": "https://yourapp.com"
}

Response

{
  "status": "registered",
  "domain": "yourapp.com",
  "manifest_url": "https://yourapp.com/.well-known/oap.json",
  "dns_verified": false,
  "manifest_valid": true,
  "health_ok": true,
  "indexed_at": "2025-01-15T12:00:00.000Z",
  "dns_hint": "Add DNS TXT record: _oap.yourapp.com → v=oap1; ..."
}
GET/api/v1/search?q={query}

Search for apps by keyword. Returns up to 20 results sorted by relevance.

Response

{
  "query": "CRM",
  "results": [
    {
      "domain": "xuru.ai",
      "name": "Xuru",
      "tagline": "AI-powered support ticket CRM",
      "trust_signals": {
        "dns_verified": true,
        "health_ok": true
      },
      "pricing": { "model": "subscription", "starting_price": "$5/seat/month" },
      "categories": ["crm", "support-tickets"],
      "match_score": 0.83
    }
  ],
  "total": 1,
  "searched_at": "2025-01-15T12:00:00.000Z"
}
GET/api/v1/categories

List all categories with app counts.

Response

{
  "categories": [
    { "category": "crm", "count": 1 },
    { "category": "civic-tech", "count": 1 }
  ],
  "total": 2
}
GET/api/v1/categories/{category}?page=1&limit=20

Browse apps in a category with pagination.

Response

{
  "category": "crm",
  "apps": [ ... ],
  "total": 1,
  "page": 1
}
GET/api/v1/apps/{domain}

Get full app details including the complete manifest and registry metadata.

Response

{
  "domain": "xuru.ai",
  "manifest": { ... },
  "registry_meta": {
    "registered_at": "2025-01-15T12:00:00.000Z",
    "dns_verified": true,
    "health_ok": true,
    "manifest_hash": "sha256:abc123...",
    "builder_other_apps": [
      { "domain": "provexa.ai", "name": "ProveXa" }
    ]
  }
}
PUT/api/v1/apps/{domain}/refresh

Force re-fetch the manifest from the source domain. Re-validates and re-verifies.

Response

{
  "status": "refreshed",
  "domain": "xuru.ai",
  "manifest_hash": "sha256:def456..."
}
GET/api/v1/all?page=1&limit=100

Paginated dump of all registered apps. Useful for registry mirroring.

Response

{
  "apps": [
    {
      "domain": "xuru.ai",
      "manifest_url": "https://xuru.ai/.well-known/oap.json",
      "manifest_hash": "sha256:abc123...",
      "last_verified": "2025-01-15T12:00:00.000Z"
    }
  ],
  "total": 3,
  "page": 1
}
GET/api/v1/stats

Registry statistics.

Response

{
  "total_apps": 3,
  "categories": 15,
  "verified_healthy": 3,
  "registered_today": 0,
  "registry_version": "0.1"
}