{ "swagger": "2.0", "info": { "version": "1.0.0", "title": "Console API", "description": "API for managing registrars, user data, registry locks, domain lists, users, and contact settings." }, "basePath": "/console-api", "schemes": [ "https" ], "paths": { "/registrars": { "get": { "summary": "Retrieve a list of registrars", "produces": [ "application/json" ], "responses": { "200": { "description": "Successful retrieval of registrars.", "schema": { "type": "array", "items": { "$ref": "#/definitions/Registrar" } } } } } }, "/userdata": { "get": { "summary": "Retrieve user data", "produces": [ "application/json" ], "responses": { "200": { "description": "Successful retrieval of user data.", "schema": { "$ref": "#/definitions/UserData" } } } } }, "/registry-lock": { "get": { "summary": "Retrieve registry lock information", "parameters": [ { "name": "registrarId", "in": "query", "description": "Unique identifier for the registrar.", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Successful retrieval of registry lock information.", "schema": { "type": "array", "items": { "$ref": "#/definitions/RegistryLock" } } } } } }, "/domain-list": { "get": { "summary": "Retrieve a list of domains", "parameters": [ { "name": "registrarId", "in": "query", "description": "Unique identifier for the registrar.", "required": true, "type": "string" }, { "name": "resultsPerPage", "in": "query", "description": "Number of results per page.", "required": true, "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Successful retrieval of domain list.", "schema": { "$ref": "#/definitions/DomainList" } } } } }, "/users": { "get": { "summary": "Retrieve a list of users", "parameters": [ { "name": "registrarId", "in": "query", "description": "Unique identifier for the registrar.", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Successful retrieval of users.", "schema": { "type": "array", "items": { "$ref": "#/definitions/User" } } } } } }, "/settings/contacts": { "get": { "summary": "Retrieve contact settings", "parameters": [ { "name": "registrarId", "in": "query", "description": "Unique identifier for the registrar.", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Successful retrieval of contact settings.", "schema": { "type": "array", "items": { "$ref": "#/definitions/ContactSetting" } } } } }, "post": { "summary": "Update contact settings", "consumes": [ "application/json" ], "parameters": [ { "name": "body", "in": "body", "description": "Contact settings to update.", "required": true, "schema": { "type": "array", "items": { "$ref": "#/definitions/ContactSetting" } } } ], "responses": { "200": { "description": "Contact settings updated successfully." } } } }, "/settings/whois-fields": { "post": { "summary": "Update WHOIS fields", "consumes": [ "application/json" ], "parameters": [ { "name": "body", "in": "body", "description": "WHOIS fields to update.", "required": true, "schema": { "$ref": "#/definitions/Registrar" } } ], "responses": { "200": { "description": "WHOIS fields updated successfully." } } } } }, "definitions": { "Registrar": { "type": "object", "properties": { "registrarId": { "type": "string", "description": "Unique identifier for the registrar." }, "registrarName": { "type": "string", "description": "Name of the registrar." }, "type": { "type": "string", "description": "Type of registrar (e.g., OTE, REAL)." }, "allowedTlds": { "type": "array", "items": { "type": "string" }, "description": "List of allowed Top-Level Domains." }, "ipAddressAllowList": { "type": "array", "items": { "type": "string" }, "description": "List of allowed IP addresses." }, "localizedAddress": { "type": "object", "properties": { "street": { "type": "array", "items": { "type": "string" }, "description": "Street address." }, "city": { "type": "string", "description": "City." }, "state": { "type": "string", "description": "State." }, "zip": { "type": "string", "description": "Zip code." }, "countryCode": { "type": "string", "description": "Country code." } }, "required": [ "street", "city", "state", "zip", "countryCode" ] }, "phoneNumber": { "type": "string", "description": "Phone number." }, "faxNumber": { "type": "string", "description": "Fax number." }, "emailAddress": { "type": "string", "description": "Email address." }, "icannReferralEmail": { "type": "string", "description": "ICANN referral email address." }, "registryLockAllowed": { "type": "boolean", "description": "Whether registry lock is allowed." }, "clientCertificate": { "type": "string", "description": "Client certificate (if applicable)." }, "failoverClientCertificate": { "type": "string", "description": "Failover client certificate (if applicable)." }, "whoisServer": { "type": "string", "description": "WHOIS server (if applicable)." }, "url": { "type": "string", "description": "URL (if applicable)." }, "ianaIdentifier": { "type": "integer", "description": "IANA identifier (if applicable)." }, "billingAccountMap": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Mapping of billing accounts." }, "driveFolderId": { "type": "string", "description": "Google Drive folder ID (if applicable)." } }, "required": [ "registrarId", "registrarName", "type", "allowedTlds", "localizedAddress", "emailAddress", "icannReferralEmail", "registryLockAllowed" ] }, "UserData": { "type": "object", "properties": { "userRoles": { "type": "object", "description": "User roles (currently empty)." }, "supportEmail": { "type": "string", "description": "Support email address." }, "supportPhoneNumber": { "type": "string", "description": "Support phone number." }, "globalRole": { "type": "string", "description": "Global role of the user." }, "isAdmin": { "type": "boolean", "description": "Whether the user is an admin." }, "productName": { "type": "string", "description": "Name of the product." }, "technicalDocsUrl": { "type": "string", "description": "URL for technical documentation." } } }, "RegistryLock": { "type": "object", "properties": { "domainName": { "type": "string", "description": "Name of the domain." }, "registryLockEmail": { "type": "string", "description": "Email address of the requester." }, "lockRequestTime": { "type": "object", "properties": { "creationTime": { "type": "string", "format": "date-time", "description": "Time of lock request." } } }, "unlockRequestTime": { "type": "null", "description": "Time of unlock request (null if not requested)." }, "lockCompletionTime": { "type": "string", "format": "date-time", "description": "Time of lock completion." }, "unlockCompletionTime": { "type": "null", "description": "Time of unlock completion (null if not completed)." }, "isSuperuser": { "type": "boolean", "description": "Whether the user is a superuser." } } }, "DomainList": { "type": "object", "properties": { "domains": { "type": "array", "items": { "$ref": "#/definitions/Domain" }, "description": "List of domains." }, "checkpointTime": { "type": "string", "format": "date-time", "description": "Checkpoint time for the domain list." }, "totalResults": { "type": "integer", "description": "Total number of results." } } }, "Domain": { "type": "object", "properties": { "domainName": { "type": "string", "description": "Name of the domain." }, "adminContact": { "type": "object", "properties": { "key": { "type": "string", "description": "Key for the admin contact." }, "kind": { "type": "string", "description": "Kind of admin contact." } } }, "techContact": { "type": "object", "properties": { "key": { "type": "string", "description": "Key for the tech contact." }, "kind": { "type": "string", "description": "Kind of tech contact." } } }, "registrantContact": { "type": "object", "properties": { "key": { "type": "string", "description": "Key for the registrant contact." }, "kind": { "type": "string", "description": "Kind of registrant contact." } } }, "registrationExpirationTime": { "type": "string", "format": "date-time", "description": "Expiration time for domain registration." }, "lastTransferTime": { "type": "null", "description": "Time of last transfer (null if not transferred)." }, "repoId": { "type": "string", "description": "Repository ID." }, "currentSponsorRegistrarId": { "type": "string", "description": "Current sponsor registrar ID." }, "creationRegistrarId": { "type": "string", "description": "Creation registrar ID." }, "lastEppUpdateRegistrarId": { "type": "string", "description": "Last EPP update registrar ID." }, "creationTime": { "type": "object", "properties": { "creationTime": { "type": "string", "format": "date-time", "description": "Creation time." } } }, "lastEppUpdateTime": { "type": "string", "format": "date-time", "description": "Last EPP update time." }, "statuses": { "type": "array", "items": { "type": "string" }, "description": "Domain statuses." }, "nsHosts": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "description": "Key for the name server host." }, "kind": { "type": "string", "description": "Kind of name server host." } } }, "description": "Name server hosts." } } }, "User": { "type": "object", "properties": { "emailAddress": { "type": "string", "description": "Email address of the user." }, "role": { "type": "string", "description": "Role of the user." } } }, "ContactSetting": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the contact." }, "emailAddress": { "type": "string", "description": "Email address of the contact." }, "registrarId": { "type": "string", "description": "Registrar ID." }, "phoneNumber": { "type": "string", "description": "Phone number of the contact." }, "types": { "type": "array", "items": { "type": "string" }, "description": "Contact types." }, "visibleInWhoisAsAdmin": { "type": "boolean", "description": "Whether the contact is visible in WHOIS as admin." }, "visibleInWhoisAsTech": { "type": "boolean", "description": "Whether the contact is visible in WHOIS as tech." }, "visibleInDomainWhoisAsAbuse": { "type": "boolean", "description": "Whether the contact is visible in domain WHOIS as abuse." }, "userFriendlyTypes": { "type": "array", "items": { "type": "string" }, "description": "User-friendly contact types." } } } } }