API Reference
A single HTTP endpoint that returns SVG icon sheets for embedding anywhere.
https://skillicons.devUsage
Pass a comma-separated list of icon names to the i parameter.
GET /icons?i=js,html,css,wasm| Param | Type | Required | Description |
|---|---|---|---|
| i | string | Yes | Comma-separated icon names, or "all" |
| t | dark | light | No | Icon theme. Default: dark |
| perline | number | No | Icons per row, 1–50. Default: 15 |
Themes
Use t=dark or t=light. Unthemed icons ignore this parameter.
Icons Per Line
Control the grid width with perline. Accepted range: 1–50. Default: 15.
GET /icons?i=aws,gcp,azure,react,vue,flutter&perline=3Short-name Aliases
Common shorthands are accepted — e.g. ts resolves to typescript.
| Alias | Resolves to |
|---|---|
| js | javascript |
| ts | typescript |
| py | python |
| tailwind | tailwindcss |
| vue | vuejs |
| nuxt | nuxtjs |
| go | golang |
| cf | cloudflare |
| wasm | webassembly |
| postgres | postgresql |
| k8s | kubernetes |
| next | nextjs |
| mongo | mongodb |
| md | markdown |
| ps | photoshop |
| ai | illustrator |
| pr | premiere |
| ae | aftereffects |
| scss | sass |
| sc | scala |
| net | dotnet |
| gatsbyjs | gatsby |
| gql | graphql |
| vlang | v |
| amazonwebservices | aws |
| bots | discordbots |
| express | expressjs |
| googlecloud | gcp |
| mui | materialui |
| windi | windicss |
| unreal | unrealengine |
| nest | nestjs |
| ktorio | ktor |
| pwsh | powershell |
| au | audition |
| rollup | rollupjs |
| rxjs | reactivex |
| rxjava | reactivex |
| ghactions | githubactions |
| sklearn | scikitlearn |
All Icons (284)
Use any of these names in the i parameter.
awsabletonactivitypubactixadonisaftereffectsaiscriptalpinejsanacondaandroidstudioangularansibleanthropicantigravityapolloappleappwritearcharduinoastroatomauditionautocadazulazurebsdbabelbashbevybitbucketblenderblueskybootstrapbuncclioncmakecppcscsscanvacassandraclaudeclojurecloudflarecodepencoffeescriptcrystalcursorcypressd3dbeaverdenodavinciresolvedartdatagripdebiandevtodiscorddiscordbotsdiscordjsdjangodockerdotnetdynamodbeclipseelasticsearchelectronelixirelysiaemacsemberemotionexpressjsfacebookfastapifediversefigmafirebaseflaskflutterflyforthfortranframerframermotiongcpgtkgamemakerstudiogatsbygentoogherkingitgitlabgithubgithubactionsgmailgolanggodotgooglecolabgooglescholargradlegrafanagraphqlgsapgulphtmlhackerrankhaskellhaxehaxeflixelherokuhibernatehtmxhuggingfaceipfsideaillustratorinstagramjqueryjavajavascriptjenkinsjestjuliakafkakalikotlinktorkuberneteslatexlangchainlaravellesslinearlinkedinlinuxlitlivewireluamarkdownmastodonmaterialuimatlabmavenmintmisskeymongodbmongoosemysqlneovimnestjsnetlifynextjsnginxnimnixnodejsnotionnpmnuxtjsocamlobsidianoctaveollamaopenaiopencvopenshiftopenstackphpperlphotoshopphpstormpiniapinterestpklplan9planetscalepnpmpolarspostgresqlpostmanpowershellpremiereprismaprocessingprometheuspugpycharmpytorchpythonqtquarkusrrosrabbitmqrailsrailwayraspberrypireactreactrouterreactivexredhatredditredisreduxregexremixrenderreplitriderrobloxstudiorocketrollupjsrubyrustsqlitesvgsassscalascikitlearnseleniumsentrysequelizesignalsketchupsnapchatsolidjssolidityspotifyspringstackoverflowstyledcomponentssublimesupabasesvelteswiftsymfonytailwindcsstauritelegramtensorflowterraformthreadsthreejstrelloturborepotwitchtwittertypescriptubuntuuipathunityunrealenginevvimvscodevscodiumvalavercelverilogvisualstudiovitevitestvuejsvuetifywarpwebassemblywebstormwebflowwebpackwhatsappwindicsswindowswordpressworkersxxdyarnyewyoutubezedzigp5jsAdding a New Icon
Want to contribute an icon? Follow these steps to make sure it renders correctly in the composite SVG sheet.
Prepare your SVG
Icons must be 256×256 with viewBox="0 0 256 256". No <style> blocks — CSS class names collide when icons are composited. Use inline fill="..." attributes instead. Prefix gradient/filter IDs with a unique string to avoid conflicts.
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<!-- paths with inline fill attributes -->
<linearGradient id="myicon_grad1" ...>...</linearGradient>
<path fill="url(#myicon_grad1)" d="..." />
</svg>Name the file
Use TitleCase. Themed icons get -Dark / -Light suffixes. Single unthemed icons get no suffix.
✅ Correct
ReactRouter-Dark.svg
ReactRouter-Light.svg
GoogleColab.svg
❌ Incorrect
react-router-dark.svg
googlecolab.svg
Google-Colab-Dark.svg
Drop it in icons/ and rebuild
# Place your file(s) in icons/
# Then rebuild the icon map:
node build.jsTest locally
npx esbuild index.js --bundle --outfile=dist/worker.js --platform=browser --format=iife
./node_modules/.bin/miniflare dist/worker.js --wrangler-config wrangler.dev.toml \
--no-update-check --port 8787 --upstream https://skillicons.devThen open http://localhost:8787/icons?i=youriconname and check both t=dark and t=light if applicable.
Open a pull request
Title: feat: add <IconName> icon. Include the icon's license and source. One icon per PR keeps review fast. See CONTRIBUTING.md for the full checklist.