Spaces:
Runtime error
Runtime error
| title: Zone.ID Domain Registration API | |
| emoji: ๐ | |
| colorFrom: blue | |
| colorTo: purple | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # Zone.ID Domain Registration API | |
| A REST API for automating zone.id and nett.to domain registration with automatic account management. | |
| ## Features | |
| - **Domain Registration**: Create subdomains on zone.id and nett.to | |
| - **DNS Management**: Create, update, and delete A and CNAME records | |
| - **Auto-Account Creation**: Automatically creates new accounts when domain limits are reached | |
| - **Token Auto-Refresh**: Automatically refreshes tokens every 6 hours to prevent expiration | |
| ## API Endpoints | |
| All endpoints require `X-API-Key` header for authentication. | |
| ### Health Check | |
| - `GET /health` - Check API status | |
| - `GET /docs` - Swagger API documentation | |
| ### Accounts (`/api/accounts`) | |
| - `GET /` - List all accounts | |
| - `POST /` - Create a new account | |
| - `GET /:id` - Get account details | |
| - `PATCH /:id` - Update account | |
| - `DELETE /:id` - Delete account | |
| - `POST /:id/refresh-token` - Manually refresh account token | |
| - `POST /refresh-all-tokens` - Refresh tokens for all accounts | |
| ### Domains (`/api/domains`) | |
| - `GET /` - List all domains | |
| - `POST /` - Register a new domain | |
| - `GET /:id` - Get domain details | |
| - `DELETE /:id` - Delete domain | |
| ### DNS Records (`/api/dns`) | |
| - `GET /:domainId/records` - List DNS records | |
| - `POST /:domainId/records` - Create DNS record (A/CNAME) | |
| - `PUT /:domainId/records/:recordId` - Update record | |
| - `DELETE /:domainId/records/:recordId` - Delete record | |
| - `POST /:domainId/sync` - Sync records from Zone.ID | |
| ## Environment Variables | |
| Required: | |
| - `DATABASE_URL` - PostgreSQL connection string | |
| Optional: | |
| - `PORT` - Server port (default: 7860) | |
| - `HOST` - Server host (default: 0.0.0.0) | |
| ## Usage Example | |
| ```bash | |
| # Create a domain | |
| curl -X POST https://your-space.hf.space/api/domains \ | |
| -H "X-API-Key: your-api-key" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"subdomain": "myapp", "suffix": "zone.id"}' | |
| # Create an A record | |
| curl -X POST https://your-space.hf.space/api/dns/{domainId}/records \ | |
| -H "X-API-Key: your-api-key" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"type": "A", "hostname": "@", "content": "1.2.3.4"}' | |
| # Create a CNAME record | |
| curl -X POST https://your-space.hf.space/api/dns/{domainId}/records \ | |
| -H "X-API-Key: your-api-key" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"type": "CNAME", "hostname": "www", "content": "example.com"}' | |
| ``` | |
| ## Token Auto-Refresh | |
| The API automatically refreshes Zone.ID tokens every 6 hours to prevent the 3-day expiration. You can also manually trigger a refresh: | |
| ```bash | |
| # Refresh specific account token | |
| curl -X POST https://your-space.hf.space/api/accounts/{accountId}/refresh-token \ | |
| -H "X-API-Key: your-api-key" | |
| # Refresh all account tokens | |
| curl -X POST https://your-space.hf.space/api/accounts/refresh-all-tokens \ | |
| -H "X-API-Key: your-api-key" | |
| ``` | |