Skip to content

Import a Photoshop .abr brush pack

POST
/brush-packs

Accepts a binary .abr upload, parses it, writes every decoded brush stamp to object storage, and registers the pack under the caller’s ownership. Returns the freshly created pack manifest so the frontend can immediately add the stamps to its brush picker.

object
name

Display name; defaults to the filename when omitted.

string
file
required

The .abr pack bytes.

string format: binary

Pack imported

Imported or authored brush pack owned by the caller. Includes the full stamp manifest so the frontend has everything it needs in one request.

object
id
required
string format: uuid
name
required
string
source_file

Original .abr filename, when imported.

string
nullable
created_at
required
string format: date-time
stamps
required
Array<object>

One brush stamp in a pack. The bitmap itself is fetched via /brush-packs/stamps/{id} — this schema is the metadata the frontend renderer needs to know how to draw with it.

object
id
required

Stable per-stamp identifier.

string format: uuid
label

Optional human-readable name (from the ABR descriptor).

string
nullable
width
required

Stamp bitmap width in source pixels.

integer
height
required

Stamp bitmap height in source pixels.

integer
spacing
required

Step between successive stamps as a fraction of the effective stamp diameter. GIMP / Photoshop convention: 0.1 = smooth (default), 1.0 = stamps just touch, >1 = sparse stippling.

number format: double
<= 10
align_to_path
required

When true, the stamp rotates to follow the stroke tangent.

boolean
size_jitter

0..1 random size perturbation per stamp.

number format: double
nullable
opacity_jitter
number format: double
nullable
angle_jitter

0..360 degrees random angle perturbation.

number format: double
nullable

Malformed file or unsupported ABR version

object
error
required

Human-readable error summary

string
Example
the request could not be completed

Authentication required, missing, or invalid

object
error
required

Human-readable error summary

string
Example
the request could not be completed
Example
{
"error": "authentication required: sign in and retry with a valid session or API token"
}