# Operations (https://developer.godaddy.com/en/docs/references/rest/domains/v3/operations)

***

title: Operations
description: >
Abstract operation polling. Poll GET /operations/ for any domain
mutation until it reaches COMPLETED or FAILED. Operation IDs are unique across
Registration, Renewal, and Transfer — clients that prefer typed polling can
use the concrete resource endpoints instead.
full: true
\_openapi:
method: GET
toc:

* depth: 2
  title: Poll an async domain operation
  url: '#poll-an-async-domain-operation'
  structuredData:
  headings:
  * content: Poll an async domain operation
    id: poll-an-async-domain-operation
    contents:
  * content: >
    Universal poll endpoint for all asynchronous domain mutations. Returns

    the current state of the operation. Non-terminal responses include a

    `Retry-After` header.

    Terminal statuses:

    * `COMPLETED` — operation succeeded; `result` contains the final
      outcome.

    * `FAILED` — operation terminated with an error; `error` contains
      detail.

    While status is non-terminal (`CONFIRMED`, `EXECUTING`), neither

    `result` nor `error` is present. Poll until a terminal status is
    reached.

    The poll URL is provided in the `Location` header of the initiating
    202

    response and in `links[rel=self]`. Clients must not construct this URL

    independently.
    heading: poll-an-async-domain-operation

***

## GET /operations/{operationId}

Poll an async domain operation

Universal poll endpoint for all asynchronous domain mutations. Returns
the current state of the operation. Non-terminal responses include a
`Retry-After` header.

Terminal statuses:
- `COMPLETED` — operation succeeded; `result` contains the final outcome.
- `FAILED` — operation terminated with an error; `error` contains detail.

While status is non-terminal (`CONFIRMED`, `EXECUTING`), neither
`result` nor `error` is present. Poll until a terminal status is reached.

The poll URL is provided in the `Location` header of the initiating 202
response and in `links[rel=self]`. Clients must not construct this URL
independently.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `operationId` | string <uuid> | yes | The server-assigned operation identifier returned in the 202 response of any async domain mutation. |

### Header parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `X-Request-Id` | string <uuid> | no | Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header. |

### Responses

**200** — Current operation state.

Content-Type: `application/json`

```json
{
  "operationId": "9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c",
  "type": "REGISTER",
  "domain": "example.com",
  "status": "EXECUTING",
  "createdAt": "2026-06-12T10:02:05Z",
  "updatedAt": "2026-06-12T10:02:07Z",
  "links": [
    {
      "rel": "self",
      "href": "https://api.godaddy.com/v3/domains/operations/9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c"
    }
  ]
}
```

Schema:

- object — The abstract operation envelope for all domain mutations, returned by the universal GET /operations/{operationId} endpoint. Concrete specializations — Registration, Renewal, and Transfer — are returned directly by their respective POST endpoints and carry the same operationId. Developers who do not need the abstract view can poll the concrete resource (GET /registrations/{id}, etc.) and ignore this type entirely.
  - `operationId` (required): allOf(string <uuid> & unknown)
  - `type` (required): allOf(string & unknown)
  - `domain`: string — The domain name this operation applies to.
  - `status` (required): allOf(string & unknown)
  - `result`: allOf(object & unknown)
  - `error`: allOf(object & unknown)
  - `links`: array — HATEOAS link relations for this operation. rel=self — the canonical URL for this abstract operation view. rel=registration, rel=renewal, or rel=transfer — the same resource viewed through its concrete typed collection. rel=domain — the domain-name resource affected by this operation.
      - items:
          - `href` (required): string <uri> — The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.
          - `rel` (required): string — The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).
          - `title`: string — The link title.
          - `targetMediaType`: string — The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.
          - `targetSchema`: unknown — The schema that describes the link target.
          - `method`: string — The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.
          - `submissionMediaType`: string — The media type with which to submit data with the request.
          - `submissionSchema`: unknown — The schema that describes the request data.
  - `createdAt`: allOf(string & unknown)
  - `updatedAt`: allOf(string & unknown)

**401** — Authentication credentials are missing or invalid.

Content-Type: `application/json`

Schema:

