For Agents

Machine-readable design intelligence

Frameium is built for both humans and agents. Every catalog entry carries normalized taxonomy, an extracted color palette, and an explicit capability descriptor — inputs, outputs, and best-for. Query over a clean JSON API or discover the full index via llms.txt.

01 — Data Model

Tool object schema

Every tool in the catalog is a typed object. The agentCapabilities field is the machine-readable signal for routing: it tells an agent what the tool takes as input, what it produces, and what it is and is not suited for.

Tool — JSON
{
  "id": "tool:figma",
  "slug": "figma",
  "name": "Figma",
  "tagline": "The collaborative design tool.",
  "categories": ["ui-design"],
  "subcategories": ["prototyping"],
  "exportTypes": ["design", "code", "image"],
  "platforms": ["web", "desktop"],
  "pricing": "freemium",
  "colorBuckets": ["blue", "violet"],
  "palette": [
    { "hex": "#0D99FF", "name": "Figma Blue", "prominence": 0.6 },
    { "hex": "#1E1E1E", "name": "Dark", "prominence": 0.4 }
  ],
  "agentCapabilities": {
    "inputs": ["design-file", "image", "sketch"],
    "outputs": ["design", "code", "prototype"],
    "bestFor": ["UI design", "prototyping", "design systems"],
    "notFor": ["raster editing", "video"]
  },
  "metrics": { "likes": 240, "saves": 180, "views": 4100 },
  "status": "published",
  "featured": true,
  "addedAt": "2024-01-15"
}

02 — Taxonomy

Normalized classification

All values are closed-set enums — no free-text tags in filters. This makes the API deterministic for agent use. Export types map directly to what a tool produces, not what it is.

Taxonomy values — TypeScript
// Export types (Modality) — queryable as ?outputs=
"design" | "code" | "image" | "video" | "audio" | "3d"
| "motion" | "icon" | "font" | "data" | "document"

// Categories
"ui-design" | "generative-ai" | "prototyping" | "illustration"
| "motion-graphics" | "3d-cg" | "typography" | "color"
| "photography" | "productivity" | "developer-tools"

// Color buckets — queryable as ?colors=
"red" | "orange" | "amber" | "yellow" | "lime" | "green"
| "teal" | "cyan" | "blue" | "indigo" | "violet" | "purple"
| "magenta" | "pink" | "brown" | "beige" | "gray"
| "black" | "white" | "multicolor" | "monochrome"

03 — Color Buckets

Palette-to-bucket classification

Every catalog entry's extracted palette is reduced to a small set of searchable color buckets using HSL-based classification. Hue routes chromatic colors to the nearest named bucket; low-saturation values collapse to neutrals; palettes with four or more distinct chromatic buckets are tagged as multicolor.

"red"
"orange"
"amber"
"yellow"
"lime"
"green"
"teal"
"cyan"
"blue"
"indigo"
"violet"
"purple"
"magenta"
"pink"
"brown"
"beige"
"gray"
"black"
"white"
"multicolor"
"monochrome"

Use via ?colors=blue or ?colors=blue,teal (comma-separated or repeated params).

04 — API Reference

Endpoints

GET/api/v1/toolsList tools with optional filters. Returns Tool[].
GET/api/v1/tools/:slugSingle tool by slug.
GET/api/v1/inspirationList inspiration items with optional filters. Returns Inspiration[].
GET/api/v1/inspiration/:idSingle inspiration item by id.
GET/api/v1/searchCross-catalog search. Accepts ?q=. Returns { tools, inspiration }.

Shared query parameters

qFree-text search. Matches name, tagline, description, and tags.
sorttrending (default) | newest | most-saved | alphabetical
colorsAny ColorBucket id. Comma-separated or repeated.
outputsTools only. Any Modality / export type.
categoriesTools only. Category id(s).
platformsTools only. Platform id(s).
pricingTools only. free | freemium | paid | open-source
mediumInspiration only. Medium type.
styleInspiration only. Style descriptor(s).

05 — Examples

Example requests

Tools by output type
GET /api/v1/tools?outputs=code

Return all published tools that export code. The `outputs` param maps to the `exportTypes` field and accepts any value from the taxonomy modality list.

Tools by color + output
GET /api/v1/tools?outputs=code&colors=orange

Intersect two filters. `colors` accepts any ColorBucket id: red, orange, amber, yellow, lime, green, teal, cyan, blue, indigo, violet, purple, magenta, pink, brown, beige, gray, black, white, multicolor, monochrome.

Inspiration by color
GET /api/v1/inspiration?colors=blue&colors=teal

Repeated params are ORed within the same field. This returns inspiration items tagged with either `blue` or `teal` in their colorBuckets.

Global text search
GET /api/v1/search?q=gradient+3d+render

Cross-catalog search. Returns `{ tools, inspiration }` each sorted by trending score. Text matches against name, tagline, description, tags, and style descriptors.

Tools sorted by newest
GET /api/v1/tools?sort=newest&categories=generative-ai

Sort options: `trending` (default), `newest`, `most-saved`, `alphabetical`. Combine with any filter.

06 — Discovery

How agents discover this index

/llms.txt Manifest for AI crawlers (GPTBot, Claude-Web, PerplexityBot). Lists the full catalog structure, key URLs, and usage guidance for LLMs.
/llms-full.txt Expanded manifest with all published tool entries serialized as structured text for embedding or in-context retrieval.
/api/v1 JSON API index listing all available endpoints and query parameters.
/sitemap.xml Standard sitemap covering all catalog pages, detail pages, and static routes.