AiVikings.ai
Find, register, and manage domains from any AI chat or agent
Should I use this
Quality & Safety
Findings (8)
- LOWin get_current_user
- LOWin renew_domain
- LOWin update_nameservers
- LOWin domain_transfer
- LOWin check_single_domain_availability
- LOWin list_domain_registration_contacts
- LOWin assign_domain_registration_contact_roles
- LOWin remove_domain_registration_contact_roles
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"registrar": {
"url": "https://mcp.aivikings.ai/mcp"
}
}
}Remote endpoints
https://mcp.aivikings.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (34)
🟢get_domain_audit_log(domain, action, from_timestamp, to_timestamp, cursor, ...)
Read append-only domain change history for the authenticated customer. Omit domain for portfolio history. Requires audit:read. Results are newest recorded first; pass next_cursor with the same filters for another page. Times must include a timezone. Requested, state_changed, and outcome events share an operation_id. Accepted is not proof of provider completion. History starts when domain auditing was enabled; agent labels are self-reported.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Domain"
},
"action": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Action"
},
"from_timestamp": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "From Timestamp"
},
"to_timestamp": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "To Timestamp"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Cursor"
},
"limit": {
"default": 100,
"title": "Limit",
"type": "integer"
}
},
"title": "get_domain_audit_logArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "get_domain_audit_logDictOutput"
}🟢get_current_user
Return the authenticated AIvikings customer for the current bearer API key, including name and email when the key belongs to a customer.
Input Schema
{
"type": "object",
"properties": {},
"title": "get_current_userArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "get_current_userDictOutput"
}🟢check_domain_availability(domains, currency)
Check availability for up to 200 domain names through AIvikings. The is_premium field identifies premium pricing; domain_type only classifies name length. Use get_domain_pricing for full price schedules.
Input Schema
{
"type": "object",
"properties": {
"domains": {
"items": {
"type": "string"
},
"title": "Domains",
"type": "array"
},
"currency": {
"default": "USD",
"title": "Currency",
"type": "string"
}
},
"required": [
"domains"
],
"title": "check_domain_availabilityArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "check_domain_availabilityDictOutput"
}🟢check_single_domain_availability(domain, currency)
Check availability for one domain through AIvikings. The is_premium field identifies premium pricing; domain_type only classifies name length. Use get_domain_pricing for the full price schedule.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"currency": {
"default": "USD",
"title": "Currency",
"type": "string"
}
},
"required": [
"domain"
],
"title": "check_single_domain_availabilityArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "check_single_domain_availabilityDictOutput"
}🟢get_domain_pricing(domain, currency)
Get a fresh price quote for one domain. Returns customer-facing registration, renewal, and transfer prices, plus is_premium so the user can be told when premium pricing applies. Omit currency to use the returned currency; USD and EUR can be requested explicitly. Prices are not converted: if the requested currency is unavailable, price fields are null with a price_unavailable_reason. Never exposes upstream cost prices.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Currency"
}
},
"required": [
"domain"
],
"title": "get_domain_pricingArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "get_domain_pricingDictOutput"
}🟢get_prepaid_balance(currency)
Return the authenticated customer's prepaid balance for domain purchases. Returns both USD and EUR wallet balances. When automatic currency conversion is enabled, a zero balance in the requested currency does not block registration if the other wallet has enough credit; register_domain converts only the missing amount automatically.
Input Schema
{
"type": "object",
"properties": {
"currency": {
"default": "USD",
"title": "Currency",
"type": "string"
}
},
"title": "get_prepaid_balanceArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "get_prepaid_balanceDictOutput"
}🟢list_contact_countries
List exact ConnectReseller country names and IDs for creating or updating contacts.
Input Schema
{
"type": "object",
"properties": {},
"title": "list_contact_countriesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "list_contact_countriesOutput"
}🟢list_contact_states(country)
List exact ConnectReseller state names for a country name, country ID, or ISO code. Use the returned name in contact requests.
Input Schema
{
"type": "object",
"properties": {
"country": {
"title": "Country",
"type": "string"
}
},
"required": [
"country"
],
"title": "list_contact_statesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "list_contact_statesOutput"
}🟡create_contact(name, email, address, city, state, ...)
Create a reusable contact for domain registration. Use list_contact_countries and list_contact_states to choose valid country and state names. The returned handle can be passed to register_domain and reused for multiple domains. When handle is omitted, it is generated from the company initials (or contact-name initials), four digits, and the country code.
Input Schema
{
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"email": {
"title": "Email",
"type": "string"
},
"address": {
"title": "Address",
"type": "string"
},
"city": {
"title": "City",
"type": "string"
},
"state": {
"title": "State",
"type": "string"
},
"country": {
"title": "Country",
"type": "string"
},
"postal_code": {
"title": "Postal Code",
"type": "string"
},
"phone_country_code": {
"title": "Phone Country Code",
"type": "string"
},
"phone_number": {
"title": "Phone Number",
"type": "string"
},
"handle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Handle"
},
"organization": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Organization"
},
"address_line_2": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Address Line 2"
},
"default_registrant": {
"default": false,
"title": "Default Registrant",
"type": "boolean"
},
"default_admin": {
"default": false,
"title": "Default Admin",
"type": "boolean"
},
"default_technical": {
"default": false,
"title": "Default Technical",
"type": "boolean"
},
"default_billing": {
"default": false,
"title": "Default Billing",
"type": "boolean"
}
},
"required": [
"name",
"email",
"address",
"city",
"state",
"country",
"postal_code",
"phone_country_code",
"phone_number"
],
"title": "create_contactArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "create_contactDictOutput"
}🟢get_contact(contact_handle)
Get one reusable contact by its handle.
Input Schema
{
"type": "object",
"properties": {
"contact_handle": {
"title": "Contact Handle",
"type": "string"
}
},
"required": [
"contact_handle"
],
"title": "get_contactArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "get_contactDictOutput"
}🟢list_contacts
List reusable contacts belonging to the authenticated customer.
Input Schema
{
"type": "object",
"properties": {},
"title": "list_contactsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "list_contactsOutput"
}🟢list_domain_registration_contacts
List the authenticated customer's registrant/contact handles for domain registrations. Returns whether each contact is complete enough for registration, its missing required fields, its default domain-contact roles, and the handle to pass to register_domain. Always call this before attempting a domain registration.
Input Schema
{
"type": "object",
"properties": {},
"title": "list_domain_registration_contactsArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "list_domain_registration_contactsDictOutput"
}🟡assign_domain_registration_contact_roles(contact_handle, assign_registrant, assign_admin, assign_technical, assign_billing)
Assign one existing contact handle as the default for selected domain-registration roles. Set assign_registrant, assign_admin, assign_technical, and/or assign_billing to true; false leaves that role unchanged. Assigning a role replaces any previous default for that role. Use this when registration validation reports a missing registrant, admin, technical, or billing contact.
Input Schema
{
"type": "object",
"properties": {
"contact_handle": {
"title": "Contact Handle",
"type": "string"
},
"assign_registrant": {
"default": false,
"title": "Assign Registrant",
"type": "boolean"
},
"assign_admin": {
"default": false,
"title": "Assign Admin",
"type": "boolean"
},
"assign_technical": {
"default": false,
"title": "Assign Technical",
"type": "boolean"
},
"assign_billing": {
"default": false,
"title": "Assign Billing",
"type": "boolean"
}
},
"required": [
"contact_handle"
],
"title": "assign_domain_registration_contact_rolesArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "assign_domain_registration_contact_rolesDictOutput"
}🔴remove_domain_registration_contact_roles(contact_handle, remove_registrant, remove_admin, remove_technical, remove_billing)
Remove selected default domain-registration roles from one existing contact handle. Set remove_registrant, remove_admin, remove_technical, and/or remove_billing to true; false leaves that role unchanged. This does not delete the contact. Removing a role without assigning it to another contact can make registration validation fail unless register_domain is called with an explicit registration-ready contact_handle.
Input Schema
{
"type": "object",
"properties": {
"contact_handle": {
"title": "Contact Handle",
"type": "string"
},
"remove_registrant": {
"default": false,
"title": "Remove Registrant",
"type": "boolean"
},
"remove_admin": {
"default": false,
"title": "Remove Admin",
"type": "boolean"
},
"remove_technical": {
"default": false,
"title": "Remove Technical",
"type": "boolean"
},
"remove_billing": {
"default": false,
"title": "Remove Billing",
"type": "boolean"
}
},
"required": [
"contact_handle"
],
"title": "remove_domain_registration_contact_rolesArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "remove_domain_registration_contact_rolesDictOutput"
}🟡register_domain(domain, period_years, nameservers, currency, contact_handle, ...)
Register a domain through AIvikings using the authenticated account's configurable default nameservers when nameservers are omitted. Call list_domain_registration_contacts first and pass contact_handle to use one complete reusable contact for registrant, admin, technical, and billing roles. If there is no registration-ready contact, call create_contact before registration. Set currency to the same USD or EUR currency used for the price quote; otherwise the customer's preferred currency is used. If that wallet is short and automatic conversion is enabled, only the missing amount is converted from the other supported wallet. For a premium domain, first show the current get_domain_pricing quote to the user and set allow_premium=true only after the user explicitly accepts that price.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"period_years": {
"title": "Period Years",
"type": "integer"
},
"nameservers": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Nameservers"
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Currency"
},
"contact_handle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Contact Handle"
},
"allow_premium": {
"default": false,
"title": "Allow Premium",
"type": "boolean"
}
},
"required": [
"domain",
"period_years"
],
"title": "register_domainArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "register_domainDictOutput"
}🟢get_domain_status(domain)
Fetch the latest domain status, expiry and nameservers from the registrar and refresh the saved AIvikings record. Use this for an on-demand update, including pending transfers.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
}
},
"required": [
"domain"
],
"title": "get_domain_statusArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "get_domain_statusDictOutput"
}🟢list_domains
List domains recorded in the local registrar datastore.
Input Schema
{
"type": "object",
"properties": {},
"title": "list_domainsArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "list_domainsDictOutput"
}⚪renew_domain(domain, period_years)
Renew a domain through AIvikings.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"period_years": {
"title": "Period Years",
"type": "integer"
}
},
"required": [
"domain",
"period_years"
],
"title": "renew_domainArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "renew_domainDictOutput"
}🔴update_registrant_contact(domain, contact_handle, name, organization, email, ...)
Update the registrant contact for a domain owned by the authenticated customer. Pass contact_handle by itself to apply an existing reusable contact without copying its fields into a new contact record. Name, organization, or email changes require acknowledge_transfer_lock=true because they initiate registrant verification and can impose a 60-day inter-registrar transfer lock. A provider-accepted change is reported as verification pending until the registrant completes that step.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"contact_handle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Contact Handle"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"organization": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Organization"
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Email"
},
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Address"
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "City"
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "State"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Country"
},
"postal_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Postal Code"
},
"phone_country_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Phone Country Code"
},
"phone_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Phone Number"
},
"acknowledge_transfer_lock": {
"default": false,
"title": "Acknowledge Transfer Lock",
"type": "boolean"
}
},
"required": [
"domain"
],
"title": "update_registrant_contactArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "update_registrant_contactDictOutput"
}🔴update_nameservers(domain, nameservers)
Replace a domain's nameservers through AIvikings.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"nameservers": {
"items": {
"type": "string"
},
"title": "Nameservers",
"type": "array"
}
},
"required": [
"domain",
"nameservers"
],
"title": "update_nameserversArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "update_nameserversDictOutput"
}🔴configure_dns_record(domain, record_value, record_name)
Configure an A record for a domain through AIvikings. Use record_name=@ or omit it for the root/apex record. To create a subdomain, pass a relative name such as www for www.example.com or staging.api for staging.api.example.com. For compatibility, a complete hostname such as www.example.com may also be passed as domain; the server will resolve it against the authenticated customer's longest matching parent domain.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"record_value": {
"title": "Record Value",
"type": "string"
},
"record_name": {
"default": "@",
"title": "Record Name",
"type": "string"
}
},
"required": [
"domain",
"record_value"
],
"title": "configure_dns_recordArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "configure_dns_recordDictOutput"
}🟢list_dns_records(domain)
List the managed DNS records for a domain owned by the authenticated customer. Use the returned DNS zone record ID when updating or deleting a record.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
}
},
"required": [
"domain"
],
"title": "list_dns_recordsArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "list_dns_recordsDictOutput"
}🟡add_dns_record(domain, record_name, record_type, record_value, record_ttl, ...)
Add a managed DNS record to a domain owned by the authenticated customer. Supported types are A, AAAA, CNAME, MX, TXT, NS, and SRV. Relative names are expanded below the domain, including nested names such as staging.api; use @ for the zone apex. SRV records require port and weight.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"record_name": {
"title": "Record Name",
"type": "string"
},
"record_type": {
"title": "Record Type",
"type": "string"
},
"record_value": {
"title": "Record Value",
"type": "string"
},
"record_ttl": {
"default": 43200,
"title": "Record Ttl",
"type": "integer"
},
"record_priority": {
"default": 0,
"title": "Record Priority",
"type": "integer"
},
"record_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Record Port"
},
"record_weight": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Record Weight"
}
},
"required": [
"domain",
"record_name",
"record_type",
"record_value"
],
"title": "add_dns_recordArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "add_dns_recordDictOutput"
}🔴update_dns_record(domain, dns_zone_record_id, record_name, record_type, record_value, ...)
Replace an existing managed DNS record. Call list_dns_records first and pass its DNS zone record ID. All record fields must describe the desired replacement.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"dns_zone_record_id": {
"title": "Dns Zone Record Id",
"type": "string"
},
"record_name": {
"title": "Record Name",
"type": "string"
},
"record_type": {
"title": "Record Type",
"type": "string"
},
"record_value": {
"title": "Record Value",
"type": "string"
},
"record_ttl": {
"default": 43200,
"title": "Record Ttl",
"type": "integer"
},
"record_priority": {
"default": 0,
"title": "Record Priority",
"type": "integer"
},
"record_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Record Port"
},
"record_weight": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Record Weight"
}
},
"required": [
"domain",
"dns_zone_record_id",
"record_name",
"record_type",
"record_value"
],
"title": "update_dns_recordArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "update_dns_recordDictOutput"
}🔴delete_dns_record(domain, dns_zone_record_id)
Permanently delete a managed DNS record. Call list_dns_records first and pass the exact DNS zone record ID returned by the provider.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"dns_zone_record_id": {
"title": "Dns Zone Record Id",
"type": "string"
}
},
"required": [
"domain",
"dns_zone_record_id"
],
"title": "delete_dns_recordArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "delete_dns_recordDictOutput"
}⚪domain_transfer(domain, auth_code, period_years)
Transfer a domain in through AIvikings.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
},
"auth_code": {
"title": "Auth Code",
"type": "string"
},
"period_years": {
"default": 1,
"title": "Period Years",
"type": "integer"
}
},
"required": [
"domain",
"auth_code"
],
"title": "domain_transferArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "domain_transferDictOutput"
}🟢get_transfer_auth_code(domain)
Return the EPP transfer auth code for a domain owned by the authenticated customer. The secret is fetched only on demand.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
}
},
"required": [
"domain"
],
"title": "get_transfer_auth_codeArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "get_transfer_auth_codeDictOutput"
}🔴regenerate_transfer_auth_code(domain)
Regenerate and return a new EPP transfer auth code for a domain owned by the authenticated customer, invalidating the old code.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
}
},
"required": [
"domain"
],
"title": "regenerate_transfer_auth_codeArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "regenerate_transfer_auth_codeDictOutput"
}🔴lock_domain(domain)
Enable the registrar transfer lock for a domain owned by the authenticated customer.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
}
},
"required": [
"domain"
],
"title": "lock_domainArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "lock_domainDictOutput"
}🔴unlock_domain(domain)
Disable the registrar transfer lock for a domain owned by the authenticated customer before a transfer-out.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"title": "Domain",
"type": "string"
}
},
"required": [
"domain"
],
"title": "unlock_domainArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "unlock_domainDictOutput"
}🟢reconcile_domains
Compare locally recorded domains with AIvikings records.
Input Schema
{
"type": "object",
"properties": {},
"title": "reconcile_domainsArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "reconcile_domainsDictOutput"
}🟡create_customer(email, display_name, company_name, referral_code, referred_by, ...)
Create a new customer without generating or returning an API key.
Input Schema
{
"type": "object",
"properties": {
"email": {
"title": "Email",
"type": "string"
},
"display_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Display Name"
},
"company_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Company Name"
},
"referral_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Referral Code"
},
"referred_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Referred By"
},
"preferred_currency": {
"default": "USD",
"title": "Preferred Currency",
"type": "string"
}
},
"required": [
"email"
],
"title": "create_customerArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "create_customerDictOutput"
}🟢get_customer(customer_id)
Get the customer record linked to the current bearer token. A supplied customer ID must match that token.
Input Schema
{
"type": "object",
"properties": {
"customer_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Customer Id"
}
},
"title": "get_customerArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "get_customerDictOutput"
}🟡reconcile_provider_client(customer_id)
Link or create the authenticated customer's registrar client account, preventing duplicate creation.
Input Schema
{
"type": "object",
"properties": {
"customer_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Customer Id"
}
},
"title": "reconcile_provider_clientArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "reconcile_provider_clientDictOutput"
}Community
Evidence