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.jsonA single symbol by code point
Pass the decimal code point. For the degree sign (U+00B0 = 176):
GET https://copyglyph.dev/api/symbol/176.jsonA 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.jsonCategories
GET https://copyglyph.dev/api/categories.json
GET https://copyglyph.dev/api/category/arrows.jsonBulk formats and schema
GET https://copyglyph.dev/api/symbols.csv
GET https://copyglyph.dev/api/schema.jsonLicence
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.jsonReact 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.
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.