Firebase Hosting API

The Firebase Hosting REST API enables programmatic and customizable management and deployments to your Firebase-hosted sites. Use this REST API to create and manage channels and sites as well as to deploy new or updated hosting configurations and content files.

For a step-by-step example of the deploy workflow, visit Deploy using the REST API.

Service: firebasehosting.googleapis.com

To call this service, we recommend that you use the Google-provided client libraries. If your application needs to use your own libraries to call this service, use the following information when you make the API requests.

A Discovery Document is a machine-readable specification for describing and consuming REST APIs. It is used to build client libraries, IDE plugins, and other tools that interact with Google APIs. One service may provide multiple discovery documents. This service provides the following discovery document:

A service endpoint is a base URL that specifies the network address of an API service. One service might have multiple service endpoints. This service has the following service endpoint and all URIs below are relative to this service endpoint:

  • https://firebasehosting.googleapis.com

REST Resource: v1beta1.projects.operations

Methods
get GET /v1beta1/{name=projects/*/operations/*}
Gets the latest state of a long-running operation.

REST Resource: v1beta1.projects.sites

Methods
create POST /v1beta1/{parent=projects/*}/sites
Creates a new Hosting Site in the specified parent Firebase project.
delete DELETE /v1beta1/{name=projects/*/sites/*}
Deletes the specified Hosting Site from the specified parent Firebase project.
get GET /v1beta1/{name=projects/*/sites/*}
Gets the specified Hosting Site.
list GET /v1beta1/{parent=projects/*}/sites
Lists each Hosting Site associated with the specified parent Firebase project.
patch PATCH /v1beta1/{site.name=projects/*/sites/*}
Updates attributes of the specified Hosting Site.

REST Resource: v1beta1.projects.sites.customDomains

Methods
create POST /v1beta1/{parent=projects/*/sites/*}/customDomains
Creates a CustomDomain.
delete DELETE /v1beta1/{name=projects/*/sites/*/customDomains/*}
Deletes the specified CustomDomain.
get GET /v1beta1/{name=projects/*/sites/*/customDomains/*}
Gets the specified CustomDomain.
list GET /v1beta1/{parent=projects/*/sites/*}/customDomains
Lists each CustomDomain associated with the specified parent Hosting site.
patch PATCH /v1beta1/{customDomain.name=projects/*/sites/*/customDomains/*}
Updates the specified CustomDomain.
undelete POST /v1beta1/{name=projects/*/sites/*/customDomains/*}:undelete
Undeletes the specified CustomDomain if it has been soft-deleted.

REST Resource: v1beta1.projects.sites.customDomains.operations

Methods
get GET /v1beta1/{name=projects/*/sites/*/customDomains/*/operations/*}
Gets the latest state of a long-running operation.
list GET /v1beta1/{name=projects/*/sites/*/customDomains/*}/operations
Lists operations that match the specified filter in the request.

REST Resource: v1beta1.sites.channels

Methods
create POST /v1beta1/{parent=sites/*}/channels
Creates a new channel in the specified site.
delete DELETE /v1beta1/{name=sites/*/channels/*}
Deletes the specified channel of the specified site.
get GET /v1beta1/{name=sites/*/channels/*}
Retrieves information for the specified channel of the specified site.
list GET /v1beta1/{parent=sites/*}/channels
Lists the channels for the specified site.
patch PATCH /v1beta1/{channel.name=sites/*/channels/*}
Updates information for the specified channel of the specified site.

REST Resource: v1beta1.sites.channels.releases

Methods
create POST /v1beta1/{parent=sites/*/channels/*}/releases
Creates a new release, which makes the content of the specified version actively display on the appropriate URL(s).
get GET /v1beta1/{name=sites/*/channels/*/releases/*}
Gets the specified release for a site or channel.
list GET /v1beta1/{parent=sites/*/channels/*}/releases
Lists the releases that have been created for the specified site or channel.

REST Resource: v1beta1.sites.releases

Methods
create POST /v1beta1/{parent=sites/*}/releases
Creates a new release, which makes the content of the specified version actively display on the appropriate URL(s).
get GET /v1beta1/{name=sites/*/releases/*}
Gets the specified release for a site or channel.
list GET /v1beta1/{parent=sites/*}/releases
Lists the releases that have been created for the specified site or channel.

REST Resource: v1beta1.sites.versions

Methods
clone POST /v1beta1/{parent=sites/*}/versions:clone
Creates a new version on the specified target site using the content of the specified version.
create POST /v1beta1/{parent=sites/*}/versions
Creates a new version for the specified site.
delete DELETE /v1beta1/{name=sites/*/versions/*}
Deletes the specified version.
get GET /v1beta1/{name=sites/*/versions/*}
Get the specified version that has been created for the specified site.
list GET /v1beta1/{parent=sites/*}/versions
Lists the versions that have been created for the specified site.
patch PATCH /v1beta1/{version.name=sites/*/versions/*}
Updates the specified metadata for the specified version.
populateFiles POST /v1beta1/{parent=sites/*/versions/*}:populateFiles
Adds content files to the specified version.

REST Resource: v1beta1.sites.versions.files

Methods
list GET /v1beta1/{parent=sites/*/versions/*}/files
Lists the remaining files to be uploaded for the specified version.