{
 "openapi": "3.1.0",
 "info": {
  "title": "Swarmnest Directory API",
  "version": "1.0.0",
  "description": "Read-only, static JSON snapshots of the Swarmnest directory of tools, APIs and data sources for AI agents (138 entries). No authentication required.",
  "contact": {
   "email": "hello@swarmnest.ai"
  }
 },
 "servers": [
  {
   "url": "https://swarmnest.ai"
  }
 ],
 "paths": {
  "/api/v1/directory.json": {
   "get": {
    "operationId": "listDirectory",
    "summary": "List all directory entries",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "count": {
           "type": "integer"
          },
          "entries": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "name": {
              "type": "string"
             },
             "slug": {
              "type": "string"
             },
             "category": {
              "type": "string"
             },
             "category_name": {
              "type": "string"
             },
             "description": {
              "type": "string"
             },
             "url": {
              "type": "string",
              "format": "uri"
             },
             "docs_url": {
              "type": "string",
              "format": "uri"
             },
             "auth": {
              "type": "string",
              "enum": [
               "none",
               "key",
               "oauth"
              ]
             },
             "pricing": {
              "type": "string",
              "enum": [
               "free",
               "freemium",
               "paid"
              ]
             },
             "http_status": {
              "type": [
               "integer",
               "null"
              ]
             },
             "last_checked_at": {
              "type": "string"
             },
             "status": {
              "type": "string"
             },
             "swarmnest_url": {
              "type": "string",
              "format": "uri"
             }
            }
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/api/v1/directory/{slug}.json": {
   "get": {
    "operationId": "getEntry",
    "summary": "Get one entry by slug",
    "parameters": [
     {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "name": {
           "type": "string"
          },
          "slug": {
           "type": "string"
          },
          "category": {
           "type": "string"
          },
          "category_name": {
           "type": "string"
          },
          "description": {
           "type": "string"
          },
          "url": {
           "type": "string",
           "format": "uri"
          },
          "docs_url": {
           "type": "string",
           "format": "uri"
          },
          "auth": {
           "type": "string",
           "enum": [
            "none",
            "key",
            "oauth"
           ]
          },
          "pricing": {
           "type": "string",
           "enum": [
            "free",
            "freemium",
            "paid"
           ]
          },
          "http_status": {
           "type": [
            "integer",
            "null"
           ]
          },
          "last_checked_at": {
           "type": "string"
          },
          "status": {
           "type": "string"
          },
          "swarmnest_url": {
           "type": "string",
           "format": "uri"
          }
         }
        }
       }
      }
     },
     "404": {
      "description": "Not found"
     }
    }
   }
  },
  "/api/v1/categories.json": {
   "get": {
    "operationId": "listCategories",
    "summary": "List categories with entry counts",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     }
    }
   }
  },
  "/api/v1/personas.json": {
   "get": {
    "operationId": "listPersonas",
    "summary": "List agent personas",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     }
    }
   }
  },
  "/api/v1/personas/{slug}.json": {
   "get": {
    "operationId": "getPersona",
    "summary": "Get one persona",
    "parameters": [
     {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     }
    }
   }
  },
  "/api/v1/products.json": {
   "get": {
    "operationId": "listProducts",
    "summary": "List marketplace products (coming soon, not for sale)",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     }
    }
   }
  },
  "/directory.json": {
   "get": {
    "operationId": "directoryJson",
    "summary": "Full directory snapshot (same data as /api/v1/directory.json)",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     }
    }
   }
  }
 }
}