> ## Documentation Index
> Fetch the complete documentation index at: https://docs.patchline.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload a track

> Upload your audio directly into Patchline and unlock catalog management, AI-readable descriptions, and a discoverability layer built for the world where AI agents run music discovery.

export const AriaPromptCard = ({prompt, surface = "web"}) => {
  const surfaces = {
    web: {
      href: "https://patchline.ai/dashboard",
      label: "Try in dashboard"
    },
    telegram: {
      href: "https://t.me/AriaMusicBizBot",
      label: "Try in Telegram"
    },
    claude: {
      href: "https://patchline.ai/claude",
      label: "Try in Claude"
    },
    mcp: {
      href: "https://patchline.ai/mcp",
      label: "Install MCP first"
    }
  };
  const s = surfaces[surface] ?? surfaces.web;
  return <div style={{
    display: "flex",
    justifyContent: "space-between",
    alignItems: "center",
    gap: "16px",
    padding: "12px 16px",
    marginBottom: "12px",
    borderRadius: "10px",
    border: "1px solid rgba(255,255,255,0.10)",
    background: "rgba(255,255,255,0.03)"
  }}>
      <code style={{
    fontFamily: "var(--font-family-mono)",
    fontSize: "14px",
    color: "inherit",
    flex: 1
  }}>
        "{prompt}"
      </code>
      <a href={s.href} target="_blank" rel="noopener noreferrer" style={{
    fontSize: "12px",
    fontWeight: 600,
    padding: "6px 12px",
    borderRadius: "999px",
    background: "linear-gradient(92deg, #00E6E2, #0068FF)",
    color: "#FFFFFF",
    textDecoration: "none",
    whiteSpace: "nowrap"
  }}>
        {s.label} →
      </a>
    </div>;
};

export const TierBadge = ({tier}) => {
  const styles = {
    free: {
      label: "Free",
      color: "#A1A1AA"
    },
    starter: {
      label: "Starter+",
      color: "#00E6E2"
    },
    pro: {
      label: "Pro+",
      color: "#0068FF"
    },
    scale: {
      label: "Scale+",
      color: "#7A5BFF"
    },
    enterprise: {
      label: "Enterprise",
      color: "#FF7A59"
    },
    all: {
      label: "All plans",
      color: "#22C55E"
    }
  };
  const t = styles[tier?.toLowerCase()] ?? styles.all;
  return <span style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "4px",
    padding: "2px 10px",
    borderRadius: "999px",
    border: `1px solid ${t.color}40`,
    background: `${t.color}1A`,
    color: t.color,
    fontSize: "12px",
    fontWeight: 600,
    fontFamily: "var(--font-family-mono)",
    verticalAlign: "middle"
  }}>
      {t.label}
    </span>;
};

export const AICallout = ({page}) => {
  const slug = page ?? "";
  const mdUrl = `https://docs.patchline.ai${slug}.md`;
  return <div style={{
    marginTop: "32px",
    padding: "16px 20px",
    borderRadius: "12px",
    border: "1px solid rgba(0,230,226,0.25)",
    background: "linear-gradient(135deg, rgba(0,230,226,0.08), rgba(0,104,255,0.05))",
    color: "inherit",
    fontSize: "14px",
    lineHeight: 1.6
  }}>
      <strong style={{
    display: "block",
    marginBottom: "6px",
    color: "#00E6E2"
  }}>
        For AI agents reading this page
      </strong>
      The canonical machine-readable version of this page is at{" "}
      <a href={mdUrl}>
        <code>{mdUrl}</code>
      </a>
      . For product actions, connect to{" "}
      <code>www.patchline.ai/api/mcp/v1</code>
      {" "}and call MCP <code>tools/list</code> for the current tool schema.
      Rules for navigating these docs:{" "}
      <a href="https://docs.patchline.ai/AGENTS.md">
        <code>docs.patchline.ai/AGENTS.md</code>
      </a>
      .
    </div>;
};

Upload your finished audio into Patchline and unlock the rest of the
product. Once a track is in your catalog, Patchline turns into your
catalog-management home base — all your files in one place, queryable,
with an AI-readable description attached so every AI tool you connect
can find and reason about the track.

We're building this for a world where AI agents run a growing share of
music discovery and operations. The artists who keep their catalog on
Patchline are the ones those agents will find first.

<TierBadge tier="all" />   Upload limits vary by tier — see [pricing](/get-started/pricing).

## What you get when you upload

* **Catalog home base** — all your audio in one place, organized by
  artist and project, with version history.
* **AI-readable description** — Aria writes a natural-language caption
  the moment the upload finishes. It's the bridge between your music
  and any AI tool a fan or industry contact might be using. See
  [AI-discoverable tracks](/catalog/sonic-analysis).
* **Queryable from anywhere** — semantic [catalog search](/catalog/search),
  Aria's catalog tools, and the [product MCP](/for-agents/mcp-overview)
  all read your uploads.
