Your Trusted Domain Reseller Partner
RESTful API Documentation

Powerful Domain Management API

Integrate our comprehensive domain management capabilities into your systems with our robust API.

Base URL:

https://reseller.co.tz/api

API Overview

Base URL: https://reseller.co.tz/api

Authentication

  • Send requests as HTTP POST with JSON body
  • Include your API key in header: X-API-KEY: your_api_key
  • Or in JSON body: { "api_key": "your_api_key" }

Available Actions

1. Check Domain Availability

Request:

{
  "action": "checkDomain",
  "domainName": "example.com"
}

Response:

{
  "status": "success",
  "data": {
    "available": true,
    "price": 35000,
    "currency": "TZS"
  }
}

2. Get Domain Info

Request:

{
  "action": "getDomainInfo",
  "domainName": "example.com"
}

Response:

{
  "status": "success",
  "data": {
    "domain": "example.com",
    "status": ["ok"],
    "created": "2024-01-01T00:00:00Z",
    "expires": "2025-01-01T00:00:00Z",
    "registrant": "ABC123",
    "admin": "ABC123",
    "nameservers": [
      "ns1.example.com",
      "ns2.example.com"
    ]
  }
}

3. Get Nameservers

Request:

{
  "action": "getNameservers",
  "domainName": "example.com"
}

Response:

{
  "status": "success",
  "data": {
    "nameservers": [
      "ns1.example.com",
      "ns2.example.com"
    ]
  }
}

4. Register Domain

Request:

{
  "action": "registerDomain",
  "domainName": "example.com",
  "nameservers": [
    "ns1.example.com",
    "ns2.example.com"
  ],
  "registrant": {
    "name": "John Doe",
    "email": "john@example.com",
    "phone": "+255.123456789",
    "address": "123 Main St",
    "city": "Dar es Salaam",
    "country": "TZ"
  }
}

Response:

{
  "status": "success",
  "data": {
    "domain": "example.com",
    "registrationDate": "2024-03-20T12:00:00Z",
    "expiryDate": "2025-03-20T12:00:00Z",
    "amount": 35000,
    "currency": "TZS",
    "transactionId": "TXN123456"
  }
}

5. Update Nameservers

Request:

{
  "action": "updateNameservers",
  "domainName": "example.com",
  "nameservers": [
    "ns1.newserver.com",
    "ns2.newserver.com"
  ]
}

Response:

{
  "status": "success",
  "message": "Nameservers updated successfully",
  "data": {
    "nameservers": [
      "ns1.newserver.com",
      "ns2.newserver.com"
    ]
  }
}

6. Get WHOIS Information

Request:

{
  "action": "getWhois",
  "domainName": "example.com"
}

Response:

{
  "status": "success",
  "data": {
    "domain": "example.com",
    "whois": {
      "registrar": "Example Registrar",
      "registrant": "John Doe",
      "admin": "Jane Admin",
      "created": "2024-01-01T00:00:00Z",
      "expires": "2025-01-01T00:00:00Z",
      "nameservers": [
        "ns1.example.com",
        "ns2.example.com"
      ],
      "status": ["ok"]
    }
  }
}

7. Update WHOIS / Contact Details

Request:

{
  "action": "updateWhois",
  "domainName": "example.ac.tz",
  "registrantInfo": {
    "name": "John Registrant",
    "organization": "Example Corp",
    "address1": "123 Main St",
    "city": "Dar es Salaam",
    "state": "Dar",
    "postcode": "12345",
    "country": "TZ",
    "email": "john@example.com",
    "phone": "+255123456789"
  },
  "adminInfo": {
    "name": "Jane Admin",
    "organization": "Example Corp",
    "address1": "123 Main St",
    "city": "Dar es Salaam",
    "state": "Dar",
    "postcode": "12345",
    "country": "TZ",
    "email": "jane@example.com",
    "phone": "+255987654321"
  }
}

Response:

{
  "status": "success",
  "message": "Contact details updated successfully"
}

8. Renew Domain

Request:

{
  "action": "renewDomain",
  "domainName": "example.ac.tz",
  "period": 1
}

Response:

{
  "status": "success",
  "data": {
    "domain": "example.ac.tz",
    "expiryDate": "2026-03-20T12:00:00Z",
    "amount": 35000,
    "currency": "TZS",
    "transactionId": "TXN123456"
  }
}

9. Get EPP Code

Request:

{
  "action": "getEppCode",
  "domainName": "example.ac.tz"
}

Response:

{
  "status": "success",
  "data": {
    "eppCode": "ABC123XYZ",
    "expiryDate": "2024-04-20T12:00:00Z"
  }
}

10. Transfer Domain

Request:

{
  "action": "transferDomain",
  "domainName": "example.ac.tz",
  "authCode": "ABC123XYZ"
}

Response:

{
  "status": "success",
  "data": {
    "transferId": "TRF123456",
    "status": "pending",
    "initiatedDate": "2024-03-20T12:00:00Z",
    "amount": 35000,
    "currency": "TZS"
  }
}

Error Response Format

{
  "status": "error",
  "message": "Specific error message",
  "code": 400
}

Common Error Codes

  • 400 - Bad Request (Invalid parameters)
  • 401 - Unauthorized (Invalid API key)
  • 402 - Payment Required (Insufficient balance)
  • 403 - Forbidden (Permission denied)
  • 404 - Not Found (Domain not found)
  • 409 - Conflict (Domain already registered)
  • 422 - Unprocessable Entity (Validation failed)
  • 500 - Internal Server Error

Code Examples

PHP Example

Implementation Notes

  • Always handle API errors and timeouts gracefully
  • Store API keys securely and never expose them in client-side code
  • Implement retry logic for failed requests
  • Cache responses where appropriate to avoid rate limit issues

Rate Limits

  • Maximum 100 requests per minute per API key
  • Exceeding limits will result in HTTP 429 (Too Many Requests)
  • Response headers include rate limit information:
    • X-RateLimit-Limit: Requests allowed per window
    • X-RateLimit-Remaining: Requests remaining in current window
    • X-RateLimit-Reset: Time until limit resets (UTC timestamp)
"domainName": "example.ac.tz", "authCode": "ABC123" }