OrbitFour

Check domain availability and live registry pricing, or search for available names.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
100%
Calidad de los nombres
100%
Riesgo de envenenamiento
80%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (2)

  • HIGHTool poisoning patterns detected
  • INFOTool description contains placeholder or incomplete texten search_domains

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~6,959Tokens (definiciones de herramientas)
~20.0 KBTamaño de respuesta típico
Impacto significativo en la atención (5.44% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "domains": {
      "url": "https://www.orbitfour.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://www.orbitfour.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (4)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢check_domain(names, years)

Look up exact domain names: whether each can be registered now, and its per-year registration, renewal and transfer price in USD, premium names included, from a live registry check. Use it for names you already have and to confirm a search_domains suggestion. Up to 10 names per call; read-only. available is true, false, or null (the registry could not be asked; not the same as taken). An unavailable name says why in reason: taken, reserved, unavailable or unknown. purchasable is false for an available name OrbitFour can't sell now, and for a null one, and purchase_blocker says why. first_term is the shortest term (min_years: .ai is 2) and its total with the ICANN fee. A malformed name or an extension OrbitFour doesn't sell comes back with an error field. pricing_source says where the registration price came from: "registry" is a live quote for that name, "baseline" is the extension's standard rate and final for the name (the extension has no premium names, or the registry quoted none for it), and "unconfirmed" means the registry lookup did not finish, so the price is not final for a name that may be premium. pricing_sources breaks this out per action.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "names": {
      "type": "array",
      "description": "Domain names to check, e.g. [\"example.com\", \"example.net\"]. Max 10.",
      "items": {
        "type": "string"
      },
      "maxItems": 10
    },
    "years": {
      "maximum": 10,
      "type": "integer",
      "description": "Registration term in years (default 1).",
      "minimum": 1
    }
  },
  "required": [
    "names"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "domains": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "description": "One name's availability and per-year price, shared by GET /domains/check and GET /domains/search. `rank`, `hack` and `match` appear on search suggestions only; `reason` only when the name isn't available.",
            "required": [
              "name",
              "available",
              "premium",
              "currency",
              "registration",
              "renewal",
              "transfer",
              "pricing_source",
              "pricing_sources",
              "min_years",
              "purchasable",
              "purchase_blocker",
              "icann_fee",
              "first_term"
            ],
            "properties": {
              "match": {
                "type": "string",
                "enum": [
                  "exact_sld",
                  "variation"
                ],
                "description": "exact_sld: the SLD as searched; variation: a stem or a hack (search only)."
              },
              "name": {
                "type": "string"
              },
              "reason": {
                "type": "string",
                "enum": [
                  "taken",
                  "reserved",
                  "unavailable",
                  "unknown"
                ],
                "description": "Only when available is false or null. unavailable: the registry won't offer it (or said why in words we don't map); unknown: the check failed or was shed, so try again. This set won't grow."
              },
              "transfer": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Same shape as Money, or null when there is no amount.",
                "required": [
                  "amount",
                  "currency"
                ],
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  }
                }
              },
              "currency": {
                "type": "string"
              },
              "available": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "null when the registry could not be asked (degraded availability)."
              },
              "rank": {
                "type": "integer",
                "description": "1-based relevance ordinal (search only)."
              },
              "renewal": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Same shape as Money, or null when there is no amount.",
                "required": [
                  "amount",
                  "currency"
                ],
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  }
                }
              },
              "registration": {
                "type": "object",
                "description": "An amount as a decimal string, never a float, with its ISO 4217 currency. Ledger amounts are signed.",
                "required": [
                  "amount",
                  "currency"
                ],
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  }
                }
              },
              "purchase_blocker": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "premium_over_cap",
                  "price_unconfirmed",
                  "availability_unknown",
                  null
                ],
                "description": "Why a name isn't purchasable: premium_over_cap (a premium above the $10,000 cap), price_unconfirmed (the registry didn't confirm the price), availability_unknown (available is null: the registry couldn't be asked, so check again). null when purchasable, and when available is false, where reason says why."
              },
              "purchasable": {
                "type": "boolean",
                "description": "Available and buyable here now; a purchase still re-checks."
              },
              "pricing_sources": {
                "type": "object",
                "required": [
                  "registration",
                  "renewal",
                  "transfer"
                ],
                "properties": {
                  "transfer": {
                    "type": "string",
                    "enum": [
                      "registry",
                      "baseline",
                      "unconfirmed"
                    ],
                    "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way."
                  },
                  "renewal": {
                    "type": "string",
                    "enum": [
                      "registry",
                      "baseline",
                      "unconfirmed"
                    ],
                    "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way."
                  },
                  "registration": {
                    "type": "string",
                    "enum": [
                      "registry",
                      "baseline",
                      "unconfirmed"
                    ],
                    "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way."
                  }
                }
              },
              "pricing_source": {
                "type": "string",
                "enum": [
                  "registry",
                  "baseline",
                  "unconfirmed"
                ],
                "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way. Describes REGISTRATION only; see pricing_sources for the others."
              },
              "premium": {
                "type": "boolean"
              },
              "min_years": {
                "type": "integer",
                "description": "Smallest purchase term; prices are per year."
              },
              "icann_fee": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Same shape as Money, or null when there is no amount.",
                "required": [
                  "amount",
                  "currency"
                ],
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  }
                }
              },
              "hack": {
                "type": "boolean",
                "description": "True when the name is a domain hack, e.g. danger.zone (search only)."
              },
              "first_term": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Available names: the shortest term the request allows (years or min_years) and its total, the ICANN fee included. A purchase's max_price taken from it always covers it.",
                "required": [
                  "years",
                  "total"
                ],
                "properties": {
                  "total": {
                    "type": "object",
                    "description": "An amount as a decimal string, never a float, with its ISO 4217 currency. Ledger amounts are signed.",
                    "required": [
                      "amount",
                      "currency"
                    ],
                    "properties": {
                      "currency": {
                        "type": "string"
                      },
                      "amount": {
                        "type": "string"
                      }
                    }
                  },
                  "years": {
                    "type": "integer"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "description": "A GET /domains/check entry for a name that could not be evaluated: malformed, or an unsupported TLD.",
            "required": [
              "name",
              "error"
            ],
            "properties": {
              "error": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          }
        ]
      }
    }
  },
  "required": [
    "domains"
  ]
}
🟢search_domains(query, limit, years, max_price, tlds, ...)

