You can publish an artifact without signing in. The response is a public preview URL anyone can open and a single-use claim URL. Opening the claim URL while signed in transfers the artifact to your organization.
This path is available through the CLI, public remote MCP, a local MCP server, or curl.
Publish with curl
Upload an HTML or Markdown file (up to 50 MB):
curl -X POST https://api.display.dev/v1/public/artifacts \
-F [email protected] \
-F name="Q3 e2e report"The name field is optional; if you skip it, the server derives one from the filename.
Publish from the CLI
Run dsp publish without a saved session or DISPLAYDEV_API_KEY:
npx @displaydev/cli publish ./report.htmlIf no credential is configured, dsp publish runs anonymously and prints the preview URL, claim URL, and expiry timestamp.
Publish from an MCP server
Connect an MCP host to https://api.display.dev/v1/public/mcp to publish without a credential. The public remote server provides only the publish tool.
The local dsp mcp server also provides only publish when started without dsp login or DISPLAYDEV_API_KEY. Use https://api.display.dev/v1/mcp with OAuth or an API key for the complete authenticated tool set.
What you receive
Every anonymous publish returns:
{
"shortId": "abc12345",
"previewUrl": "https://public.dsp.so/abc12345",
"claimUrl": "https://app.display.dev/claim?code=...",
"expiresAt": "2026-05-30T12:00:00.000Z"
}previewUrl– public URL, viewable by anyone with the link.claimUrl– single-use. Whoever opens it and signs in becomes the artifact's owner.expiresAt– 30 days from publish.
Anonymous artifacts do not appear in any dashboard. Save the response – there is no other way to recover the URLs. Publishing the same file again creates a new artifact at a new URL.
Claim the artifact
Open the claim URL in a browser and sign in. Sign-in supports Google, Microsoft, and a six-digit email code – the same options as the regular sign-in page.
What happens after sign-in depends on the claimer:
- Has one organization – claim it with one click.
- Has multiple organizations – pick one from a dropdown.
- No organization yet – name one. The new organization is created with the artifact inside it.
The claim URL is single-use. A second visitor sees a "This was already claimed" page with a "Request access" button instead.
If the target organization is at its storage limit, the claim is blocked with an upgrade prompt. The claim URL stays valid – free up space or upgrade the plan, then return to complete the claim.
After claim
Claim transfers ownership only. Visibility does not change – a public artifact stays public after the claim. The preview URL keeps working: it redirects to the organization URL (<org>.dsp.so/<shortId>-<slug>), so any link already shared still resolves.
To restrict viewing to organization members, change the artifact's visibility from the dashboard or with dsp share. See Visibility & sharing for the full matrix.
Lifecycle
An unclaimed artifact passes through three states:
| Window | Preview URL | Claim URL |
|---|---|---|
| 0–30 days from publish | Serves the artifact | Valid |
| 30–60 days | Shows an "expired, claim to restore" page | Valid – claiming restores the artifact into the new organization |
| 60+ days | 404 | 404 |
After a claim, the artifact is no longer subject to these states. Its retention follows the owning organization's plan – see Plans & features.
Limits
- File size – 50 MB per artifact.
- Rate limit – 10 publishes per IP address per hour. Exceeding the limit returns an HTTP 429 with the reset time.
- Indexing – preview pages set
noindex. Search engines do not crawl or index anonymous artifacts.