{"command":{"effect":"write","timeoutSeconds":30,"inputSchema":{"type":"object","description":"Starts a domain transfer-in workflow. This is typically a billable\noperation — successful transfers charge the account's default payment\nmethod, except for extensions with zero transfer pricing (e.g. UK\nextensions). All successful domain transfers are non-refundable.\n\n### How transfers work\nDomain transfers move a domain from another registrar to Cloudflare.\nTransfers typically take 1-10 days due to ICANN-mandated approval windows.\n\n### Prerequisites\n- The domain must already have a zone in the Cloudflare account (added\n  through the dashboard or zone API).\n- The zone must have DNSSec disabled.\n- For billable transfers (i.e. extensions with non-zero transfer pricing), the\n  account must have a billing profile with a valid default payment method.\n  Set this up at `https://dash.cloudflare.com/{account_id}/billing/payment-info`.\n- The domain must be unlocked at the current registrar.\n- An authorization/EPP code from the current registrar is required,\n  except for UK extensions — see Auth code below.\n\n### Auth code\nAn authorization code (also called EPP code, transfer key, or auth-info code)\nis required for most extensions, with the exception of UK extensions. Obtain\nthis from your current registrar's control panel.\n\nThe auth code in the request body must be base64-encoded per RFC 4648 §4 (standard\nalphabet, no line breaks).\n\n### Response behavior\nSuccessful transfer initiation returns `202 Accepted`. Validation or\ninitiation failures return the documented `4XX` responses. Poll\n`GET /accounts/{account_id}/registrar/registrations/{domain_name}/transfer-in-status` to track progress.\n\n### Premium domains\nPremium domain transfers are not currently supported by this API. Please use\nthe [dashboard](https://dash.cloudflare.com/) for now.\n\n### Billing\nThe account's default payment method is charged upon successful transfer\ncompletion, unless the extension has zero transfer pricing (e.g. UK\nextensions). The transfer adds time to the domain's existing expiration\ndate (typically 1 year).\n","properties":{"path":{"type":"object","properties":{"account_id":{"$ref":"#/definitions/registrar-api_identifier","description":"Cloudflare account ID. Required for all Registrar API operations."},"domain_name":{"$ref":"#/definitions/registrar-api_domain_name","description":"Domain name to transfer."}},"required":["account_id","domain_name"],"additionalProperties":false},"headers":{"type":"object","properties":{"Prefer":{"type":"string","description":"Set to `respond-async` to indicate a preference for asynchronous\nprocessing (RFC 7240).\n"}},"required":[],"additionalProperties":false},"body":{"$ref":"#/definitions/registrar-api_transfer_in_create_request","examples":[{"auth_code":"bml4b3M+Pj5hcmNoLWxpbnV4"}]}},"required":["path","body"],"additionalProperties":false,"definitions":{"registrar-api_identifier":{"description":"Identifier.","type":"string","maxLength":32,"examples":["023e105f4ecef8ad9ca31a8372d0c353"]},"registrar-api_domain_name":{"description":"Provides a fully qualified domain name (FQDN), including the extension\n(e.g., `example.com`, `mybrand.app`). The domain name uniquely identifies\na registration. Cloudflare permits only one registration per domain, making\nthe domain name a natural idempotency key for registration requests.\n","type":"string","examples":["example.com"]},"registrar-api_transfer_in_create_request":{"type":"object","properties":{"auth_code":{"description":"The EPP/authorization code from your current registrar, base64-encoded\nper RFC 4648 §4. Obtain this from your current registrar's control panel.\nRequired for all extensions, except for UK.\n","type":"string","format":"byte","examples":["bml4b3M+Pj5hcmNoLWxpbnV4"]},"auto_renew":{"description":"Enable or disable automatic renewal after transfer. Defaults to `false` if omitted.\n","type":"boolean","default":false,"examples":[false]},"contact_extensions":{"description":"Registry-specific contact extension values for the registrant.\n`GET /accounts/{account_id}/registrar/extensions/{extension}` documents the\nrequired keys and allowed values for each extension in the\n`transfer_schema.properties.contact_extensions` object.\n\nExamples include `.us` nexus fields, `.uk` registrant type fields,\nand `.ca` legal type fields. Include this object only when the extension's\ntransfer schema defines `contact_extensions`.\n","type":"object","additionalProperties":true,"examples":[{"application_purpose":"P3","nexus_category":"C11"}]},"contacts":{"type":"object","allOf":[{"$ref":"#/definitions/registrar-api_registration_contacts"}]},"privacy_mode":{"description":"WHOIS privacy mode to apply after transfer completes. Defaults to\nthe extension's default privacy mode (typically `redaction`).\n","type":"string","enum":["off","redaction"],"examples":["redaction"]}}},"registrar-api_registration_contacts":{"description":"Provides contact data for the registration request.\n\nThe per-extension schema from\n`GET /accounts/{account_id}/registrar/extensions/{extension}` defines the\naccepted contact roles. Every currently supported extension requires only\n`contacts.registrant` from API callers. Callers may provide additional roles\nsuch as `technical`, `administrator`, and `billing` when the extension\nschema includes them. When a registry requires an omitted role, Cloudflare\nmay derive that contact from `contacts.registrant`.\n\nWhen the request omits either the entire `contacts` object or\n`contacts.registrant`, the system uses the account's default address book\nentry as the registrant contact. The account owner must configure this\ndefault at `https://dash.cloudflare.com/{account_id}/domains/registrations`,\nwhere they can create or update the address book entry and accept the\nrequired agreement. Dashboard settings currently provide the only way to\nmanage address book entries.\n\nWithout either a default address book entry or a registrant contact, the\nregistration request fails validation.\n","type":"object","properties":{"administrator":{"description":"Optional administrator contact. Accepted only when the extension\nschema includes this role. When the registry requires an omitted\ncontact, Cloudflare may derive it from `contacts.registrant`.\n","allOf":[{"$ref":"#/definitions/registrar-api_registration_contact"}]},"billing":{"description":"Optional billing contact. Accepted only when the extension schema\nincludes this role. When the registry requires an omitted contact,\nCloudflare may derive it from `contacts.registrant`.\n","allOf":[{"$ref":"#/definitions/registrar-api_registration_contact"}]},"registrant":{"description":"Optional registrant contact. If omitted, the account's default\naddress book entry is used instead.\n","allOf":[{"$ref":"#/definitions/registrar-api_registration_contact"}]},"technical":{"description":"Optional technical contact. Accepted only when the extension schema\nincludes this role. When the registry requires an omitted contact,\nCloudflare may derive it from `contacts.registrant`.\n","allOf":[{"$ref":"#/definitions/registrar-api_registration_contact"}]}}},"registrar-api_registration_contact":{"description":"Contact data for the domain registration. This information\nis submitted to the domain registry and, depending on extension and\nprivacy settings, may appear in public WHOIS records.\n","type":"object","properties":{"email":{"description":"Email address for the registrant. Used for domain-related\ncommunications from the registry, including ownership verification\nand renewal notices.\n","type":"string","format":"email","examples":["ada@example.com"]},"fax":{"description":"Fax number in E.164 format (e.g., `+1.5555555555`). Optional.\nMost registrations do not require a fax number.\n","type":"string","examples":["+1.5555555555"]},"phone":{"description":"Phone number in E.164 format: `+{country_code}.{number}` without spaces or dashes. Examples: `+1.5555555555` (US), `+44.2071234567` (UK), `+81.312345678` (Japan).","type":"string","examples":["+1.5555555555"]},"postal_info":{"$ref":"#/definitions/registrar-api_registration_contact_postal_info"}},"required":["phone","email","postal_info"]},"registrar-api_registration_contact_postal_info":{"description":"Postal/mailing information for the contact. The `name` field is the\ncomplete contact name in one string. Some registries require a complete\npersonal name, including a family or last name where applicable, but this\nAPI does not accept separate first-name and last-name fields for\nregistration contacts.\n","type":"object","properties":{"address":{"$ref":"#/definitions/registrar-api_registration_contact_address"},"name":{"description":"Full legal name of the contact, including all required name components for an individual or authorized representative. Some registries require a complete personal name that includes a family or last name where applicable. Provide the complete name in this single field, for example `Ada Lovelace`; do not send separate first-name or last-name fields.","type":"string","examples":["Ada Lovelace"]},"organization":{"description":"Organization or company name. Optional for individual registrants.","type":"string","examples":["Example Inc"]}},"required":["name","address"]},"registrar-api_registration_contact_address":{"description":"Physical mailing address for the registrant contact.","type":"object","properties":{"city":{"description":"City or locality name.","type":"string","examples":["Austin"]},"country_code":{"description":"Two-letter country code per ISO 3166-1 alpha-2 (e.g., `US`, `GB`, `CA`, `DE`).","type":"string","examples":["US"]},"postal_code":{"description":"Postal or ZIP code.","type":"string","examples":["78701"]},"state":{"description":"State, province, or region. Use the standard abbreviation where applicable (e.g., `TX` for Texas, `ON` for Ontario).","type":"string","examples":["TX"]},"street":{"description":"Street address including building/suite number.","type":"string","examples":["123 Main St"]}},"required":["street","city","state","postal_code","country_code"]}}},"name":"Initiate Transfer","id":"cloudflare.registrar-domain-transfer-in-create","example":{"path":{"account_id":"023e105f4ecef8ad9ca31a8372d0c353","domain_name":"example.com"},"body":{}},"maxRequests":1,"summary":false}}