Which language(s) use a file extension
API · /proglangs-api
Programming Languages API
A reference for 800+ programming, markup and data languages, built from the GitHub Linguist dataset. Detect which language a file extension belongs to (e.g. .rs → Rust), look up a language by name or alias, get its type, brand color, file extensions and aliases, and search or list by type. Ideal for code editors, syntax tooling, repo analyzers and language badges. (Programming languages — not spoken languages.)
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 81 ms
- Server probes · 24h
- Subscribers
- 4,089
- active
- Total calls
- 95
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 3,000 calls / month
- 3 requests / second
- Hard cap (429 above quota, no overage)
- 3,000 calls/month
- 3 req/sec
- Lookup + extension detect
- No credit card
Starter
€4.00 /month
- 60,000 calls / month
- 10 requests / second
- Hard cap (429 above quota, no overage)
- 60k calls/month
- 10 req/sec
- Search + list
- Email support
Pro
€12.00 /month
- 350,000 calls / month
- 25 requests / second
- Hard cap (429 above quota, no overage)
- 350k calls/month
- 25 req/sec
- Editor / tooling integration
- Priority support
Mega
€33.00 /month
- 1,500,000 calls / month
- 50 requests / second
- Hard cap (429 above quota, no overage)
- 1.5M calls/month
- 50 req/sec
- Embed in product
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Programming Languages API
The language definitions GitHub uses to recognise code (the open-source Linguist data) as an API — a clean reference for syntax highlighting, file-type detection, repository dashboards and developer tooling. For each of 800+ languages the API returns its type (programming, markup, data or prose), its brand colour (the hex GitHub paints it), the file extensions associated with it, common aliases, the GitHub language id and the editor (ace) mode. Look a language up by name or alias (golang resolves to Go), reverse-look-up which language(s) own a file extension (.py → Python; .h → C, C++, Objective-C), list the languages of a type, search, or list them all. Distinct from languages-api (ISO 639 human languages) — this is the programming-language reference. Served from memory — always fast.
api.oanor.com/proglang-api
Cable Tray Fill API
Cable-tray fill engineering maths as an API, computed locally and deterministically from NEC Article 392 — the allowable-fill, single-layer and tray-width numbers an electrician, estimator or designer runs for a tray run. The fill endpoint applies NEC 392.22(A)(1) Column 1 for multiconductor power and lighting cables no larger than 4/0 in a ladder or ventilated-bottom tray: the total cable cross-sectional area is capped at the tray width × 7/6, so a 12-inch tray allows 14 in² — sum every cable's csa, get the percentage fill and whether it is within code, with the spare area left. The large-cable endpoint covers cables 4/0 and larger, which must lie in a single layer with the sum of their diameters not exceeding the tray width — no stacking — so it returns the spare width and the code check. The min-width endpoint inverts the rule to size the tray: minimum width = cable area × 6/7, rounded up to a standard 6/9/12/18/24/30/36-inch width, leaving room for spare capacity and future cables. Everything is computed locally and deterministically, so it is instant and private. Ideal for electrical-design and estimating tools, industrial and OSP utilities, and code-check calculators. Pure local computation — no key, no third-party service, instant. Ladder/ventilated trays; solid-bottom and mixed fills use the other NEC columns, and ampacity must be derated for fill. 3 compute endpoints. For conduit and box fill use a conduit API.
api.oanor.com/cabletray-api
MIME Types API
The canonical MIME / media-type database (the jshttp mime-db used by Express and most of the Node ecosystem: IANA + Apache + nginx), served from memory — no key. Resolve a media type to its file extensions, charset and compressibility; reverse-lookup the media type(s) for a file extension (e.g. png → image/png); and search or list types by source. 2,600+ media types, 1,000+ with file extensions. Lean, predictable JSON. Ideal for upload validation, Content-Type resolution, file-type detection, download handlers and developer tooling.
api.oanor.com/mimetypes-api
Network Ports API
The official IANA Service Name and Transport Protocol Port Number registry as an API — 12,500+ TCP, UDP, SCTP and DCCP port assignments. Look up what service runs on a port (e.g. 443 → https), find which port(s) a named service uses (e.g. ssh → 22), and search the registry by service or description. A handy reference for networking, DevOps, security and firewall tooling.
api.oanor.com/netports-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for Programming Languages API?
What's the rate limit for Programming Languages API?
How much does Programming Languages API cost?
Can I cancel my subscription anytime?
Is Programming Languages API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/proglangs-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/proglangs-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/proglangs-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/proglangs-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.