# Rainbrand Brand Skill

> What a read of a whole Brand Skill from Rainbrand returns for Linear: a grouped palette, type roles, a logo catalog, guidance files and a version ID.

| Fact | Value | Source |
| --- | --- | --- |
| Request | `GET https://www.rainbrand.com/api/v1/brands/{id}/skill` | [docs](https://docs.rainbrand.com/api-reference/brands/inspect-a-brand-skill) |
| Context | Maintained: prepared from sources added for the brand | |
| Auth | Send the API key in the x-api-key header. | [source](https://docs.rainbrand.com/api/authentication), 11 November 2026 |
| Version | skillId is the canonical identity of this immutable Brand Skill, meant for caching and versioning. | [source](https://docs.rainbrand.com/api-reference/brands/inspect-a-brand-skill), 11 November 2026 |
| Plans | As of 11 November 2026, new Rainbrand accounts get a one-time free grant that includes one brand, and the cheapest paid plan, Plus, is $20 a month billed monthly. API and MCP access are included in every plan. | [source](https://www.rainbrand.com/pricing), 11 November 2026 |
| Over MCP | The MCP tool get_brand reads a brand's status, profile, guidance and files. | [source](https://docs.rainbrand.com/mcp/tools), 11 November 2026 |

A Brand Skill is the complete, versioned representation of a brand's context for agents. It has the profile of the brand, its guidance, and references to its files. A [Brief](https://brandcontextapi.com/responses/rainbrand-brief) is the part chosen for one task. The Brand Skill is the whole brand as of one version. A Brand Skill, like a Brief, exists only for brands that someone added to Rainbrand.

## The request

```bash
curl https://www.rainbrand.com/api/v1/brands/<brand ID>/skill \
  -H "x-api-key: $RAINBRAND_API_KEY"
```

Inspect a Brand Skill returns the active version as a snapshot. Get a brand (`GET /brands/{id}`) returns the current profile and version. An export endpoint prepares the same Skill as a ZIP file. We read the Linear brand over the Rainbrand Model Context Protocol (MCP) server instead. We used `get_brand` for the profile and the file list, `view_files` for the guidance files, and `list_brand_versions` for its versions.

## The response

`get_brand over MCP` (Rainbrand Brand Skill)

```json
{
  "status": "ready",
  "version_id": "e16b6239-d74f-4922-97c1-d65c6ae3d882",
  "profile": {
    "name": "Linear",
    "palette": [
      { "hex": "#F4F5F8", "name": "Mercury White", "group": "Official brand colors" },
      { "hex": "#7170FF", "group": "Website accent", "usage": "Captured …" },
      …
    ],
    "typography": { "roles": [{ "name": "Heading", "weight": 510, … }, …] },
    "logo_catalog": {
      "items": [{ "form": "lockup", "contrasts_best_on": ["light"] }, …]
    }
  },
  "files": ["SKILL.md", "references/copywriting.md", …]
}
```

1. `version_id`: Over REST, this is skillId.
2. `group`: 11 colors, grouped as official or captured.
3. `weight`: Inter Variable: Heading 510, Body 400.
4. `form`: Each logo with the backgrounds that it suits.
5. `files`: 23 files: guidance, fonts, images.

In our response, each type role listed the same font file nine times. [/data.json](https://brandcontextapi.com/data.json) keeps one, under `responses.rainbrand-brand-skill`, with shortened signed file links. Over REST, the profile keys are camelCase (`colors`, `logoCatalog`), and each guidance file comes with its full text.

The guidance came as eight Markdown files: colors, copywriting, positioning, logo, typography, interface design, editorial imagery and product imagery. The "Official brand colors" group and the logo rules match the Linear brand page at linear.app/brand. These are two lines from the files:

> Write "Linear" as one word with a capital L. It is the name of both the company and application, so never write "Linear app" or lowercase "linear."

> Linear's official brand guidance names Mercury White and Nordic Gray as its preferred light and dark accents for monochrome wordmark use.

## What is not in it?

- Competitors and prices are not in it. The positioning file says how to describe Linear. It names one feature, Loops, because we added the announcement of Loops as a source.
- Content that nobody added is not in it. The two versions from 15 October 2026 did not mention Loops, although Linear announced it in July. On 11 November, we added the announcement, and that made the version shown here. Over MCP, `get_brand` takes an optional `version_id`. We found no published way to read an earlier version over REST.
- Values for spacing and components are not in it. `references/interface-design.md` describes the interface in words.

## Empty and failed responses

| Status | Code | What it means |
| --- | --- | --- |
| 404 | `BRAND_NOT_FOUND` | The brand does not exist |
| 409 | `BRAND_SKILL_UNAVAILABLE` | The brand has no Skill to inspect yet |
| 429 | `TOO_MANY_REQUESTS` | Rate limit. Wait for `Retry-After` |
| 500 | `INTERNAL_ERROR` | Rainbrand failed to inspect the brand |

While Rainbrand prepares a brand, Get a brand reports `analyzing`, then `ready`, `logo_required` or `failed`.

## Plans

The Brand Skill has the same plans as the [Brief](https://brandcontextapi.com/responses/rainbrand-brief). As of 11 November 2026, new accounts get a one-time free grant that includes one brand. Paid plans start with Plus at $20 a month, on [Rainbrand's pricing page](https://www.rainbrand.com/pricing). Each API key has a default limit of 120 requests. REST and MCP share the limit, and it resets 60 seconds after the last request. Over MCP, `get_brand` reads the brand at `mcp.rainbrand.com/mcp`.

---

Source: https://brandcontextapi.com/responses/rainbrand-brand-skill
Last updated: 2026-11-12
Published by The Brand Object. The Brand Object is run by Rainbrand, which makes two of the endpoints described here. Their pages follow the same rules as the others.
