Users

    Manage team members in your customer account.

    Overview

    Users are team members within your customer account. Each user can have their own API keys and access to the dashboard.

    Required scopes: users:read, users:write

    Endpoints

    MethodEndpointDescription
    POST/v1/usersCreate a user
    GET/v1/usersList all users
    GET/v1/users/{user_id}Get user details
    PUT/v1/users/{user_id}Update a user
    DELETE/v1/users/{user_id}Delete a user

    Create a User

    curl -X POST https://api.dnscale.eu/v1/users \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "email": "developer@example.com",
        "name": "Jane Developer",
        "role": "member"
      }'

    Request Body:

    FieldTypeRequiredDescription
    emailstringYesUser's email address
    namestringYesUser's display name
    rolestringNoRole: admin, member (default: member)

    Response:

    {
      "status": "success",
      "data": {
        "id": "user_abc123",
        "email": "developer@example.com",
        "name": "Jane Developer",
        "role": "member",
        "created_at": "2025-01-15T10:30:00Z"
      }
    }
    Email Verification

    New users receive an email verification link. They must verify their email before accessing the dashboard.

    List Users

    Retrieve all users in your account:

    curl "https://api.dnscale.eu/v1/users?limit=20&offset=0" \
      -H "Authorization: Bearer YOUR_API_KEY"

    Response:

    {
      "status": "success",
      "data": {
        "items": [
          {
            "id": "user_abc123",
            "email": "admin@example.com",
            "name": "Admin User",
            "role": "admin"
          },
          {
            "id": "user_def456",
            "email": "developer@example.com",
            "name": "Jane Developer",
            "role": "member"
          }
        ],
        "total": 2,
        "limit": 20,
        "offset": 0
      }
    }

    Get User Details

    curl https://api.dnscale.eu/v1/users/{user_id} \
      -H "Authorization: Bearer YOUR_API_KEY"

    Update a User

    curl -X PUT https://api.dnscale.eu/v1/users/{user_id} \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "Jane Smith",
        "role": "admin"
      }'

    Updatable Fields:

    FieldTypeDescription
    namestringUser's display name
    rolestringUser's role

    Delete a User

    curl -X DELETE https://api.dnscale.eu/v1/users/{user_id} \
      -H "Authorization: Bearer YOUR_API_KEY"
    User Deletion

    Deleting a user also deletes all their API keys. This action is irreversible.

    User API Keys

    API keys are managed under individual users. See Authentication for details.

    MethodEndpointDescription
    POST/v1/users/{user_id}/apikeysCreate API key
    GET/v1/users/{user_id}/apikeysList API keys
    GET/v1/users/{user_id}/apikeys/{key_id}Get API key details
    DELETE/v1/users/{user_id}/apikeys/{key_id}Delete API key

    Roles

    RolePermissions
    adminFull access to all resources and settings
    memberAccess to zones and records, limited account settings

    Example: Onboard a New Team Member

    # 1. Create the user
    USER_ID=$(curl -s -X POST https://api.dnscale.eu/v1/users \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "email": "newdev@example.com",
        "name": "New Developer",
        "role": "member"
      }' | jq -r '.data.id')
     
    # 2. Create an API key for the user
    curl -X POST https://api.dnscale.eu/v1/users/$USER_ID/apikeys \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "Development Key",
        "scopes": ["zones:read", "records:read", "records:write"]
      }'