API Developer

Developer API memberikan akses ke metadata untuk semua keluarga yang dilayani oleh Google Fonts. API ini memungkinkan aplikasi mengkueri Google Fonts untuk jenis font yang tersedia. REST API menyediakan data dalam format JSON yang menyertakan gaya dan skrip (disebut subset di Google Fonts) di setiap kelompok. API dapat mengurutkan daftar kelompok berdasarkan abjad, tanggal ditambahkan, jumlah gaya, tren, atau popularitas.

Audiens

Dokumen ini ditujukan untuk developer aplikasi dan web. Penggunaan Developer API memerlukan pengetahuan tentang JavaScript.

Contoh singkat

Untuk mengambil daftar font dinamis yang ditawarkan oleh layanan Google Fonts, kirim permintaan berikut:

https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY

Contoh hasil akan terlihat seperti ini:

{
 "kind": "webfonts#webfontList",
 "items": [
  [...]
  {
    "family": "Anonymous Pro",
    "variants": [
      "regular",
      "italic",
      "700",
      "700italic"
    ],
    "subsets": [
      "cyrillic",
      "greek",
      "latin",
      "latin-ext"
    ],
    "version": "v21",
    "lastModified": "2022-09-22",
    "files": {
      "regular": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2Bp2a15UIB7Un-bOeISG3pLlw89CH98Ko.ttf",
      "italic": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2fp2a15UIB7Un-bOeISG3pHl428AP44Kqr2Q.ttf",
      "700": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2cp2a15UIB7Un-bOeISG3pFuAT0CnW7KOywKo.ttf",
      "700italic": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2ap2a15UIB7Un-bOeISG3pHl4OTCzc6IG30KqB9Q.ttf"
    },
    "category": "monospace",
    "kind": "webfonts#webfont",
    "menu": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2Bp2a15UIB7Un-bOeISG3pHl028A.ttf"
  },
  {
    "family": "Antic",
    "variants": [
      "regular"
    ],
    "subsets": [
      "latin"
    ],
    "version": "v19",
    "lastModified": "2022-09-22",
    "files": {
      "regular": "http://fonts.gstatic.com/s/antic/v19/TuGfUVB8XY5DRaZLodgzydtk.ttf"
    },
    "category": "sans-serif",
    "kind": "webfonts#webfont",
    "menu": "http://fonts.gstatic.com/s/antic/v19/TuGfUVB8XY5DRZZKq9w.ttf"
  },
  [...]
 ]
}

Mengidentifikasi permohonan Anda ke Google

Aplikasi Anda perlu mengidentifikasi dirinya sendiri setiap kali mengirim permintaan ke Google Fonts Developer API, dengan menyertakan kunci API dengan setiap permintaan.

Mendapatkan dan menggunakan kunci API

Dapatkan Kunci

Atau buat akun di halaman Kredensial.

Setelah Anda memiliki kunci API, aplikasi Anda dapat menambahkan parameter kueri key=yourAPIKey ke semua URL permintaan.

Kunci API aman untuk disematkan dalam URL; tidak memerlukan encoding.

Detail

Respons JSON (lihat contoh di atas) terdiri dari array bernama "items" yang berisi objek dengan informasi tentang setiap jenis font.

Objek keluarga terdiri dari kolom berikut:

  • jenis: Objek, objek webfont
  • family: Nama keluarga
  • subset: Daftar skrip yang didukung oleh keluarga
  • menu: URL ke subkumpulan keluarga yang hanya mencakup nama keluarga.
  • varian: Berbagai gaya yang tersedia untuk keluarga
  • version: Versi jenis font.
  • sumbu: Rentang sumbu, Hanya muncul berdasarkan permintaan(lihat di bawah) untuk font variabel.
  • lastModified: Tanggal (format "yyyy-MM-dd") jenis font diubah untuk terakhir kali.
  • file: File jenis font (dengan semua skrip yang didukung) untuk setiap varian yang tersedia.

