Docs
Search docs

Get repository file preview

GET/api/repos/{owner}/{repo}/blob

getRepositoryBlob

Returns a preview payload for the selected repository file path.

Authentication is not described for this operation in the spec — that does not mean it is public. Check tokens and scopes.

curl

curl -X GET 'https://neosource.dev/api/repos/OWNER/REPO/blob'

fetch

fetch("https://neosource.dev/api/repos/OWNER/REPO/blob", {
  method: "GET",
});

Path parameters

ownerrequired

Repository owner or organization slug.

string

reporequired

Repository name.

string

Query parameters

ref

Bookmark name to read from. Defaults to the repository default branch.

string

path

Slash-delimited repository path relative to the selected ref root.

string

Responses

200Repository file preview

application/json

BlobResponse

object

commit_oidrequired

string

40-hex id of the commit `ref` resolved to: the address under which this preview can never change.

content

string | null

html

string | null

The server's sanitized render of a markdown file, safe to inject — the file view's Preview. `None` when there is nothing to inject: the file is not markdown by its extension, it is binary, the preview was truncated, or the render did not finish inside its deadline. In every one of those the client shows `content` as code, so absence is a fallback, never an error. A render that trips one of the renderer's work caps is still `Some`: the whole source, HTML-escaped inside a `<pre>`, which is as safe to inject as any other value here.

is_binaryrequired

boolean

namerequired

string

oidrequired

string

pathrequired

string

refrequired

string

size_bytesrequired

integer

truncatedrequired

boolean

304`If-None-Match` names the current `ETag`; the stored preview is still current

Standard errors

Bodies documented once for the whole API — see standard errors.

  • 400Bad Request — one of: invalid_input
  • 403Forbidden — one of: forbidden
  • 404Not Found — one of: not_found
  • 423Locked — one of: busy
  • 429Rate limited — retry after the interval in the `Retry-After` header
  • 500Internal server error
  • 503Service temporarily unavailable / at capacity — retry after the `Retry-After` header
  • 504Gateway timeout — the request exceeded the server's handling budget