hosting

GET /v1/sites/{siteId}/repo

Get the repository a site deploys from.

All hosting endpoints

Authentication

Send an API key as a bearer token. The key must carry the sites.view permission; a key without it is refused with 403, not 404.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X GET https://api.zinndigital.com/v1/sites/{siteId}/repo \
  -H "Authorization: Bearer zdk_live_…"

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

A 404 means no repository is connected, which is an ordinary state the dashboard renders as the connect form — deliberately not an empty object, because a payload of blanks cannot be told apart from a failed load. The response carries no secret: the webhook secret is derived from the connection id, never stored. Requires `sites.view`.

Parameters

NameTypeRequiredWhat it is
siteId (path)UuidYesSite ID (UUIDv7).

Response

NameTypeRequiredWhat it is
site_idUuidYesUUIDv7 identifier — sortable by creation time (docs/02 §8).
providerstringYesThe git provider — `github` or `gitlab`. A machine identifier.
ownerstringYesThe account or namespace the repository lives under.
repostringYes
full_namestringYes`owner/repo`, or just the repo when the account owns its namespace.
branchstringYesThe branch a push deploys from.
build_modeBuildModeYesHow the published files are produced. `publish` serves the repository's own files — right for plain HTML and for a repo whose generator output is committed. `ci` runs the build…
build_commandstringYesBlank in `publish` mode — a stored command nothing runs would read as a build.
output_dirstringYesWhich directory is published. Blank means the repository root.
publish_branchstringYesWhere CI commits the built output in `ci` mode.
auto_deploybooleanYesWhether a push deploys automatically. Off still records every delivery, so a customer can watch pushes arriving before letting us act on them.
webhook_urlstringYesThe URL the provider was told to deliver to. Computed, never stored — a stored copy would keep naming the origin that was current when the row was written. Blank on an environme…
webhook_registeredbooleanYesWhether a provider-side hook actually exists. False here with a connection present means pushes are NOT being watched.
last_delivery_atobjectYesWhen the provider last delivered anything, or null for NEVER. Null is the single most useful diagnostic on this screen: "connected but never delivered" is what a mis-scoped toke…
last_delivery_notestringYesWhat we did with the last delivery, including when we ignored it. Written for every delivery, because "never delivered" and "delivering, ignored" are different problems with dif…
connected_accountstringYesThe label of the credential connection this repository is read with.

Errors this endpoint can return

401 · 403 · 404 · 429