Find domain names from a free-text idea, brand or phrase; a phrase yields short combinations of its words. top_picks answers "how does my name look": the name as typed (when its extension isn't .com/.net/.org) and the name on .com, .net and .org, or on each extension in tlds, with its real status, taken and unknown included, as check_domain reports it. suggestions are up to `limit` ranked names a live check found available, never repeating a top pick, with per-year prices in USD, premium names included unless include_premium is false; match is exact_sld or variation, and hack is true for a domain hack such as danger.zone. unchecked_names lists names whose check came back unknown, left_out counts why other names checked aren't suggested, and with tlds, each extension says why it found nothing. Search is advisory: confirm the chosen name with check_domain before quoting it, and a purchase checks again. Read-only, no side effects.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free-text seed, e.g. \"learning studio app\", a bare SLD, or a full domain."
    },
    "limit": {
      "maximum": 25,
      "type": "integer",
      "description": "Target number of suggestions (default 10).",
      "minimum": 1
    },
    "years": {
      "maximum": 10,
      "type": "integer",
      "description": "Registration term in years (default 1).",
      "minimum": 1
    },
    "max_price": {
      "type": "string",
      "description": "Leave out suggestions whose first_term.total, the first term's price with the ICANN fee (what buying it costs), is above this USD amount, e.g. \"25.00\"."
    },
    "tlds": {
      "type": "array",
      "description": "Optional TLDs to restrict the search to, e.g. [\"com\", \"app\", \"io\"]. The name on each becomes a top pick.",
      "items": {
        "type": "string"
      }
    },
    "include_premium": {
      "type": "boolean",
      "description": "false leaves premium names out of the suggestions (default true)."
    }
  },
  "required": [
    "query"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer"
    },
    "query": {
      "type": "string"
    },
    "tlds": {
      "type": [
        "array",
        "null"
      ],
      "description": "With tlds, one entry per extension asked for, in that order; null without it.",
      "items": {
        "type": "object",
        "required": [
          "tld",
          "found",
          "reason"
        ],
        "properties": {
          "reason": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "unsupported",
              "not_searched",
              "over_limit",
              "over_max_price",
              "premium",
              "premium_over_cap",
              "price_unconfirmed",
              "unchecked",
              "unavailable",
              null
            ],
            "description": "Why found is 0, null otherwise: unsupported (not sold here), over_max_price (its standard first term is above max_price, or every available name on it was), not_searched (the search's bounded pool ran out first), or the left_out reason that kept its names out, the first that applies in left_out's order."
          },
          "found": {
            "type": "integer",
            "description": "Available names on it that pass max_price and include_premium, top picks included.",
            "minimum": 0
          },
          "tld": {
            "type": "string"
          }
        }
      }
    },
    "suggestions": {
      "type": "array",
      "description": "Available names, never one of the top picks.",
      "items": {
        "type": "object",
        "description": "One name's availability and per-year price, shared by GET /domains/check and GET /domains/search. `rank`, `hack` and `match` appear on search suggestions only; `reason` only when the name isn't available.",
        "required": [
          "name",
          "available",
          "premium",
          "currency",
          "registration",
          "renewal",
          "transfer",
          "pricing_source",
          "pricing_sources",
          "min_years",
          "purchasable",
          "purchase_blocker",
          "icann_fee",
          "first_term"
        ],
        "properties": {
          "match": {
            "type": "string",
            "enum": [
              "exact_sld",
              "variation"
            ],
            "description": "exact_sld: the SLD as searched; variation: a stem or a hack (search only)."
          },
          "name": {
            "type": "string"
          },
          "reason": {
            "type": "string",
            "enum": [
              "taken",
              "reserved",
              "unavailable",
              "unknown"
            ],
            "description": "Only when available is false or null. unavailable: the registry won't offer it (or said why in words we don't map); unknown: the check failed or was shed, so try again. This set won't grow."
          },
          "transfer": {
            "type": [
              "object",
              "null"
            ],
            "description": "Same shape as Money, or null when there is no amount.",
            "required": [
              "amount",
              "currency"
            ],
            "properties": {
              "currency": {
                "type": "string"
              },
              "amount": {
                "type": "string"
              }
            }
          },
          "currency": {
            "type": "string"
          },
          "available": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "null when the registry could not be asked (degraded availability)."
          },
          "rank": {
            "type": "integer",
            "description": "1-based relevance ordinal (search only)."
          },
          "renewal": {
            "type": [
              "object",
              "null"
            ],
            "description": "Same shape as Money, or null when there is no amount.",
            "required": [
              "amount",
              "currency"
            ],
            "properties": {
              "currency": {
                "type": "string"
              },
              "amount": {
                "type": "string"
              }
            }
          },
          "registration": {
            "type": "object",
            "description": "An amount as a decimal string, never a float, with its ISO 4217 currency. Ledger amounts are signed.",
            "required": [
              "amount",
              "currency"
            ],
            "properties": {
              "currency": {
                "type": "string"
              },
              "amount": {
                "type": "string"
              }
            }
          },
          "purchase_blocker": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "premium_over_cap",
              "price_unconfirmed",
              "availability_unknown",
              null
            ],
            "description": "Why a name isn't purchasable: premium_over_cap (a premium above the $10,000 cap), price_unconfirmed (the registry didn't confirm the price), availability_unknown (available is null: the registry couldn't be asked, so check again). null when purchasable, and when available is false, where reason says why."
          },
          "purchasable": {
            "type": "boolean",
            "description": "Available and buyable here now; a purchase still re-checks."
          },
          "pricing_sources": {
            "type": "object",
            "required": [
              "registration",
              "renewal",
              "transfer"
            ],
            "properties": {
              "transfer": {
                "type": "string",
                "enum": [
                  "registry",
                  "baseline",
                  "unconfirmed"
                ],
                "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way."
              },
              "renewal": {
                "type": "string",
                "enum": [
                  "registry",
                  "baseline",
                  "unconfirmed"
                ],
                "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way."
              },
              "registration": {
                "type": "string",
                "enum": [
                  "registry",
                  "baseline",
                  "unconfirmed"
                ],
                "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way."
              }
            }
          },
          "pricing_source": {
            "type": "string",
            "enum": [
              "registry",
              "baseline",
              "unconfirmed"
            ],
            "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way. Describes REGISTRATION only; see pricing_sources for the others."
          },
          "premium": {
            "type": "boolean"
          },
          "min_years": {
            "type": "integer",
            "description": "Smallest purchase term; prices are per year."
          },
          "icann_fee": {
            "type": [
              "object",
              "null"
            ],
            "description": "Same shape as Money, or null when there is no amount.",
            "required": [
              "amount",
              "currency"
            ],
            "properties": {
              "currency": {
                "type": "string"
              },
              "amount": {
                "type": "string"
              }
            }
          },
          "hack": {
            "type": "boolean",
            "description": "True when the name is a domain hack, e.g. danger.zone (search only)."
          },
          "first_term": {
            "type": [
              "object",
              "null"
            ],
            "description": "Available names: the shortest term the request allows (years or min_years) and its total, the ICANN fee included. A purchase's max_price taken from it always covers it.",
            "required": [
              "years",
              "total"
            ],
            "properties": {
              "total": {
                "type": "object",
                "description": "An amount as a decimal string, never a float, with its ISO 4217 currency. Ledger amounts are signed.",
                "required": [
                  "amount",
                  "currency"
                ],
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  }
                }
              },
              "years": {
                "type": "integer"
              }
            }
          }
        }
      }
    },
    "top_picks": {
      "type": "array",
      "description": "The name as typed (when its TLD isn't .com/.net/.org) and the SLD on .com, .net and .org, or with tlds on each extension listed (up to 12), taken or unknown included.",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "description": "One name's availability and per-year price, shared by GET /domains/check and GET /domains/search. `rank`, `hack` and `match` appear on search suggestions only; `reason` only when the name isn't available.",
            "required": [
              "name",
              "available",
              "premium",
              "currency",
              "registration",
              "renewal",
              "transfer",
              "pricing_source",
              "pricing_sources",
              "min_years",
              "purchasable",
              "purchase_blocker",
              "icann_fee",
              "first_term"
            ],
            "properties": {
              "match": {
                "type": "string",
                "enum": [
                  "exact_sld",
                  "variation"
                ],
                "description": "exact_sld: the SLD as searched; variation: a stem or a hack (search only)."
              },
              "name": {
                "type": "string"
              },
              "reason": {
                "type": "string",
                "enum": [
                  "taken",
                  "reserved",
                  "unavailable",
                  "unknown"
                ],
                "description": "Only when available is false or null. unavailable: the registry won't offer it (or said why in words we don't map); unknown: the check failed or was shed, so try again. This set won't grow."
              },
              "transfer": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Same shape as Money, or null when there is no amount.",
                "required": [
                  "amount",
                  "currency"
                ],
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  }
                }
              },
              "currency": {
                "type": "string"
              },
              "available": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "null when the registry could not be asked (degraded availability)."
              },
              "rank": {
                "type": "integer",
                "description": "1-based relevance ordinal (search only)."
              },
              "renewal": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Same shape as Money, or null when there is no amount.",
                "required": [
                  "amount",
                  "currency"
                ],
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  }
                }
              },
              "registration": {
                "type": "object",
                "description": "An amount as a decimal string, never a float, with its ISO 4217 currency. Ledger amounts are signed.",
                "required": [
                  "amount",
                  "currency"
                ],
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  }
                }
              },
              "purchase_blocker": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "premium_over_cap",
                  "price_unconfirmed",
                  "availability_unknown",
                  null
                ],
                "description": "Why a name isn't purchasable: premium_over_cap (a premium above the $10,000 cap), price_unconfirmed (the registry didn't confirm the price), availability_unknown (available is null: the registry couldn't be asked, so check again). null when purchasable, and when available is false, where reason says why."
              },
              "purchasable": {
                "type": "boolean",
                "description": "Available and buyable here now; a purchase still re-checks."
              },
              "pricing_sources": {
                "type": "object",
                "required": [
                  "registration",
                  "renewal",
                  "transfer"
                ],
                "properties": {
                  "transfer": {
                    "type": "string",
                    "enum": [
                      "registry",
                      "baseline",
                      "unconfirmed"
                    ],
                    "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way."
                  },
                  "renewal": {
                    "type": "string",
                    "enum": [
                      "registry",
                      "baseline",
                      "unconfirmed"
                    ],
                    "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way."
                  },
                  "registration": {
                    "type": "string",
                    "enum": [
                      "registry",
                      "baseline",
                      "unconfirmed"
                    ],
                    "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way."
                  }
                }
              },
              "pricing_source": {
                "type": "string",
                "enum": [
                  "registry",
                  "baseline",
                  "unconfirmed"
                ],
                "description": "registry: priced live for this name. baseline: the extension's standard rate, and final for this name: the extension has no premium names (premium_possible is false in GET /pricing/{tld}), or the registry's live check returned no premium price for it. unconfirmed: the registry lookup didn't finish, so on an extension with premium names the price isn't final. A purchase checks the price again either way. Describes REGISTRATION only; see pricing_sources for the others."
              },
              "premium": {
                "type": "boolean"
              },
              "min_years": {
                "type": "integer",
                "description": "Smallest purchase term; prices are per year."
              },
              "icann_fee": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Same shape as Money, or null when there is no amount.",
                "required": [
                  "amount",
                  "currency"
                ],
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  }
                }
              },
              "hack": {
                "type": "boolean",
                "description": "True when the name is a domain hack, e.g. danger.zone (search only)."
              },
              "first_term": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Available names: the shortest term the request allows (years or min_years) and its total, the ICANN fee included. A purchase's max_price taken from it always covers it.",
                "required": [
                  "years",
                  "total"
                ],
                "properties": {
                  "total": {
                    "type": "object",
                    "description": "An amount as a decimal string, never a float, with its ISO 4217 currency. Ledger amounts are signed.",
                    "required": [
                      "amount",
                      "currency"
                    ],
                    "properties": {
                      "currency": {
                        "type": "string"
                      },
                      "amount": {
                        "type": "string"
                      }
                    }
                  },
                  "years": {
                    "type": "integer"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "description": "A GET /domains/check entry for a name that could not be evaluated: malformed, or an unsupported TLD.",
            "required": [
              "name",
              "error"
            ],
            "properties": {
              "error": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          }
        ]
      }
    },
    "left_out": {
      "type": "object",
      "description": "How many checked candidates aren't suggestions, by reason, so a short list explains itself: over_limit (past limit), over_max_price, premium (include_premium is false), premium_over_cap (above the purchase cap), price_unconfirmed (the registry's price didn't arrive), unchecked (no answer) and unavailable (taken or reserved).",
      "required": [
        "over_limit",
        "over_max_price",
        "premium",
        "premium_over_cap",
        "price_unconfirmed",
        "unchecked",
        "unavailable"
      ],
      "properties": {
        "unavailable": {
          "type": "integer",
          "minimum": 0
        },
        "premium": {
          "type": "integer",
          "minimum": 0
        },
        "over_max_price": {
          "type": "integer",
          "minimum": 0
        },
        "price_unconfirmed": {
          "type": "integer",
          "minimum": 0
        },
        "over_limit": {
          "type": "integer",
          "minimum": 0
        },
        "unchecked": {
          "type": "integer",
          "minimum": 0
        },
        "premium_over_cap": {
          "type": "integer",
          "minimum": 0
        }
      }
    },
    "unchecked": {
      "type": "integer",
      "description": "How many names unchecked_names lists. A count, never an estimate."
    },
    "unchecked_names": {
      "type": "array",
      "description": "Names whose check came back unknown (top picks included): not taken, just unanswered. Check them again to know.",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "query",
    "top_picks",
    "count",
    "suggestions",
    "unchecked",
    "unchecked_names",
    "left_out",
    "tlds"
  ]
}
🟢get_tld_requirements(tlds)