Mudah untuk membuat permintaan API Fonts dengan menggabungkan informasi untuk setiap keluarga. Misalnya, dengan asumsi bahwa kita memiliki referensi ke objek keluarga untuk Anonim Pro:

[...]

var apiUrl = [];
apiUrl.push('https://fonts.googleapis.com/css?family=');
apiUrl.push(anonymousPro.family.replace(/ /g, '+'));
if (contains('italic', anonymousPro.variants)) {
  apiUrl.push(':');
  apiUrl.push('italic');
}
if (contains('greek', anonymousPro.subsets)) {
  apiUrl.push('&subset=');
  apiUrl.push('greek');
}

// url: 'https://fonts.googleapis.com/css?family=Anonymous+Pro:italic&subset=greek'
var url = apiUrl.join('');

[...]

Pengurutan

Daftar keluarga tidak ditampilkan secara default dalam urutan tertentu. Namun, Anda dapat mengurutkan daftar menggunakan parameter pengurutan:

https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity

Nilai pengurutan yang memungkinkan adalah:

  • alfa: Urutkan daftar menurut abjad
  • date: Mengurutkan daftar berdasarkan tanggal ditambahkan (font terbaru ditambahkan atau diperbarui terlebih dahulu)
  • popularitas: Urutkan daftar berdasarkan popularitas (keluarga paling populer terlebih dahulu)
  • style: Mengurutkan daftar berdasarkan jumlah gaya yang tersedia (keluarga dengan gaya terlebih dahulu)
  • trending: Urutkan daftar menurut keluarga yang mengalami peningkatan penggunaan (keluarga mengalami pertumbuhan terbesar)

Pemfilteran

Membuat kueri untuk grup keluarga tertentu

https://www.googleapis.com/webfonts/v1/webfonts?family=family_name

Semua keluarga yang mendukung subkumpulan bahasa Yunani

https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name

Pengoptimalan

Untuk mengambil file font yang dikompresi dalam format woff2

https://www.googleapis.com/webfonts/v1/webfonts?capability=WOFF2

Font Variabel

Font variabel menawarkan rentang gaya yang berkelanjutan. Secara default, kombinasi file font statis ditampilkan untuk font variabel yang dibuat pada posisi standar. Jika capaibility=VF disetel, file font variabel akan ditampilkan, bukan statis, beserta metadata rentang sumbu yang tersedia. contoh contoh:

https://www.googleapis.com/webfonts/v1/webfonts?capaibility=VF

Contoh respons:

{
 "kind": "webfonts#webfontList",
 "items": [
  [...]
  {
    "family": "Noto Sans Display",
    "variants": [
      "regular",
      "italic"
    ],
    "subsets": [
      "cyrillic",
      "cyrillic-ext",
      "greek",
      "greek-ext",
      "latin",
      "latin-ext",
      "vietnamese"
    ],
    "version": "v20",
    "lastModified": "2022-09-22",
    "files": {
      "regular": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLplK4fy6r6tOBEJg0IAKzqdFZVZxokvfn_BDLxR.ttf",
      "italic": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLpjK4fy6r6tOBEJg0IAKzqdFZVZxrktdHvjCaxRgew.ttf"
    },
    "category": "sans-serif",
    "kind": "webfonts#webfont",
    "menu": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLpbK4fy6r6tOBEJg0IAKzqdFZVZxpMkXJMhnB9XjO1o90LuV-PT4Doq_AKp_3cKZTCa3g.ttf",
    "axes": [
      {
        "tag": "wdth",
        "start": 62.5,
        "end": 100
      },
      {
        "tag": "wght",
        "start": 100,
        "end": 900
      }
    ]
  },
  [...]
 ]
}

Spesifikasi URL API

webfonts?key=<your_key>[&family=<family>][&subset=<subset>][&capability=<capability>...][&sort=<sort>]

your_key: Kunci API developer Anda.

family: Nama jenis font.

subset: Nama subset font.

capability: VF | WOFF2

sort: alpha | date | popularity | style | trending.