Publicly available, free, complete database for antibiotics names and classes?
ChEBI

It should be possible to get this information from the ChEBI database, see the exported tables. You could download the ontologies (in OWL / OBO), parse them using some ad-hoc parser or using a dedicated library (e.g., Pronto), build a directed acyclic graph based on the is_a relationship, and extract the antibiotic subtree.

KEGG 

You could also use KEGG: Kyoto Encyclopedia of Genes and Genomes, but a subscription is probably required. The exported drug table should be easy to parse (e.g., in Python).

For a quick verification of the completeness, you can download the table, filter out everything except antibacterial agents and check the number of records:

curl "ftp://ftp.genome.jp/pub/kegg/medicus/drug/drug" &gt; keg_all.txt

cat keg_all.txt \
   | perl -pe 's/\n/BREAK/g' \
   | perl -pe 's@///BREAK@///\n@g' \
   | grep 'CLASS       Antibacterial' \
   | perl -pe 's/BREAK/\n/g' \
   &gt; keg_antibacterial.txt

cat keg_antibacterial.txt | grep "///" | wc -l


There are 646 records. However, some of them are almost identical (e.g., only 1 atom difference).

If you add | grep -i "antibiotic" \ to the pipeline, then you get only 445 records.