Look up what OrbitFour charges and requires for domain extensions (TLDs): standard per-year registration, renewal, transfer and restore prices in USD plus the ICANN fee, the shortest and longest term, the fixed transfer term, whether WHOIS privacy is allowed, any eligibility restriction, whether browsers require HTTPS for its websites (https_required: .app, .dev), and JSON Schemas for what a registration must include (.us, for example, needs Nexus data on the registrant contact). Up to 10 extensions per call; read-only. These are standard prices: when premium_possible is true a particular name can cost more, so quote it with check_domain. An extension OrbitFour does not sell comes back as tld_not_found.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "tlds": {
      "type": "array",
      "description": "Extensions without the dot, e.g. [\"us\", \"ai\", \"com\"].",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 10
    }
  },
  "required": [
    "tlds"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "constraints": {
      "type": "object",
      "description": "Account-wide rules that apply to every TLD.",
      "required": [
        "transfer_lock_days",
        "grace_period_days",
        "redemption_period_days",
        "balance_currency",
        "min_deposit",
        "premium_max_retail",
        "docs"
      ],
      "properties": {
        "docs": {
          "type": "string",
          "format": "uri"
        },
        "transfer_lock_days": {
          "type": "integer",
          "description": "Days after a registration or a completed transfer in during which ICANN's Transfer Policy forbids moving a domain to another registrar (60). One domain's countdown is transfer_lock.days_until_transferable on GET /domains/{id} (get_domain)."
        },
        "redemption_period_days": {
          "type": "integer"
        },
        "premium_max_retail": {
          "type": "string"
        },
        "min_deposit": {
          "type": "string"
        },
        "grace_period_days": {
          "type": "integer"
        },
        "balance_currency": {
          "type": "string"
        }
      }
    },
    "tlds": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "description": "One TLD's catalog entry plus what a registration of it must carry: `registration_schema` for the TLD-specific part of the POST /domains body, `registrant_schema` for the fields the registrant contact needs.",
            "required": [
              "tld",
              "name",
              "registration",
              "renewal",
              "transfer",
              "restore",
              "icann_fee",
              "period_years",
              "min_years",
              "max_years",
              "transfer_years",
              "transfer_years_fixed",
              "requires_nexus",
              "premium_possible",
              "https_required",
              "whois_privacy",
              "eligibility",
              "categories",
              "url",
              "registration_schema",
              "registrant_schema"
            ],
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "transfer": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Per-year retail price in the catalog's currency, as a decimal string."
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "restore": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Per-year retail price in the catalog's currency, as a decimal string."
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "renewal": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Per-year retail price in the catalog's currency, as a decimal string."
              },
              "registration": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Per-year retail price in the catalog's currency, as a decimal string."
              },
              "min_years": {
                "type": "integer"
              },
              "icann_fee": {
                "type": "string",
                "description": "Per-year ICANN fee, added on top of each price; \"0.00\" on a ccTLD, which owes none. check_domain reports the same amount."
              },
              "whois_privacy": {
                "type": "object",
                "required": [
                  "supported"
                ],
                "properties": {
                  "supported": {
                    "type": "boolean"
                  },
                  "price": {
                    "type": "string"
                  }
                }
              },
              "transfer_years_fixed": {
                "type": "boolean",
                "description": "true when the registry accepts exactly transfer_years on a transfer and no other period (PIR's .org: 1); false when transfer_years is this extension's shortest term (min_years)."
              },
              "transfer_years": {
                "type": "integer",
                "description": "Years a transfer in buys and is charged for, added to the expiry date. A transfer request takes no years: it's always this."
              },
              "tld": {
                "type": "string"
              },
              "requires_nexus": {
                "type": "boolean"
              },
              "premium_possible": {
                "type": "boolean",
                "description": "Whether the registry can price a name above these standard prices; when true, check_domain quotes the name."
              },
              "period_years": {
                "type": "integer",
                "description": "The term each price covers: always 1, so every price is per year. A purchase costs it times its years (at least min_years)."
              },
              "max_years": {
                "type": "integer"
              },
              "https_required": {
                "type": "boolean",
                "description": "true when browsers load websites on this extension over HTTPS only, because the whole extension is on the HSTS preload list (.app, .dev, .page and others): a site needs a valid TLS certificate before it loads, and http:// links are upgraded. Email and other non-web services are unaffected."
              },
              "eligibility": {
                "type": "object",
                "description": "Who may register a name on this extension.",
                "required": [
                  "restricted"
                ],
                "properties": {
                  "policy": {
                    "type": "string",
                    "description": "The registry's eligibility policy, when it publishes one."
                  },
                  "restricted": {
                    "type": "boolean",
                    "description": "true when the registry limits who may register: a community or profession, or a connection to a place. Every requires_nexus TLD is restricted, and registrant_schema says what its registrant contact must carry. false: anyone may."
                  },
                  "summary": {
                    "type": "string",
                    "description": "Who qualifies, when restricted."
                  }
                }
              },
              "registration_schema": {
                "type": "object",
                "description": "A JSON Schema (2020-12); {} when the TLD adds no requirement."
              },
              "registrant_schema": {
                "type": "object",
                "description": "A JSON Schema (2020-12); {} when the TLD adds no requirement."
              }
            }
          },
          {
            "type": "object",
            "required": [
              "tld",
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "enum": [
                  "tld_not_found"
                ]
              },
              "tld": {
                "type": "string"
              }
            }
          }
        ]
      }
    }
  },
  "required": [
    "tlds",
    "constraints"
  ]
}
🟢check_transfer(names)

