{
 "service": "AgentDNA by ANGELS",
 "what": "A company's catalog for AI agents: publish and update products once; agents read a clean, current catalog instead of crawling the website. Every catalog is searchable on Agentify.",
 "base": "https://angelscohq.com/agentdna",
 "auth": "Authorization: Bearer <api_key>",
 "endpoints": {
  "POST /api/register": {
   "body": {
    "company": "str",
    "domain": "example.com",
    "email": "str"
   },
   "returns": "api_key (once) + domain proof instructions"
  },
  "POST /api/verify": "check DNS TXT or .well-known file proof",
  "POST /api/rotate-key": {
   "body": {
    "domain": "example.com"
   },
   "note": "new key if the domain proof is in place"
  },
  "GET /api/me": "your status",
  "PUT /api/products": {
   "body": {
    "products": [
     {
      "sku": "A1",
      "name": "str",
      "description": "str",
      "price": 19.9,
      "currency": "USD",
      "availability": "in_stock",
      "url": "https://...",
      "image": "https://...",
      "brand": "str",
      "category": "str",
      "gtin": "str",
      "attributes": {
       "color": "red"
      }
     }
    ],
    "replace": "false = add/update by sku, true = this list becomes the whole catalog"
   },
   "also_accepts": "schema.org Product objects, Google Merchant fields, or raw CSV body"
  },
  "GET /api/products": "your products",
  "DELETE /api/products/{sku}": "remove one",
  "PUT /api/profile": {
   "company": "str",
   "description": "str",
   "contact_url": "str",
   "categories": [
    "str"
   ]
  },
  "POST /api/feed": {
   "url": "public JSON / CSV / Google Merchant XML feed, refreshed every 24h",
   "or": {
    "mode": "website"
   },
   "website_mode": "verified domains only: we read your schema.org product data once a day so agents never have to"
  },
  "GET /c/{domain}.json": "public machine catalog (ETag supported)",
  "GET /c/index.json": "all published companies",
  "GET /c/{domain}.json?since={dna.version}": "SYNC BY DNA: only what changed since your version",
  "GET /c/{domain}.dna?c=8": "the catalog's DNA (is my copy current?)",
  "POST /c/{domain}/sync": {
   "body": {
    "dna": [
     "16 hex digits",
     "..."
    ]
   },
   "returns": "exactly what your copy lacks, and what in it is wrong"
  },
  "GET /dna": "sync-by-DNA specification",
  "GET /dna/client.py": "reference client (Python, stdlib)"
 },
 "limits": {
  "products_per_company": 10000,
  "request_size": "4 MB"
 },
 "price": "30 days free, then 4.90 USD a month (pay 10 months, get 12). Card or USDC on Base. GET /api/pricing",
 "billing": {
  "GET /api/billing": "your plan status (trial days left, paid until)",
  "POST /api/billing/redeem": {
   "body": {
    "receipt": "Whop pay_... or USDC-on-Base tx hash 0x..."
   }
  }
 }
}