# Changelog of Nigeria NAFDAC Greenbook Registered Products (`a-g-d/ng-nafdac`) Actor

- **URL**: https://apify.com/a-g-d/ng-nafdac/changelog.md
- **Full Actor documentation**: https://apify.com/a-g-d/ng-nafdac.md

## Changelog

All notable changes to this project are documented here. The format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project adheres to
[Semantic Versioning](https://semver.org/).

### \[0.1.0] - 2026-09-27

#### Added

- Registered products from Nigeria's NAFDAC Greenbook (greenbook.nafdac.gov.ng) through
  the site's own DataTables JSON: drugs, vaccines and biologics, medical devices,
  veterinary products, herbals and nutraceuticals, Active and Inactive, newest approval
  first, up to 20,000 records per run at 1,000 per request.
- Filters: category and status (exact), product name, active ingredient or synonym,
  registration number and applicant (contains), approved since a date, and registrations
  expiring between today (Lagos time) and a date.
- English-keyed records: NRN, product id, product name without the editors' marks, the
  editors' data-quality note, category, status, marketing category (POM/OTC), applicant,
  manufacturer, active ingredients as a list, ingredient synonym, form, route, strength,
  pack size, composition, ATC code, SmPC link, ISO approval and expiry dates, product page,
  source page and fetch time.
- Manufacturer names from the Greenbook's manufacturer directory, read once per run
  (`includeManufacturer`, on by default), and optionally manufacturer countries from one
  product page per manufacturer (`includeManufacturerCountry`).
- Privacy: the free-text product description, which often holds applicants' phone numbers
  and e-mail addresses, is dropped at parse time; other free-text values carrying contact
  data are replaced by null.
- Politeness: at least 1 s between requests, one connection, an honest User-Agent;
  retries with exponential backoff and jitter on connection errors, timeouts, 429 and 5xx
  inside a run-wide budget; the server's HTTP 200 error answers treated as errors; a stop
  on HTTP 401/403.
- Pay-per-event billing: `product-record` per stored record, charged after storing; each
  page is planned against the remaining spending limit and the run stops cleanly when it
  runs out.
