{
 "openapi": "3.1.0",
 "info": {
  "title": "AltData Atlas static JSON API",
  "version": "2026-09-29",
  "summary": "Read-only static JSON describing alternative data providers and their coverage.",
  "description": "Static files regenerated on every data change; no key, no auth, CORS open. Licence AltData Atlas Data Licence v1. Cite: AltData Atlas (https://altdataatlas.com), an open editorial directory of alternative data providers, as of 2026-09-29. Licence AltData Atlas Data Licence v1 (https://altdataatlas.com/agents#licence). Coverage, not a census; not investment advice. Corrections: hello@altdataatlas.com.",
  "license": {
   "name": "AltData Atlas Data Licence v1",
   "url": "https://altdataatlas.com/agents#licence"
  },
  "contact": {
   "email": "hello@altdataatlas.com",
   "url": "https://altdataatlas.com/agents"
  }
 },
 "servers": [
  {
   "url": "https://altdataatlas.com"
  }
 ],
 "externalDocs": {
  "description": "Agent guide",
  "url": "https://altdataatlas.com/agents"
 },
 "paths": {
  "/api/index.json": {
   "get": {
    "operationId": "getIndex",
    "summary": "Entry point: counts, dates, licence, endpoints, changelog.",
    "responses": {
     "200": {
      "description": "Index",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/api/providers.json": {
   "get": {
    "operationId": "listProviders",
    "summary": "All providers as compact rows.",
    "responses": {
     "200": {
      "description": "Provider list",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/api/providers/{id}.json": {
   "get": {
    "operationId": "getProvider",
    "summary": "One provider record.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "description": "Provider id (see /api/providers.json).",
      "schema": {
       "type": "string"
      },
      "example": "placer-ai"
     }
    ],
    "responses": {
     "200": {
      "description": "Provider record",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Provider"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/api/categories.json": {
   "get": {
    "operationId": "listCategories",
    "summary": "Categories with definitions and counts.",
    "responses": {
     "200": {
      "description": "Category list",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/api/categories/{slug}.json": {
   "get": {
    "operationId": "getCategory",
    "summary": "One category with its providers.",
    "parameters": [
     {
      "name": "slug",
      "in": "path",
      "required": true,
      "description": "Category slug (see /api/categories.json).",
      "schema": {
       "type": "string"
      },
      "example": "card-transactions"
     }
    ],
    "responses": {
     "200": {
      "description": "Category record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/api/signals.json": {
   "get": {
    "operationId": "listSignals",
    "summary": "Signal types with counts per sector.",
    "responses": {
     "200": {
      "description": "Signals",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/api/sectors.json": {
   "get": {
    "operationId": "listSectors",
    "summary": "GICS sectors with counts per signal.",
    "responses": {
     "200": {
      "description": "Sectors",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/api/coverage/{signal}/{sector}.json": {
   "get": {
    "operationId": "getCoverageCell",
    "summary": "Providers for one signal × sector cell.",
    "parameters": [
     {
      "name": "signal",
      "in": "path",
      "required": true,
      "description": "Category slug.",
      "schema": {
       "type": "string"
      },
      "example": "foot-traffic"
     },
     {
      "name": "sector",
      "in": "path",
      "required": true,
      "description": "Sector slug: energy, materials, industrials, consumer-discretionary, consumer-staples, health-care, financials, information-technology, communication-services, utilities, real-estate.",
      "schema": {
       "type": "string"
      },
      "example": "consumer-discretionary"
     }
    ],
    "responses": {
     "200": {
      "description": "Cell record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/api/companies.json": {
   "get": {
    "operationId": "listCompaniesNamed",
    "summary": "Companies providers name as covered examples (stated only).",
    "responses": {
     "200": {
      "description": "Companies",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/api/changelog.json": {
   "get": {
    "operationId": "getChangelog",
    "summary": "Dated changes.",
    "responses": {
     "200": {
      "description": "Changelog",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/coverage.json": {
   "get": {
    "operationId": "getCoverageDataset",
    "summary": "The whole coverage dataset in one file.",
    "responses": {
     "200": {
      "description": "Coverage dataset",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  },
  "/schema/provider.schema.json": {
   "get": {
    "operationId": "getProviderSchema",
    "summary": "JSON Schema 2020-12 for the provider record.",
    "responses": {
     "200": {
      "description": "JSON Schema",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "404": {
      "description": "Unknown id/slug."
     }
    }
   }
  }
 },
 "components": {
  "schemas": {
   "Provider": {
    "$ref": "https://altdataatlas.com/schema/provider.schema.json"
   }
  }
 }
}