- object — The error information.
  - `name` (required): string — The human-readable, unique name of the error.
  - `correlationId` (required): string — Internal identifier used for correlation purposes.
  - `message` (required): string — The message that describes the error.
  - `informationLink`: string — The URI for detailed information related to this error for the developer.
  - `details`: array — An array of additional details about the error. Required for client-side `4XX` errors.
      - items:
          - `field`: string — The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.
          - `value`: string — The value of the field that caused the error.
          - `location`: string — The location of the field that caused the error. Value is `body`, `path`, or `query`.
          - `issue` (required): string — The unique fine-grained application-level error code.
          - `description`: string — The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.
  - `links`: array — An array of error-related HATEOAS links.
      - items:
          - `href` (required): string <uri> — The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.
          - `rel` (required): string — The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).
          - `title`: string — The link title.
          - `targetMediaType`: string — The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.
          - `targetSchema`: unknown — The schema that describes the link target.
          - `method`: string — The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.
          - `submissionMediaType`: string — The media type with which to submit data with the request.
          - `submissionSchema`: unknown — The schema that describes the request data.

**403** — Authenticated identity is not authorized to perform this operation.

Content-Type: `application/json`

Schema:

- object — The error information.
  - `name` (required): string — The human-readable, unique name of the error.
  - `correlationId` (required): string — Internal identifier used for correlation purposes.
  - `message` (required): string — The message that describes the error.
  - `informationLink`: string — The URI for detailed information related to this error for the developer.
  - `details`: array — An array of additional details about the error. Required for client-side `4XX` errors.
      - items:
          - `field`: string — The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.
          - `value`: string — The value of the field that caused the error.
          - `location`: string — The location of the field that caused the error. Value is `body`, `path`, or `query`.
          - `issue` (required): string — The unique fine-grained application-level error code.
          - `description`: string — The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.
  - `links`: array — An array of error-related HATEOAS links.
      - items:
          - `href` (required): string <uri> — The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.
          - `rel` (required): string — The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).
          - `title`: string — The link title.
          - `targetMediaType`: string — The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.
          - `targetSchema`: unknown — The schema that describes the link target.
          - `method`: string — The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.
          - `submissionMediaType`: string — The media type with which to submit data with the request.
          - `submissionSchema`: unknown — The schema that describes the request data.

**404** — The requested resource was not found.

Content-Type: `application/json`

Schema:

- object — The error information.
  - `name` (required): string — The human-readable, unique name of the error.
  - `correlationId` (required): string — Internal identifier used for correlation purposes.
  - `message` (required): string — The message that describes the error.
  - `informationLink`: string — The URI for detailed information related to this error for the developer.
  - `details`: array — An array of additional details about the error. Required for client-side `4XX` errors.
      - items:
          - `field`: string — The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.
          - `value`: string — The value of the field that caused the error.
          - `location`: string — The location of the field that caused the error. Value is `body`, `path`, or `query`.
          - `issue` (required): string — The unique fine-grained application-level error code.
          - `description`: string — The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.
  - `links`: array — An array of error-related HATEOAS links.
      - items:
          - `href` (required): string <uri> — The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.
          - `rel` (required): string — The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).
          - `title`: string — The link title.
          - `targetMediaType`: string — The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.
          - `targetSchema`: unknown — The schema that describes the link target.
          - `method`: string — The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.
          - `submissionMediaType`: string — The media type with which to submit data with the request.
          - `submissionSchema`: unknown — The schema that describes the request data.

**429** — Too many requests — rate limit exceeded.

Content-Type: `application/json`

Schema:

- object — The error information.
  - `name` (required): string — The human-readable, unique name of the error.
  - `correlationId` (required): string — Internal identifier used for correlation purposes.
  - `message` (required): string — The message that describes the error.
  - `informationLink`: string — The URI for detailed information related to this error for the developer.
  - `details`: array — An array of additional details about the error. Required for client-side `4XX` errors.
      - items:
          - `field`: string — The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.
          - `value`: string — The value of the field that caused the error.
          - `location`: string — The location of the field that caused the error. Value is `body`, `path`, or `query`.
          - `issue` (required): string — The unique fine-grained application-level error code.
          - `description`: string — The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.
  - `links`: array — An array of error-related HATEOAS links.
      - items:
          - `href` (required): string <uri> — The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.
          - `rel` (required): string — The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).
          - `title`: string — The link title.
          - `targetMediaType`: string — The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.
          - `targetSchema`: unknown — The schema that describes the link target.
          - `method`: string — The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.
          - `submissionMediaType`: string — The media type with which to submit data with the request.
          - `submissionSchema`: unknown — The schema that describes the request data.

**Security:** requires `bearerAuth`.
