| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [View Raw Code] [Original HTTPS Page] |
This document describes the Pointer legacy XML API (v1) endpoints and their usage.
Every request requires a checksum calculated as:
md5(username + password + action + key)
Where:
The checksum is included in every request as <chksum>.
Authenticated endpoints also require the <key> element obtained from a successful login call.
All requests and responses use XML over HTTP POST.
Request content-type: text/xml or application/xml
Response envelope:
<pointer version="1.6.3.2">
<action>...</action>
<code>200</code>
<message>Success</message>
</pointer>| Code | Meaning |
|---|---|
| 200 | Success |
| 101 | No access to Pointer API — account not authorized for API access |
| 102 | Wrong credentials — invalid username or password |
| 103 | Invalid key — session key expired or tampered with |
| 104 | Too many connections — connection limit exceeded; retry after a delay |
| 105 | Client does not exist |
| 106 | Invalid request — malformed XML or missing required elements |
| 301 | Invalid arguments — valid request but a parameter value is out of range or of the wrong type |
| 302 | Product does not exist |
| 303 | Not enough credit — account balance too low to complete the operation |
| 304 | Domain cannot be locked — TLD does not support registry lock |
| 305 | Domain cannot be ID shielded — TLD or registrar does not support WHOIS privacy |
| 306 | Product cannot be upgraded/downgraded to the requested plan |
| 307 | Nameserver already exists |
| 308 | Unable to create nameserver — glue record creation failed at the registry |
| 309 | Cannot modify contact — contact is linked to an active domain and the registry rejects the update |
| 501 | API error — unexpected server-side error; contact support with the request details |
Authenticates with username and password, returns an API key for subsequent requests.
The action value for the checksum is login. The key segment of the checksum is an empty string.
Request:
<pointer>
<login>
<username>user</username>
<password>pass</password>
</login>
<chksum>md5hash</chksum>
</pointer>Response:
<pointer version="1.6.3.2">
<login>
<key>a1b2c3d4e5f6...</key>
</login>
<code>200</code>
<message>Success</message>
</pointer>Errors: 102 (wrong credentials), 101 (no API access)
Invalidates the current API key. Always call this when the session is no longer needed.
Request:
<pointer>
<logout/>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103 (invalid key)
Registers a new domain name. Deducts the registration fee from the account balance.
| Field | Required | Description |
|---|---|---|
| domain | Yes | Domain name without TLD (e.g. example) |
| duration | Yes | Registration period in years |
| ns1 | Yes | Primary nameserver hostname |
| ns2 | Yes | Secondary nameserver hostname |
| registrant | Yes | Contact code of the registrant (must be pre-created via contact-domain) |
| description | No | Internal label for the domain |
| lock | No | 1 to enable registry lock, 0 to leave unlocked |
| id_shield | No | 1 to enable WHOIS privacy (ID Shield), 0 to leave disabled |
Request:
<pointer>
<domain>
<create>
<domain>example.com</domain>
<duration>1</duration>
<ns1>ns1.example.com</ns1>
<ns2>ns2.example.com</ns2>
<registrant>contact_code</registrant>
<description>My website</description>
<lock>1</lock>
<id_shield>1</id_shield>
</create>
</domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 301 (invalid arguments), 303 (insufficient balance), 304 (lock not supported), 305 (ID shield not supported)
Extends the expiry date of an existing domain. Deducts the renewal fee from the account balance.
| Field | Required | Description |
|---|---|---|
| domain | Yes | Fully qualified domain name (e.g. example.com) |
| duration | Yes | Renewal period in years |
Request:
<pointer>
<domain>
<renew>
<domain>example.com</domain>
<duration>1</duration>
</renew>
</domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 301, 303 (insufficient balance)
Initiates a transfer of a domain from another registrar to Pointer. Requires the domain's EPP/auth code.
| Field | Required | Description |
|---|---|---|
| domain | Yes | Fully qualified domain name to transfer |
| code | Yes | EPP authorization code (auth code) provided by the losing registrar |
Request:
<pointer>
<domain>
<transfer>
<domain>example.com</domain>
<code>EPP-AUTH-CODE</code>
</transfer>
</domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 301, 303 (insufficient balance)
Replaces the nameservers for a domain. Both ns1 and ns2 must be provided; the change propagates to the registry immediately.
| Field | Required | Description |
|---|---|---|
| domain | Yes | Fully qualified domain name |
| ns1 | Yes | New primary nameserver hostname |
| ns2 | Yes | New secondary nameserver hostname |
Request:
<pointer>
<domain>
<updatens>
<domain>example.com</domain>
<ns1>ns1.example.com</ns1>
<ns2>ns2.example.com</ns2>
</updatens>
</domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 301, 307 (nameserver already exists), 308 (nameserver creation failed)
Enables or disables the registry lock on a domain. A locked domain cannot be transferred, deleted, or have its nameservers changed until it is unlocked.
Lock request:
<pointer>
<domain>
<lock>
<domain>example.com</domain>
</lock>
</domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Unlock request:
<pointer>
<domain>
<unlock>
<domain>example.com</domain>
</unlock>
</domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 304 (lock not supported by TLD)
Enables or disables WHOIS privacy (ID Shield) for a domain. When enabled, the registrant's personal details are replaced with proxy contact information in the public WHOIS record.
Add ID Shield:
<pointer>
<domain>
<addidshield>
<domain>example.com</domain>
</addidshield>
</domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Remove ID Shield:
<pointer>
<domain>
<removeidshield>
<domain>example.com</domain>
</removeidshield>
</domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 305 (ID shield not supported by TLD)
Contacts store the registrant information associated with a domain. Each contact is identified by a unique code returned on creation.
Creates a new contact record. The tld field controls which registry-specific validation rules are applied.
| Field | Required | Description |
|---|---|---|
| domain | Yes | Domain label (without TLD) the contact is associated with |
| name | Yes | Full name of the contact person or organization |
| street | Yes | Street address |
| city | Yes | City |
| sp | Yes | State / province |
| pc | Yes | Postal / ZIP code |
| country | Yes | ISO 3166-1 alpha-2 country code (e.g. GR) |
| phone | Yes | Phone number in ITU format (e.g. +30.2310123456) |
| Yes | Contact email address | |
| tld | Yes | TLD the contact is intended for (e.g. com, gr) |
Request:
<pointer>
<contact-domain>
<create>
<domain>example</domain>
<name>John Doe</name>
<street>123 Main Street</street>
<city>Athens</city>
<sp>Attica</sp>
<pc>10431</pc>
<country>GR</country>
<phone>+30.2310123456</phone>
<email>john@example.com</email>
<tld>com</tld>
</create>
</contact-domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Response includes the new code that identifies this contact.
Errors: 103, 301 (invalid field values)
Retrieves all stored fields for an existing contact.
| Field | Required | Description |
|---|---|---|
| code | Yes | Contact code returned from create |
| tld | Yes | TLD the contact belongs to |
Request:
<pointer>
<contact-domain>
<get>
<code>contact_code</code>
<tld>com</tld>
</get>
</contact-domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 105 (contact does not exist)
Updates the stored fields for an existing contact. Some registries reject changes to contacts that are actively linked to a domain (error 309).
| Field | Required | Description |
|---|---|---|
| domain | Yes | Domain the contact is linked to |
| code | Yes | Contact code to update |
| name … email | Yes | Same fields as create — all fields must be provided |
| tld | Yes | TLD the contact belongs to |
Request:
<pointer>
<contact-domain>
<update>
<domain>example.com</domain>
<code>contact_code</code>
<name>Jane Doe</name>
<street>456 New Street</street>
<city>Thessaloniki</city>
<sp>Central Macedonia</sp>
<pc>54621</pc>
<country>GR</country>
<phone>+30.2310654321</phone>
<email>jane@example.com</email>
<tld>com</tld>
</update>
</contact-domain>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 301, 309 (registry rejects update for active contact)
Products represent hosting services (web hosting, email, VPS, etc.) associated with a domain.
Provisions a new hosting product. The code identifies the product plan (retrieve available codes via order-products).
| Field | Required | Description |
|---|---|---|
| domain | Yes | Fully qualified domain name the product is provisioned under |
| duration | Yes | Service period in months |
| code | Yes | Product plan code |
| autorenew | No | 1 to enable automatic renewal, 0 to disable |
Request:
<pointer>
<product>
<create>
<domain>example.com</domain>
<duration>12</duration>
<code>product_code</code>
<autorenew>1</autorenew>
</create>
</product>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 301, 302 (product code not found), 303 (insufficient balance)
Changes an existing product to a different plan. The new code must be in the same product category. Only upgrades (higher-tier plans) are guaranteed to be supported; downgrades depend on the product type.
| Field | Required | Description |
|---|---|---|
| id | Yes | Internal product ID |
| code | Yes | Target product plan code |
Request:
<pointer>
<product>
<upgrade>
<id>product_id</id>
<code>new_product_code</code>
</upgrade>
</product>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 302 (product not found), 303 (insufficient balance), 306 (upgrade/downgrade not allowed)
Extends the expiry date of an existing product. Deducts the renewal fee from the account balance.
| Field | Required | Description |
|---|---|---|
| id | Yes | Internal product ID |
| duration | Yes | Extension period in months |
Request:
<pointer>
<product>
<renew>
<id>product_id</id>
<duration>12</duration>
</renew>
</product>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 302 (product not found), 303 (insufficient balance)
Issues a new SSL certificate. The CSR must be generated on the server where the certificate will be installed.
| Field | Required | Description |
|---|---|---|
| duration | Yes | Certificate validity in months |
| code | Yes | SSL product code (retrieve available codes via order-products) |
| csr | Yes | Certificate Signing Request (PEM format) |
Request:
<pointer>
<ssl>
<create>
<duration>12</duration>
<code>ssl_product_code</code>
<csr>-----BEGIN CERTIFICATE REQUEST-----
...
-----END CERTIFICATE REQUEST-----</csr>
</create>
</ssl>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 301 (invalid CSR), 302 (SSL product code not found), 303 (insufficient balance)
Renews an existing SSL certificate before it expires.
| Field | Required | Description |
|---|---|---|
| id | Yes | Internal SSL certificate ID |
| duration | Yes | Renewal period in months |
Request:
<pointer>
<ssl>
<renew>
<id>ssl_id</id>
<duration>12</duration>
</renew>
</ssl>
<key>api_key</key>
<chksum>md5hash</chksum>
</pointer>Errors: 103, 302 (SSL certificate not found), 303 (insufficient balance)
These endpoints do not require an API key (<key>) but still require a valid <chksum>.
Returns all available product plans and their pricing. Use the returned code values when calling product.create, product.upgrade, or ssl.create.
Request:
<pointer>
<products/>
<chksum>md5hash</chksum>
</pointer>Returns available products filtered by category. Categories group related products (e.g. web hosting, email hosting, VPS).
| Field | Required | Description |
|---|---|---|
| category | Yes | Category ID to filter by |
Request:
<pointer>
<order-products>
<category>category_id</category>
</order-products>
<chksum>md5hash</chksum>
</pointer>Returns available addons for a given product plan. Addons are optional extras that can be provisioned alongside the main product (e.g. extra storage, dedicated IP).
| Field | Required | Description |
|---|---|---|
| product | Yes | Product plan code to retrieve addons for |
Request:
<pointer>
<addons>
<product>product_code</product>
</addons>
<chksum>md5hash</chksum>
</pointer>Checks whether one or more domain names are available for registration. Multiple TLDs can be checked in a single request.
| Element | Description |
|---|---|
| domain | Domain label without TLD (e.g. example) — can be repeated |
| tld | TLD to check (e.g. .com) — can be repeated |
Request:
<pointer>
<domain-check>
<domains>
<domain>example</domain>
<domain>mysite</domain>
</domains>
<tlds>
<tld>.com</tld>
<tld>.net</tld>
<tld>.gr</tld>
</tlds>
</domain-check>
<chksum>md5hash</chksum>
</pointer>Response contains an availability status for each domain + TLD combination.
Always check the <code> element in the response before processing the payload. A response with <code>200</code> indicates success; any other code signals a problem described by <message>.
For codes 501 (API error), record the full request XML and contact support — these indicate unexpected server-side failures.
Each client account has a maximum number of concurrent API connections. Exceeding the limit returns code 104. Implement exponential backoff and retry after a short delay.
For API support contact the system administrator or open a support ticket through the client panel.
| Back | FazBrowse Home | New Git URL |