---
title: "Get the permanent public URL for a file"
method: GET
path: "/api/storage/{project_id}/public-url"
tags: ["Storage"]
---

# Get the permanent public URL for a file

`GET /api/storage/{project_id}/public-url`

## Request

- Base URL: `https://core.blink.new`
- URL: `https://core.blink.new/api/storage/{project_id}/public-url`
- Auth: HTTP bearer

Returns the permanent public CDN URL for a file. The URL
does not expire and requires no authentication or signed token to access.
The file must be publicly accessible in the bucket (which is the default
for files uploaded through this API).

This is a pure URL construction operation — no network call is made
and the file's existence is not verified.

Compatible with the Supabase Storage `getPublicUrl` API.

## Path parameters

- `project_id` string, required

## Query parameters

- `path` string, required

## Response `200`

Public URL constructed successfully

- object
  - `data` object
    - `publicUrl` string, uri: Permanent public URL for the file

## Other responses

- `400`: Missing required path parameter or project ID
- `401`: Authentication required or invalid API key
- `500`: Failed to generate public URL

---

[API](https://skmtc.dev/blink/apis/blink-apis.md) - [All operations](https://skmtc.dev/blink/apis/blink-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/blink/apis/blink-apis/revisions/4c59c706078e?raw)