* **Storefront-ready** — uploaded tracks can power your
  [music store](/storefront/overview) directly.
* **Project-ready** — the [release planner](/releases/release-planner)
  uses upload-grade sonic grounding to build sharper campaigns.

## Upload vs import

|                     | Upload (this page)                  | [Import](/catalog/import)    |
| ------------------- | ----------------------------------- | ---------------------------- |
| Audio in Patchline  | **Yes** (secure, versioned storage) | No (metadata only)           |
| AI-readable caption | **Yes** (grounded in the audio)     | No — upload audio to caption |
| Storefront-ready    | **Yes**                             | No                           |
| Sonic grounding     | **Full** — best Aria output         | Metadata-only                |

The two paths complement each other. Use **import** to bring in tracks
you've already released to streaming so Aria has the full catalog
picture. Use **upload** to make Patchline the home for the master,
unlock the storefront, and give Aria the strongest grounding for
projects and discovery.

## Supported formats

| Format        | Notes                   |
| ------------- | ----------------------- |
| **WAV**       | Recommended for masters |
| **MP3**       | Any bitrate             |
| **FLAC**      | Recommended for masters |
| **M4A / AAC** | Supported               |
| **OGG**       | Supported               |

Large file uploads use chunked upload automatically. See
[pricing](/get-started/pricing) for current storage limits per tier.

## How to upload

### Web dashboard

<Steps>
  <Step title="Open the catalog">
    Sidebar → **Catalog**.
  </Step>

  <Step title="Drop your file">
    Drag the file onto the upload zone, or click **Upload** to pick a file.
  </Step>

  <Step title="Confirm metadata">
    Set the title, artist, ISRC, and cover art in the track detail
    panel.
  </Step>

  <Step title="Wait for the AI-readable caption">
    Aria starts the caption as soon as the upload completes. The track
    appears in the catalog list with a spinner that resolves into the
    description panel.
  </Step>
</Steps>

### Via Aria

<AriaPromptCard prompt="Upload this file to my catalog: [attach file]" />

Aria handles the upload + metadata confirmation right in the chat.

## What happens on upload

When the upload finishes, Aria generates the
[AI-readable caption](/catalog/sonic-analysis) for the track so it
becomes discoverable across AI tools — ChatGPT, Claude, Cursor, and any
other AI client connected via [MCP](/for-agents/mcp-overview).

The track is immediately:

* searchable in [catalog search](/catalog/search),
* referenceable in any Aria conversation,
* available as a track anchor for [projects](/releases/release-planner),
* listable on your [storefront](/storefront/overview).

## Storage

Storage limits scale with your tier. See
[pricing](/get-started/pricing) for current numbers.

## Version control

Every upload to the same track ID creates a new **version**. Versions
are listed in the catalog row → ⋯ → Versions.

* **Latest version** is what plays, what the caption describes, and
  what the storefront sells.
* **Older versions** are kept (full audit trail) until you explicitly
  delete them.
* **Restore** any version with one click.

Useful for: re-uploading after a master revision, swapping a censored
edit, A/B testing storefront versions.

## Pricing

Plans, AI credits, and limits live on the [pricing page](https://patchline.ai/pricing) — we keep them there so they're always current.

## Related pages

* [Catalog import](/catalog/import) — the URL-based path for released
  tracks
* [AI-discoverable tracks](/catalog/sonic-analysis) — what the caption
  is and why it matters
* [Catalog search](/catalog/search) — uses your captions for semantic
  matching
* [Storefront overview](/storefront/overview) — sell what you upload
* [Release planner](/releases/release-planner) — uploaded tracks ground
  the strongest campaigns

## FAQ

<AccordionGroup>
  <Accordion title="Can I upload an album as a single file?">
    Better to upload each track separately. Patchline treats each upload
    as a single catalog entry, so an album-as-one-file becomes one row
    instead of 12. If you have a 12-track album, upload 12 files.
  </Accordion>

  <Accordion title="Does upload count against my catalog import limit?">
    No. Uploads and imports are tracked separately. See
    [pricing](/get-started/pricing) for the limits at your tier.
  </Accordion>

  <Accordion title="What's the upload bandwidth requirement?">
    Mostly governed by your internet connection. Patchline uses chunked
    upload for large files so flaky connections are handled gracefully.
  </Accordion>

  <Accordion title="Why upload if my track is already on streaming?">
    Three reasons. (1) **Storefront** — only uploaded tracks can be
    sold through your Patchline store. (2) **Stronger AI grounding** —
    Aria reasons more accurately when the actual master is available.
    (3) **Future-proofing** — AI agents will increasingly act through
    direct catalog access; the master on Patchline is the master those
    agents will reach.
  </Accordion>
</AccordionGroup>

<AICallout page="/catalog/upload" />