Ask each name's registry whether it can be transferred to OrbitFour now (not locked, no transfer or delete pending) and quote the full first-term transfer price in USD: the per-year price plus the ICANN fee for the registry's transfer term. Up to 5 names per call; read-only. transferable is true, false, or null (the registry could not be asked just now; not the same as locked), and reasons says why: invalid_name, unsupported_tld, already_here, not_registered (nobody holds it, so register it instead), locked, pending_transfer, pending_delete, premium_over_cap, price_unconfirmed, unknown. The price is what the transfer would cost if it goes ahead. Never send a transfer authorization code here: the transfer itself asks for it.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "names": {
      "type": "array",
      "description": "Domain names, e.g. [\"example.com\"].",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 5
    }
  },
  "required": [
    "names"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "Whether a name can be transferred to OrbitFour now, and the full first-term price. Prices are null when no price can be quoted.",
        "required": [
          "domain_name",
          "transferable",
          "reasons"
        ],
        "properties": {
          "total": {
            "type": [
              "object",
              "null"
            ],
            "description": "Same shape as Money, or null when there is no amount.",
            "required": [
              "amount",
              "currency"
            ],
            "properties": {
              "currency": {
                "type": "string"
              },
              "amount": {
                "type": "string"
              }
            }
          },
          "domain_name": {
            "type": "string"
          },
          "icann_fee": {
            "type": [
              "object",
              "null"
            ],
            "description": "Same shape as Money, or null when there is no amount.",
            "required": [
              "amount",
              "currency"
            ],
            "properties": {
              "currency": {
                "type": "string"
              },
              "amount": {
                "type": "string"
              }
            }
          },
          "is_premium": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "transfer_years": {
            "type": [
              "integer",
              "null"
            ],
            "description": "The registry's transfer term (PIR's .org is fixed at 1)."
          },
          "transferable": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "true or false from the registry; null when it couldn't be asked just now (never read as locked)."
          },
          "transfer_price": {
            "type": [
              "object",
              "null"
            ],
            "description": "Same shape as Money, or null when there is no amount.",
            "required": [
              "amount",
              "currency"
            ],
            "properties": {
              "currency": {
                "type": "string"
              },
              "amount": {
                "type": "string"
              }
            }
          },
          "reasons": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "invalid_name",
                "unsupported_tld",
                "already_here",
                "not_registered",
                "locked",
                "pending_transfer",
                "pending_delete",
                "premium_over_cap",
                "price_unconfirmed",
                "unknown"
              ]
            }
          }
        }
      }
    }
  },
  "required": [
    "data"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada4 herramientas