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 file=@report.html \
-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 that anyone can open.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 an email one-time password – 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 Sharing and access 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 and limits.
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.