# Overview (https://developer.godaddy.com/en/docs/references/rest/hosting)

---
title: Overview
description: >
  Reference for the Hosting API, a REST API for deploying and operating GoDaddy
  hosted applications. Async-first: long-running writes return immediately with
  a job or deployment record you poll to completion. Currently supports Node.js
  apps.
---

The complete OpenAPI spec for this namespace is available as JSON. This is useful for code generation, SDK tooling, and LLM context: [hosting.json](https://developer.godaddy.com/openapi/hosting.json).

## Overview

The Hosting API lets you build, deploy, and operate apps on GoDaddy's hosting platform without touching a dashboard. Each app has two variants (`preview` and `publish`) so you can iterate safely and promote when you're ready. The API supports Node.js apps.

Long-running operations (create app, upload source, publish) return immediately with a job or deployment record. All three respond with `202 Accepted`. Poll until each operation reaches a terminal state. Go to [Hosting concepts](https://developer.godaddy.com/docs/api-users/hosting/concepts) for the full pattern.

Every endpoint authenticates with a Personal Access Token (PAT). Create one at [Personal Access Tokens](https://developer.godaddy.com/personal-access-token), send it as `Authorization: Bearer <token>`, and select only the scopes each operation requires. Go to [Hosting core concepts](https://developer.godaddy.com/docs/api-users/hosting/concepts#scopes-reference) for the full scope list.

## Endpoint groups

## Typical flow

```
POST /apps?appType=NODEJS               → 202, AppOperation
GET  /app-operations/{operationId}      → poll until app is ready

POST /apps/{appId}/imports              → 202, SourceImport operation (multipart/form-data)
GET  /apps/{appId}/imports/{importId}   → poll until upload is processed

PUT  /apps/{appId}/subscription         → 200, attach to hosting plan (required for Node.js)

POST /apps/{appId}/deployments          → 202, Deployment operation
GET  /apps/{appId}/deployments/{id}     → poll until deployment is complete
GET  /apps/{appId}/status               → runtime status per environment
```

## Conventions

| Convention       | Detail                                                                                                                                                              |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Base URL         | `https://api.godaddy.com/v1/hosting` (production)                                                                                                                   |
| Async operations | Create app, import source, and deploy operations return `202 Accepted` with an operation. Poll the returned URL until status reaches `COMPLETED` or `FAILED`.       |
| Environments     | Every app has `PREVIEW` and `PUBLISH` environments. Filter per endpoint: `/logs?target=…`, `/secrets` (body `variant`). `/status` returns both.                     |
| Auth             | Personal Access Token (PAT) — `Authorization: Bearer <token>`. Go to [Hosting core concepts](https://developer.godaddy.com/docs/api-users/hosting/concepts#scopes-reference) for the scope list. |
| Secret values    | Never returned by any endpoint. Only names and metadata are readable.                                                                                               |
| Rate limits      | Enforced by the API gateway. `429 Too Many Requests` response includes `RateLimit-*` headers.                                                                       |
