---
title: IconMuse data format
description: Read IconMuse icons as JSON path data from Python, Go, Rust, C#, game engines and design tools.
---

# IconMuse from any language

**Status:** live at `https://icons.chordmuse.app/dist/icons.json`.

```bash
curl https://icons.chordmuse.app/dist/icons.json
```

## Format

```json
{
  "name": "IconMuse",
  "version": "1.0.0",
  "viewBox": "0 0 24 24",
  "strokeWidth": 1.5,
  "strokeLinecap": "round",
  "strokeLinejoin": "round",
  "categories": [{ "id": "notation", "label": "Notation" }],
  "icons": [
    { "name": "play", "category": "playback", "tags": ["start"], "paths": [{ "d": "M7 4.8v14.4…Z", "filled": false }] }
  ]
}
```

To draw an icon:
1. Set up a 24 × 24 canvas.
2. Stroke every path at `strokeWidth`, with round caps and round joins, in your colour.
3. Also fill the paths where `filled` is `true`, using the same colour.

All path data is free of transforms.

## Python example

```python
import json, urllib.request

data = json.load(urllib.request.urlopen("https://icons.chordmuse.app/dist/icons.json"))
icon = next(i for i in data["icons"] if i["name"] == "vinyl")
paths = "".join(
    f'<path d="{p["d"]}"' + (' fill="currentColor"' if p["filled"] else "") + "/>"
    for p in icon["paths"]
)
svg = f'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">{paths}</svg>'
```

Individual SVG files are also available at `https://icons.chordmuse.app/svg/<name>.svg`.
