{
 "name": "New IETF drafts API",
 "description": "Machine-readable view of ietf.jaime.win/ietf-new-drafts: every Internet-Draft posted or revised on the datatracker, scanned hourly. Area comes from the datatracker for working-group drafts and from typesafe/jev for individual submissions; topic and kind come from the classifier. Read-only, no auth, CORS open. Classifier output is a hint from the abstract, not a review.",
 "docs": "https://ietf.jaime.win/ietf-new-drafts",
 "start_here": "https://ietf.jaime.win/api/drafts/digest?days=7&format=md",
 "fields": {
  "area": "art | int | ops | rtg | sec | wit | gen | irtf | other; area_source = datatracker | classifier; area_confidence 0..1 (1 when from the datatracker).",
  "topic": "routing | transport | web | realtime | dns | ip | security | iot | netmgmt | measurement | email | ai | cloud | wireless | process | other (jev choice), topic_confidence 0..1.",
  "kind": "spec | requirements | informational | other (jev choice), kind_confidence 0..1.",
  "new": "true when the revision is -00.",
  "revised": "datatracker document time; found = when the hourly scan first stored it."
 },
 "endpoints": [
  {
   "method": "GET",
   "path": "/api/drafts/digest",
   "params": {
    "days": "1..45 (default 7); also accepts since=7d|2w",
    "to": "ISO date ending the window (default today)",
    "area": "area key",
    "new": "1 for -00 only",
    "format": "json (default) | md",
    "limit": "max drafts, default 150, max 400"
   },
   "description": "One call for 'what was posted lately': drafts in the window grouped by area, with counts and last scan info.",
   "example": "https://ietf.jaime.win/api/drafts/digest?days=7&format=md"
  },
  {
   "method": "GET",
   "path": "/api/drafts/recent",
   "params": {
    "days": "1..45 (default 7)",
    "to": "ISO date ending the window (default today), to look at older weeks",
    "area": "area key",
    "topic": "topic key",
    "kind": "kind key",
    "group": "group acronym, e.g. core",
    "submitter": "draft name token, e.g. jimenez",
    "source": "wg | individual",
    "new": "1 for -00 only",
    "q": "substring over name/title/abstract",
    "sort": "time (default) | area | name",
    "limit": "default 2000"
   },
   "description": "Filtered list of drafts in the window, newest first.",
   "example": "https://ietf.jaime.win/api/drafts/recent?days=14&area=sec&new=1"
  },
  {
   "method": "GET",
   "path": "/api/drafts/status",
   "description": "Summary of the last hourly run."
  },
  {
   "method": "GET",
   "path": "/api/drafts/feed.xml",
   "params": {
    "days": "1..45 (default 7)"
   },
   "description": "Atom feed, newest first, 100 entries."
  },
  {
   "method": "GET",
   "path": "/api/result/{draft}",
   "description": "Is it AI? style analysis for one draft (404 if never scored)."
  }
 ],
 "related": {
  "agentic": "https://ietf.jaime.win/api/agentic"
 }
}