Free JSON API

A free symbols API for developers.

Every glyph in CopyGlyph is available as static JSON: the character, its Unicode code point, HTML entities, CSS escape, alt code and category. No key, no rate limit, CORS enabled. Build your own picker, docs or cheat sheet on it.

Endpoints

All symbols

The full dataset, 416+ symbols in one file.

GET https://copyglyph.dev/api/symbols.json

A single symbol by code point

Pass the decimal code point. For the degree sign (U+00B0 = 176):

GET https://copyglyph.dev/api/symbol/176.json

A single symbol by slug

The same identifier the site URL uses, so you never have to convert between the two.

GET https://copyglyph.dev/api/symbol/u00b0.json

Categories

GET https://copyglyph.dev/api/categories.json
GET https://copyglyph.dev/api/category/arrows.json

Bulk formats and schema

GET https://copyglyph.dev/api/symbols.csv
GET https://copyglyph.dev/api/schema.json

Licence

The dataset is published under Creative Commons Attribution 4.0. Use it in anything, including commercial work, and credit CopyGlyph with a link. Every response carries the licence URL and a version field, and the record shape is described by /api/schema.json, so you can validate what you receive instead of hoping the shape stays put.

Example response

{
  "char": "\u00b0",
  "codePoint": 176,
  "unicode": "U+00B0",
  "slug": "u00b0",
  "name": "Degree Sign",
  "categories": ["math"],
  "keywords": ["degree symbol", "degrees", "temperature"],
  "altCode": "Alt 0176 or Alt 248",
  "htmlEntityNamed": "°",
  "htmlEntityDecimal": "°",
  "htmlEntityHex": "°",
  "css": "\\00B0",
  "jsEscape": "\\u00B0",
  "utf8Bytes": "0xC2 0xB0",
  "indexTier": "A",
  "url": "https://copyglyph.dev/symbol/u00b0"
}

Fetch it

JavaScript (fetch)

const res = await fetch("https://copyglyph.dev/api/symbols.json");
const { symbols, version, license } = await res.json();
const degree = symbols.find((s) => s.codePoint === 176);
console.log(degree.char, degree.unicode);

Python (requests)

import requests

data = requests.get("https://copyglyph.dev/api/category/arrows.json").json()
for s in data["symbols"][:5]:
    print(s["char"], s["unicode"], s["name"])

curl

curl -s https://copyglyph.dev/api/symbol/u2713.json
curl -s https://copyglyph.dev/api/symbols.csv | head -3
curl -s https://copyglyph.dev/api/schema.json

React hook

import { useEffect, useState } from "react";

export function useSymbols(category = "arrows") {
  const [symbols, setSymbols] = useState([]);
  useEffect(() => {
    let live = true;
    fetch("https://copyglyph.dev/api/category/" + category + ".json")
      .then((r) => r.json())
      .then((d) => live && setSymbols(d.symbols));
    return () => {
      live = false;
    };
  }, [category]);
  return symbols;
}

Frequently asked questions

Is the CopyGlyph API really free?

Yes. It is a set of static JSON files served from the CDN. There is no key, no rate limit and no sign up. CORS is open, so you can fetch it from the browser.

Can I use it in a commercial project?

Yes. The data describes public Unicode characters and is free to use. A link back to CopyGlyph is appreciated but not required.

How often does the data change?

It changes when new symbols are added to the reference. Because the files are static and cached, pin to the fields you use rather than assuming a fixed length.

Prefer a drop-in UI? Grab the embeddable symbol picker instead of wiring the API yourself.

CopyGlyph is built and maintained by FusionStudios. We build fast, private, client-side tools like this one. If you need something similar inside your own product, get in touch.