# Pharmacy Commons > Open, source-traced drug knowledge. Every record has a permanent identifier (PCID), a human page and a public, read-only JSON/JSON-LD API with version and change history. No key needed. API base: https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api PCIDs look like PCID-1001923. Permanent IRI: https://pharmacycommons.org/id/PCID-n. Slugs (metformin) also resolve. To look something up by name, call /v1/search?q= first, then fetch the record at results[].links.json. Every fact in a record traces to provenance.sources[]; cite the PCID and version.number when you use it. Third-party fields keep their source license; Pharmacy Commons–authored content is CC0 1.0. ## Endpoints - [Find records by name, brand or class](https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api/v1/search): Finds records by generic name, brand name, slug or class abbreviation ("ssri", "ace inhibitor"). Multi-word queries match every word in any order. Each result says how it matched and links to its full record. - [One record, in full](https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api/v1/entities/{ref}): The canonical document for one record: identity, identifiers, classification, hierarchy, relationships, brands, labels, provenance and version. Every record in every block has this shape; sections with no data are left out. /v1/drugs/{ref} is an alias. - [Every version of a record](https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api/v1/entities/{ref}/versions): A new version is recorded whenever the content of the record changes, identified by a SHA-256 hash of that content. Newest first. - [A record exactly as it was](https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api/v1/entities/{ref}/versions/{n}): A past version of the record. A numbered version never changes, so it is cached for a year. - [Field-level change log](https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api/v1/entities/{ref}/changes): Each change to the record, or to a relationship it takes part in, with the old and new value of every field and the run that made it. Newest first. Follow "next" for older changes. - [Drugs in a class](https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api/v1/entities/{ref}/members): The records that belong to a pharmacologic class, directly or through a sub-class. - [What the API holds](https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api/v1): Record types with their PCID ranges and counts, the data sources, the license, and the list of endpoints. - [JSON Schema for a record](https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api/v1/schema/entity.json): The contract every record document follows (JSON Schema 2020-12). Validate against it, or generate types from it. - [Linked-data vocabulary](https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api/v1/context.jsonld): Maps the document fields to schema.org and the Pharmacy Commons vocabulary, so the .jsonld form reads as linked data. ## Docs - [Developers page and console](https://pharmacycommons.org/developers) - [OpenAPI spec](https://pharmacycommons.org/openapi.json) - [JSON Schema for a record](https://nenwovhyrdcdkhxzjiiv.supabase.co/functions/v1/api/v1/schema/entity.json)