Openprovider DomainService API
The DomainService API from Openprovider — 11 operation(s) for domainservice.
The DomainService API from Openprovider — 11 operation(s) for domainservice.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/openprovider-domainservice-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: REST AdditionalData Domain Service API
version: 1.0.0-beta
servers:
- url: https://api.openprovider.eu
security:
- Bearer: []
tags:
- name: DomainService
x-displayName: Domain
paths:
/v1beta/domains:
get:
tags:
- DomainService
summary: List domains
operationId: ListDomains
parameters:
- description: Domain id number.
name: order_by.id
in: query
schema:
type: string
- description: The domain name.
name: order_by.domain_name
in: query
schema:
type: string
- description: Domain extension.
name: order_by.domain_extension
in: query
schema:
type: string
- description: The order date.
name: order_by.order_date
in: query
schema:
type: string
- description: The active date.
name: order_by.active_date
in: query
schema:
type: string
- description: Domain expiration date.
name: order_by.expiration_date
in: query
schema:
type: string
- description: Date on which domain will be renewed.
name: order_by.renewal_date
in: query
schema:
type: string
- description: Domain status.
name: order_by.status
in: query
schema:
type: string
- description: The transfer date.
name: order_by.transfer_date
in: query
schema:
type: string
- description: The limit.
name: limit
in: query
schema:
type: integer
format: int32
- description: The offset.
name: offset
in: query
schema:
type: integer
format: int32
- description: Domain id number.
name: id
in: query
schema:
type: integer
format: int32
- description: Domain extension.
name: extension
in: query
schema:
type: string
- description: Date on which domain will be renewed.
name: renewal_date
in: query
schema:
type: string
- description: Full name of the domain.
name: full_name
in: query
schema:
type: string
- description: The domain name pattern.
name: domain_name_pattern
in: query
schema:
type: string
- description: Nameserver group name pattern.
name: ns_group_pattern
in: query
schema:
type: string
- description: Domain status.
name: status
in: query
schema:
type: string
- description: Array of domain statuses to exclude.
name: status_not_equal
in: query
style: form
explode: true
schema:
type: array
items:
type: string
- description: The queue status.
name: queue_status
in: query
schema:
type: string
- description: Handle to filter by.
name: contact_handle
in: query
schema:
type: string
- description: The comment pattern.
name: comment_pattern
in: query
schema:
type: string
- description: With history.
name: with_history
in: query
schema:
type: boolean
format: boolean
- description: With api history.
name: with_api_history
in: query
schema:
type: boolean
format: boolean
- description: With additional data.
name: with_additional_data
in: query
schema:
type: boolean
format: boolean
- description: When new gTLD is started it gets through several phases before it becomes available for registration to everybody (General availability or GA). There are several phases before GA when it is still possible to apply for a domain, but with some restrictions.
name: application_mode
in: query
schema:
type: string
- description: Returns information about domain owner email verification status.
name: with_verification_email
in: query
schema:
type: boolean
format: boolean
- description: Indicates, if registry EPP statuses should be retrieved.
name: with_registry_statuses
in: query
schema:
type: boolean
format: boolean
- description: The type.
name: response.type
in: query
schema:
type: string
- description: The to.
name: response.to
in: query
schema:
type: string
- description: Indicates whether object is deleted.
name: is_deleted
in: query
schema:
type: boolean
format: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainListDomainsResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
post:
tags:
- DomainService
summary: Create domain
operationId: CreateDomain
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainCreateDomainResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainCreateDomainRequest'
required: true
/v1beta/domains/check:
post:
tags:
- DomainService
summary: Check domain
operationId: CheckDomain
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainCheckDomainResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainCheckDomainRequest'
required: true
/v1beta/domains/suggest-name:
post:
tags:
- DomainService
summary: Suggest name domain
operationId: SuggestNameDomain
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainSuggestNameDomainResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainSuggestNameDomainRequest'
required: true
/v1beta/domains/trade:
post:
tags:
- DomainService
summary: Trade domain
operationId: TradeDomain
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainTradeDomainResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainTradeDomainRequest'
required: true
/v1beta/domains/transfer:
post:
tags:
- DomainService
summary: Transfer domain
operationId: TransferDomain
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainTransferDomainResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainTransferDomainRequest'
required: true
/v1beta/domains/{id}:
get:
tags:
- DomainService
summary: Get domain
operationId: GetDomain
parameters:
- description: Domain id number
name: id
in: path
required: true
schema:
type: integer
format: int32
- description: Domain name without extension.
name: domain.name
in: query
schema:
type: string
- description: Domain extension.
name: domain.extension
in: query
schema:
type: string
- description: Returns domain mutations history.
name: with_history
in: query
schema:
type: boolean
format: boolean
- description: Returns domain API calls history.
name: with_api_history
in: query
schema:
type: boolean
format: boolean
- description: Returns domain additional data.
name: with_additional_data
in: query
schema:
type: boolean
format: boolean
- description: Returns information about domain owner email verification status.
name: with_verification_email
in: query
schema:
type: boolean
format: boolean
- description: Returns domain abuse details.
name: with_abuse_details
in: query
schema:
type: boolean
format: boolean
- description: Returns WPP data.
name: with_whois_privacy_data
in: query
schema:
type: boolean
format: boolean
- description: Indicates, if registry EPP statuses should be retrieved.
name: with_registry_statuses
in: query
schema:
type: boolean
format: boolean
- description: Indicates whether object is deleted.
name: is_deleted
in: query
schema:
type: boolean
format: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainGetDomainResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
put:
tags:
- DomainService
summary: Update domain
operationId: UpdateDomain
parameters:
- description: Domain id number
name: id
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainUpdateDomainResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainUpdateDomainRequest'
required: true
delete:
tags:
- DomainService
summary: Delete domain
operationId: DeleteDomain
parameters:
- description: Domain id number
name: id
in: path
required: true
schema:
type: integer
format: int32
- description: Domain name without extension.
name: domain.name
in: query
schema:
type: string
- description: Domain extension.
name: domain.extension
in: query
schema:
type: string
- description: Type of deletion request.
name: type
in: query
schema:
type: string
- description: Deletes domain, skipping the soft quarantine.
name: skip_soft_quarantine
in: query
schema:
type: boolean
format: boolean
- description: Force delete domain even if it has glue records.
name: force_delete
in: query
schema:
type: boolean
format: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainDeleteDomainResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
/v1beta/domains/{id}/last-operation/restart:
post:
tags:
- DomainService
summary: Try again last operation
operationId: TryAgainLastOperation
parameters:
- description: Domain id number
name: id
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/responseBoolResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainTryAgainLastOperationRequest'
required: true
/v1beta/domains/{id}/renew:
post:
tags:
- DomainService
summary: Renew domain
operationId: RenewDomain
parameters:
- description: Domain id number
name: id
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainRenewDomainResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainRenewDomainRequest'
required: true
/v1beta/domains/{id}/restore:
post:
tags:
- DomainService
summary: Restore domain
operationId: RestoreDomain
parameters:
- description: Domain id number
name: id
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/domainRestoreDomainResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainRestoreDomainRequest'
required: true
/v1beta/domains/{id}/transfer/approve:
post:
tags:
- DomainService
summary: Approve transfer
operationId: ApproveTransfer
parameters:
- description: Domain id number
name: id
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/responseBoolResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainApproveTransferRequest'
required: true
/v1beta/domains/{id}/transfer/send-foa1:
post:
tags:
- DomainService
summary: Send foa1
operationId: SendFoa1
parameters:
- description: Domain id number
name: id
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/responseBoolResponse'
default:
description: (empty)
content:
application/json:
schema:
$ref: '#/components/schemas/errorError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/domainSendFoa1Request'
required: true
components:
schemas:
domainPriceGroup:
type: object
title: PriceGroup
properties:
product:
title: Amount in product currency
$ref: '#/components/schemas/domainPrice'
reseller:
title: Amount in reseller currency
$ref: '#/components/schemas/domainPrice'
example:
product:
currency: USD
price: 8.06
reseller:
currency: USD
price: 8.06
domainOwner:
type: object
title: Owner
properties:
company_name:
type: string
title: Domain owner company name
full_name:
type: string
title: Domain owner full name
example:
company_name: Example company
full_name: Test Van Person
domainApiHistory:
type: object
title: ApiHistory
properties:
cmd:
type: string
title: Command name
created_at:
type: string
title: Domain creation date
domain_id:
type: integer
format: int32
title: The domain id
in:
type: string
title: Request
out:
type: string
title: Response
example:
cmd: deleteDomainRequest
created_at: '2018-09-05 13:58:55'
domain_id: 12345678
in: ''
out: ''
domainDeleteDomainResponse:
type: object
title: DeleteDomainResponse
properties:
code:
type: integer
format: int32
title: Response code
data:
title: Response data
$ref: '#/components/schemas/domainDeleteDomainResponseData'
desc:
type: string
title: Response description
maintenance:
type: boolean
format: boolean
title: Indicates that the Openprovider system is temporarily unavailable because of maintenance
warnings:
type: array
title: Contains warning responses if any
items:
$ref: '#/components/schemas/errorWarning'
example:
code: 0
data:
status: ACT
desc: ''
domainNameserver:
type: object
title: Nameserver
properties:
ip:
type: string
title: The ip
ip6:
type: string
title: The ip6
name:
type: string
title: Full name of the nameserver
seq_nr:
type: integer
format: int32
title: The seq nr
example:
ip: 12.3.123.121
ip6: 1s23:123:123:f
name: ns1.example.com
seq_nr: 1
domainCreateDomainResponse:
type: object
title: CreateDomainResponse
properties:
code:
type: integer
format: int32
title: Response code
data:
title: Response data
$ref: '#/components/schemas/domainCreateDomainResponseData'
desc:
type: string
title: Response description
maintenance:
type: boolean
format: boolean
title: Indicates that the Openprovider system is temporarily unavailable because of maintenance
warnings:
type: array
title: Contains warning responses if any
items:
$ref: '#/components/schemas/errorWarning'
example:
code: 0
data:
activation_date: '2019-04-29 17:15:19'
additional_data:
abogado_acceptance: ''
admin_sing_pass_id: ''
ae_acceptance: '1'
allocation_token: ''
auth_code: ''
bank_acceptance: ''
company_registration_number: XX123456789X01
coop_acceptance: '1'
customer_uin: '374892173498127349'
customer_uin_doc_type:
description: Singapore Personal Access ID
doc_type: singpass
domain_name_variants:
- xn--домен.cat
eligibility_type: ''
eligibility_type_relationship: ''
es_annex_acceptance: '1'
ftld_token: ''
gay_donation_acceptance: '1'
gay_rights_protection_acceptance: '1'
id_number: 123456789X
id_type: ''
idn_script: SPA
insurance_acceptance: ''
intended_use: generic
law_acceptance: ''
legal_type: Individual
maintainer: ''
membership_id: A
mobile_phone_number_verification: ''
ngo_ong_eligibility_acceptance: ''
ngo_ong_policy_acceptance: ''
passport_number: X123456
rurf_blocked_domains: ''
self_service: '1'
trademark: '1'
trademark_id: ''
travel_acceptance: '1'
vat: 11843009X
verification_code: ''
vote_acceptance: ''
voto_acceptance: ''
auth_code: '12345678'
expiration_date: '2020-04-29 17:15:19'
id: 123456789
renewal_date: '2020-04-29 17:15:19'
status: ACT
desc: ''
domainUpdateAdditionalData:
type: object
title: UpdateAdditionalData
properties:
abogado_acceptance:
type: string
title: 'The abogado acceptance value should be set to 1
Applicable to: .abogado'
admin_sing_pass_id:
type: string
title: 'If the admin contact is a natural person located in Singapore, the corresponding Singapore Personal Access ID has to be given. The format of the SingPassID is: X1234567X - where X is an upper case letter at the beginning and end of a seven digit string In case of a foreign organization, it is possible to use the SGNICID: SGNICID-X12-345678 - the SGNICID will look like this example
Applicable to: .com.sg, .sg'
auth_code:
type: string
title: 'The auth code
Applicable to: .nz'
company_registration_number:
type: string
title: 'For companies located in Singapore, the corresponding company registration number has to be given. For Singapore citizens and permanent residents, please provide NRIC or Passport No. For Singapore companies, please provide RCBID as it appears in RCB Certificate. For Singapore societies, please provide RCBID as it appears in ROS Certificate.
Applicable to: .com.sg, .no, .ro, .sg'
customer_uin:
type: string
title: 'Identification number of domain owner document that proves his identity (e.g. passport number, number of driving license or else in case if domain owner is a private person; chamber of commerce registration number, taxpayer number or else in case of legal entity)
Applicable for all TLDs which require documents to complete operation with domain (e.g. .bg, .cn etc.)'
customer_uin_doc_type:
title: 'Type of the domain owner document used to prove his identity (e.g. passport, driving license or else in case if domain owner is a private person; chamber of commerce extract, business certificate or else in case of legal entity)
Applicable for all TLDs which require documents to complete operation with domain (e.g. .bg, .cn etc.)'
$ref: '#/components/schemas/domainUINDocumentType'
domain_name_variants:
type: array
title: 'The domain name variants should be an array of strings, representing appropriate names
Applicable to: .cat'
items:
type: string
intended_use:
type: string
title: 'The intended use value should contain information on how the domain name will be used
Applicable to: .cat'
law_acceptance:
type: string
title: 'The law acceptance value should be set to 1
Applicable to: .law'
legal_type:
type: string
title: 'The legal type
Applicable to: .ca'
maintainer:
type: string
title: 'The maintainer value should be a string, specifying maintainer information. Maximum length 128 characters.
Applicable to: .cat'
membership_id:
type: string
title: 'The membership id value cannot be empty
Applicable to: .lotto, .xxx'
mobile_phone_number_verification:
type: string
title: 'The mobile phone''s verification via sms
Applicable to: .ru, .su, .xn--p1ai'
ngo_ong_eligibility_acceptance:
type: string
title: 'The ngo, ong eligibility acceptance value should be set to 1
Applicable to: .ngo, .ong'
ngo_ong_policy_acceptance:
type: string
title: 'The ngo, ong policy acceptance value should be set to 1
Applicable to: .ngo, .ong'
passport_number:
type: string
title: 'The passport number. Required in case if domain requester is a private individual
Applicable to: .co.hu, .hu'
vat:
type: string
title: 'The vat number. Required in case if domain requester is a legal entity
Applicable to: .co.hu, .hu'
verification_code:
type: string
title: 'The verification code value cannot be empty
Applicable to: .lotto'
example:
abogado_acceptance: ''
admin_sing_pass_id: ''
auth_code: ''
company_registration_number: XX123456789X02
customer_uin: '374892173498127349'
customer_uin_doc_type:
description: Singapore Personal Access ID
doc_type: singpass
domain_name_variants:
- xn--домен.cat
intended_use: generic
law_acceptance: ''
legal_type: Individual
maintainer: ''
membership_id: A
mobile_phone_number_verification: ''
ngo_ong_eligibility_acceptance: ''
ngo_ong_policy_acceptance: ''
passport_number: X123457
vat: 11843009X
verification_code: ''
domainSuggestNameDomainResponse:
type: object
title: SuggestNameDomainResponse
properties:
code:
type: integer
format: int32
title: Response code
data:
title: Response data
$ref: '#/components/schemas/domainSuggestNameDomainResponseData'
desc:
type: string
title: Response description
maintenance:
type: boolean
format: boolean
title: Indicates if Openprovider API is on maintenance
warnings:
type: array
title: Array of warning messages
items:
$ref: '#/components/schemas/errorWarning'
example:
code: 0
data:
results:
- domain: yourexampledomain
name: yourexampledomain.com
tld: com
desc: ''
domainCreateDomainRequest:
type: object
title: CreateDomainRequest
properties:
accept_eap_fee:
type: number
format: double
title: Required for certain pre-pregistrations
accept_premium_fee:
type: number
format: double
title: Premium price fee acceptance
additional_data:
title: Additional domain data
$ref: '#/components/schemas/domainAdditionalData'
admin_handle:
type: string
title: Administrative contact handle
application_mode:
description: When new gTLD is started it gets through several phases before it becomes available for registration to everybody (General availability or GA). There are several phases before GA when it is still possible to apply for a domain, but with some restrictions.
type: string
application_notice_id:
type: string
title: The application notice id
application_smd:
type: string
title: The application smd
auth_code:
type: string
title: Authorization code
autorenew:
type: string
title: 'Desired autorenew value: off, on, or default'
billing_handle:
type: string
title: Billing contact handle
comments:
type: string
title: Domain comments
dnssec_keys:
type: array
title: Array containing DNSSEC key information
items:
$ref: '#/components/schemas/domainDnssecKey'
domain:
title: Domain name and extension
$ref: '#/components/schemas/domainDomain'
is_dnssec_enabled:
type: boolean
format: boolean
title: Enables or disables DNSSEC on domain
is_easy_dmarc_enabled:
type: boolean
format: boolean
title: Enables or disables easy dmarc protection for this domain
default: false
is_private_whois_enabled:
type: boolean
format: boolean
title: Enables or disables whois privacy protection (WPP) on domain
is_sectigo_dns_enabled:
type: boolean
format: boolean
title: Enables or disables premium Sectigo DNS on domain
is_spamexperts_enabled:
type: boolean
format: boolean
title: Enable Spam Experts spam protetion for domain
name_servers:
type: array
title: Array containing name server information
items:
$ref: '#/components/schemas/domainNameserver'
ns_group:
type: string
title: Name of nameserver group
ns_template_id:
type: integer
format: int32
title: Id of nameserver template
ns_template_name:
type: string
title: Name of nameserver template
owner_handle:
type: string
title: Owner contact handle
period:
type: integer
format: int32
title: Domain registration period in years unless otherwise specified
promo_code:
type: string
title: Promo code to apply to operation
provider:
type: string
title: Indicates what provider should be chosen for domain operation
reseller_handle:
type: string
title: Reseller handle
tech_handle:
type: string
title: Tech contact handle
unit:
type: string
title: Unit of time to register domain, yearly, quarterly, or
# --- truncated at 32 KB (127 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openprovider/refs/heads/main/openapi/openprovider-domainservice-api-openapi.yml