Start without an account
Spin up a Raster library, upload images, and get a working CDN URL with one call. No signup or key is needed up front, and the user claims the library later from an emailed link.
An AI agent can give someone a working, organized image library before they create a Raster account. One call with an email address mints a new organization, a starter library, and a ready-to-use API key. The agent uploads and organizes right away, and the person receives a link to claim the library into a real account when they want to keep it.
The flow at a glance
Create
One call with the user's email returns an organizationId, a libraryId, an
apiKey, and a claimUrl. You need no account or key beforehand.
Work
Use the returned key as a normal Bearer token to upload, tag, search, and describe assets. Every standard tool and endpoint works against the new library.
Hand off
Give the user the claimUrl (it is also emailed). They open it, sign in, and
the library, with everything in it, becomes theirs on a real account.
Create the library
The full parameter and response tables are at
POST /libraries and the
create_organization MCP tool. Pick the
transport your client uses.
create_organization needs no Bearer key because it mints one. Call it on the
no-account endpoint https://mcp.raster.app/anonymous with the user's email:
{
"name": "create_organization",
"arguments": { "email": "<your-email>", "name": "Q3 campaign" }
}It returns the organizationId, libraryId, apiKey, and claimUrl. Connect to
the main endpoint https://mcp.raster.app/ and use that apiKey as the Bearer
token for every following tool call.
The apiKey is returned once.
Persist it the moment you receive it. You cannot read it back until the user
claims the library and reveals it from settings.
Upload and organize
The returned apiKey, organizationId, and libraryId are everything the
standard asset surface needs. Tag and describe what you add so the library is
useful the moment the user opens it. The full loop is in
Using Raster from an AI agent.
Over REST, upload is a multipart/form-data request with a files field. See
POST /organizations/:orgId/libraries/:libraryId/assets:
curl --request POST \
--header 'Authorization: Bearer <API_KEY>' \
--header 'Api-Version: 2026-07-08' \
--url 'https://api.raster.app/organizations/<organizationId>/libraries/<libraryId>/assets' \
--form 'files=@/path/to/photo.jpg'Over MCP, upload_asset also accepts a public
http(s) URL the server fetches for you, or inline base64. The URL option suits
an agent that has a link rather than a local file.
Each returned asset carries a permanent CDN url. Share those links with the
user directly. Uploads process asynchronously and appear in lists and search a
few seconds later.
Hand off the claim link
The library is held for a claim window after creation.
POST /libraries gives the exact length and
the per-email cap on active unclaimed libraries. The claim link is emailed when
the address accepts mail and is always returned as claimUrl. Give it to the
user yourself so the hand-off does not depend on email delivery.
When the user opens claimUrl and signs in, the library and every asset in it
transfer to their account, and the API key you used becomes a normal key they
can manage in settings. A library left unclaimed when the window closes is
removed along with its images.
An unclaimed library is temporary. Prompt the user to claim it before the
window closes so their work is kept. Creating past the per-email cap returns
400 BAD_USER_INPUT.
A prompt you can reuse
Configure an agent to run this flow on its own. The prompt has an MCP and a REST version. Pick a tab.
When a user without a Raster account asks you to store or organize images:
1. Call `create_organization` on the no-account endpoint
`https://mcp.raster.app/anonymous` with their email. Save the returned
`organizationId`, `libraryId`, and `apiKey` right away; the `apiKey` is shown
only once. Make every later call on the main endpoint `https://mcp.raster.app/`
with that `apiKey` as the Bearer token.
2. Upload their images with `upload_asset` or `upload_assets`, passing a public
http(s) URL when you have one and base64 otherwise. Then make them findable with
`tag_assets` and `update_asset_description`.
3. Processing is asynchronous, so re-run `list_assets` a few seconds later to
confirm an upload landed. Share each asset's permanent `url` and the library URL,
`https://raster.app/<organizationId>/<libraryId>`.
4. Give the user the returned `claimUrl` and tell them to open it and sign in within
the claim window to keep this library and everything in it on a real account.
Surface the `claimUrl` yourself, since the hand-off holds even when email delivery
is uncertain.Clients that load agent skills can fetch Raster's published raster-api skill
from
https://raster.app/.well-known/agent-skills/index.json,
or install it into any coding agent with the skills CLI.
For the focused prompts that cover connecting, adding, organizing, finding, and restructuring once an account exists, see Reusable prompts by use case.