openapi: 3.0.3 info: title: DataFirst Microdata Catalog API (NADA) articles collections API description: DataFirst is a University of Cape Town research unit and data service providing online access to survey and administrative microdata from South Africa and other African countries. Its open data portal is built on the NADA (National Data Archive) cataloging tool, which exposes a public, unauthenticated REST/JSON API for browsing the catalog of studies. This OpenAPI description was reverse-engineered from confirmed live responses of the public catalog endpoint (verified returning survey metadata in JSON). Only paths and response fields actually observed in live responses are documented here. version: '1.0' contact: name: DataFirst url: https://www.datafirst.uct.ac.za/ servers: - url: https://www.datafirst.uct.ac.za/dataportal/index.php/api description: DataFirst NADA public catalog API tags: - name: collections description: Public collections paths: /collections: get: tags: - collections summary: List public collections operationId: listCollections parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/pageSize' - name: institution in: query schema: type: integer responses: '200': description: A list of public collections. content: application/json: schema: type: array items: $ref: '#/components/schemas/Collection' /collections/{collection_id}: get: tags: - collections summary: Get a public collection operationId: getCollection parameters: - name: collection_id in: path required: true schema: type: integer responses: '200': description: The requested collection. content: application/json: schema: $ref: '#/components/schemas/Collection' '404': $ref: '#/components/responses/NotFound' components: schemas: Collection: type: object required: - id - title - doi - handle - url - timeline properties: id: type: integer example: 123 title: type: string example: Sample collection doi: type: string example: 10.6084/m9.figshare.123 handle: type: string url: type: string format: uri example: https://api.figshare.com/v2/collections/123 timeline: $ref: '#/components/schemas/Timeline' Timeline: type: object description: Publishing timeline for an item. properties: posted: type: string description: Date the item was posted. example: '2026-06-04T02:59:32' firstOnline: type: string description: Date the item first went online. revision: type: string description: Date of the last revision. ErrorMessage: type: object properties: code: type: string description: Machine-readable error code. message: type: string description: Human-readable error message. responses: NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' parameters: pageSize: name: page_size in: query description: Number of results per page. schema: type: integer minimum: 1 maximum: 1000 page: name: page in: query description: Page number for pagination. schema: type: integer minimum: 1