Contabo · Schema

HandleCreateRequest

CompanyCloud HostingVPSObject StorageInfrastructureDedicated ServersDNS

Properties

Name Type Description
handleType string The type of the handle
firstName string Handle first name
alias string Customer-chosen alias for the handle. Unique per customer (exact, case-sensitive). Optional for now.
lastName string Handle last name
organization string The organization of the handle
email string Handle email
gender string Handle gender
birthInfo object The birth info of the handle
address object Address details for handle
phone object Handle phone
fax object Handle fax
nicItEntityType string NIC.it entity type (required for .it registrant contacts). Valid values: natural_person, individual_firm, non_profit, public_org, other, company, foreign_legal_entity.
legalStatus string Legal status of an organization handle. Applies to organization handles only and is ignored for person handles. Sent to AFNIC as AFNIC_PM_LEGAL_STATUS, which is required for every .fr contact. Default
pin string Registration code / fiscal code. Required for .it registrant contacts (NIC.it NIC_IT_REG_CODE — codice fiscale or VAT number).
sidnLegalForm string SIDN legal form for .nl contacts (SIDN_LEGAL_FORM). Free-form per the SIDN schema — e.g. BV, NV, Stichting, Eenmanszaak, VOF.
sidnLegalFormRegNo string SIDN legal form registration number for .nl contacts (KvK / Chamber of Commerce number, SIDN_LEGAL_REG_NO).
View JSON Schema on GitHub

JSON Schema

contabo-handle-create-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/contabo/main/json-schema/contabo-handle-create-request-schema.json",
  "title": "HandleCreateRequest",
  "x-generated": "2026-10-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/contabo-openapi.yml#/components/schemas/HandleCreateRequest",
  "type": "object",
  "properties": {
    "handleType": {
      "type": "string",
      "enum": [
        "person",
        "organization"
      ],
      "description": "The type of the handle"
    },
    "firstName": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "Handle first name"
    },
    "alias": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "Customer-chosen alias for the handle. Unique per customer (exact, case-sensitive). Optional for now."
    },
    "lastName": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "Handle last name"
    },
    "organization": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "The organization of the handle"
    },
    "email": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "Handle email"
    },
    "gender": {
      "type": "string",
      "description": "Handle gender",
      "enum": [
        "male",
        "female",
        "na"
      ]
    },
    "birthInfo": {
      "description": "The birth info of the handle",
      "allOf": [
        {
          "$ref": "#/$defs/HandleBirthInfo"
        }
      ]
    },
    "address": {
      "description": "Address details for handle",
      "allOf": [
        {
          "$ref": "#/$defs/HandleAddress"
        }
      ]
    },
    "phone": {
      "description": "Handle phone",
      "allOf": [
        {
          "$ref": "#/$defs/HandlePhone"
        }
      ]
    },
    "fax": {
      "description": "Handle fax",
      "allOf": [
        {
          "$ref": "#/$defs/HandlePhone"
        }
      ]
    },
    "nicItEntityType": {
      "type": "string",
      "description": "NIC.it entity type (required for .it registrant contacts). Valid values: natural_person, individual_firm, non_profit, public_org, other, company, foreign_legal_entity."
    },
    "legalStatus": {
      "type": "string",
      "enum": [
        "company",
        "association",
        "other"
      ],
      "description": "Legal status of an organization handle. Applies to organization handles only and is ignored for person handles. Sent to AFNIC as AFNIC_PM_LEGAL_STATUS, which is required for every .fr contact. Defaults to company when omitted."
    },
    "pin": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "Registration code / fiscal code. Required for .it registrant contacts (NIC.it NIC_IT_REG_CODE — codice fiscale or VAT number)."
    },
    "sidnLegalForm": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "SIDN legal form for .nl contacts (SIDN_LEGAL_FORM). Free-form per the SIDN schema — e.g. BV, NV, Stichting, Eenmanszaak, VOF."
    },
    "sidnLegalFormRegNo": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "SIDN legal form registration number for .nl contacts (KvK / Chamber of Commerce number, SIDN_LEGAL_REG_NO)."
    }
  },
  "required": [
    "handleType",
    "firstName",
    "lastName",
    "email",
    "gender",
    "address",
    "phone"
  ],
  "$defs": {
    "HandleAddress": {
      "type": "object",
      "properties": {
        "street": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "Street"
        },
        "streetNumber": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "Street Number"
        },
        "city": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "City"
        },
        "country": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "Country"
        },
        "zipCode": {
          "type": "string",
          "maxLength": 50,
          "minLength": 1,
          "description": "ZipCode"
        },
        "siret": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "Siret"
        },
        "region": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "Region"
        }
      },
      "required": [
        "street",
        "streetNumber",
        "city",
        "country",
        "zipCode"
      ]
    },
    "HandleBirthInfo": {
      "type": "object",
      "properties": {
        "date": {
          "format": "date-time",
          "type": "string",
          "description": "Date"
        },
        "city": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "City"
        },
        "zipCode": {
          "type": "string",
          "maxLength": 50,
          "minLength": 1,
          "description": "Zipcode"
        },
        "country": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "Country"
        }
      }
    },
    "HandlePhone": {
      "type": "object",
      "properties": {
        "prefix": {
          "type": "string",
          "maxLength": 5,
          "minLength": 1,
          "description": "prefix"
        },
        "number": {
          "type": "string",
          "maxLength": 50,
          "minLength": 1,
          "description": "number"
        }
      },
      "required": [
        "prefix",
        "number"
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/contabo-handle-create-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.