Transfers a domain name from another registrar to Cloud Domains. For domains already managed byGoogle Domains, useregistrations.importinstead.
Before calling this method, go to the domain's current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then callregistrations.retrieveTransferParametersto confirm that the domain is unlocked and to get values needed to build a call to this method.
A successful call creates aRegistrationresource in stateTRANSFER_PENDING. It can take several days to complete the transfer process. The registrant can often speed up this process by approving the transfer through the current registrar, either by clicking a link in an email from the registrar or by visiting the registrar's website.
A few minutes after transfer approval, the resource transitions to stateACTIVE, indicating that the transfer was successful. If the transfer is rejected or the request expires without being approved, the resource can end up in stateTRANSFER_FAILED. If transfer fails, you can safely delete the resource and retry the transfer.
HTTP request
POST https://domains.googleapis.com/v1/{parent=projects/*/locations/*}/registrations:transfer
Required. The completeRegistrationresource to be created.
You can leaveregistration.dns_settingsunset to import the domain's current DNS configuration from its current registrar. Use this option only if you are sure that the domain's current DNS service does not cease upon transfer, as is often the case for DNS services provided for free by the registrar.
Required. Acknowledgement of the price to transfer or renew the domain for one year. Callregistrations.retrieveTransferParametersto obtain the price, which you must acknowledge.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-30 UTC."],[[["\u003cp\u003eThis API facilitates transferring a domain name from another registrar to Cloud Domains, excluding domains managed by Google Domains, which should use \u003ccode\u003eregistrations.import\u003c/code\u003e instead.\u003c/p\u003e\n"],["\u003cp\u003eThe transfer process involves unlocking the domain at its current registrar, retrieving an authorization code, and using the \u003ccode\u003eregistrations.retrieveTransferParameters\u003c/code\u003e method to confirm unlock and get necessary values.\u003c/p\u003e\n"],["\u003cp\u003eA successful transfer creates a \u003ccode\u003eRegistration\u003c/code\u003e resource in \u003ccode\u003eTRANSFER_PENDING\u003c/code\u003e state, which will eventually become \u003ccode\u003eACTIVE\u003c/code\u003e or \u003ccode\u003eTRANSFER_FAILED\u003c/code\u003e after the transfer process.\u003c/p\u003e\n"],["\u003cp\u003eThe request body for the transfer requires a \u003ccode\u003eRegistration\u003c/code\u003e object, a list of acknowledged \u003ccode\u003econtactNotices\u003c/code\u003e, the \u003ccode\u003eyearlyPrice\u003c/code\u003e for transfer, the domain's \u003ccode\u003eauthorizationCode\u003c/code\u003e, and an optional \u003ccode\u003evalidateOnly\u003c/code\u003e boolean.\u003c/p\u003e\n"],["\u003cp\u003eThe parent path parameter is required, and must be in the format of \u003ccode\u003eprojects/*/locations/*\u003c/code\u003e in order to fulfill authorization, requiring \u003ccode\u003edomains.registrations.create\u003c/code\u003e IAM permission.\u003c/p\u003e\n"]]],[],null,["# Method: projects.locations.registrations.transfer\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\n| This item is deprecated!\nDeprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)\n\nTransfers a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `registrations.import` instead.\n\nBefore calling this method, go to the domain's current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `registrations.retrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to this method.\n\nA successful call creates a `Registration` resource in state `TRANSFER_PENDING`. It can take several days to complete the transfer process. The registrant can often speed up this process by approving the transfer through the current registrar, either by clicking a link in an email from the registrar or by visiting the registrar's website.\n\nA few minutes after transfer approval, the resource transitions to state `ACTIVE`, indicating that the transfer was successful. If the transfer is rejected or the request expires without being approved, the resource can end up in state `TRANSFER_FAILED`. If transfer fails, you can safely delete the resource and retry the transfer.\n\n### HTTP request\n\n`POST https://domains.googleapis.com/v1/{parent=projects/*/locations/*}/registrations:transfer`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n### Request body\n\nThe request body contains data with the following structure:\n\n### Response body\n\nIf successful, the response body contains an instance of [Operation](/domains/docs/reference/rest/Shared.Types/ListOperationsResponse#Operation).\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/cloud-platform`\n\nFor more information, see the [Authentication Overview](https://cloud.google.com/docs/authentication/)."]]