Manage Domains Portfolio — SKILL.md

Raw skill file that agents receive when using this skill

Download
---
name: "Manage Domains Portfolio"
description: "Query and manage 1,772+ domains using the domains.skynet.ceo API — filtering, stats, renewals, sync"
version: "1.0.0"
author: "skynet"
category: "ops"
agents: ["claude-code", "codex", "gemini"]
tags: ["domains", "portfolio", "namesilo", "registrar"]
tools_required: ["shell"]
---

# Manage Domains Portfolio

# Manage Domains Portfolio

## When to use

Use this skill when you need to check domain inventory, look up specific domains, check expiry dates, manage auto-renew settings, or sync the portfolio from NameSilo.

## Prerequisites

- Access to the domains API at `https://api-production-8e63.up.railway.app/api/v1`
- Admin token for authentication

## Instructions

### Authentication

```bash
BASE="https://api-production-8e63.up.railway.app/api/v1"
AUTH="Authorization: Bearer <admin_token>"
```

### Get portfolio stats

```bash
curl -s -H "$AUTH" "$BASE/domains/stats" | jq .
```

Returns total domains, TLD breakdown, expiry warnings, and auto-renew status counts.

### List domains with filtering

```bash
# All .blog domains
curl -s -H "$AUTH" "$BASE/domains?tld=.blog&per_page=100" | jq '.data[] | {domain, expires, auto_renew}'

# Search by keyword
curl -s -H "$AUTH" "$BASE/domains?search=ai&per_page=50" | jq '.data[] | .domain'

# Domains expiring soon
curl -s -H "$AUTH" "$BASE/domains?expiring_within=30&per_page=100" | jq '.data[] | {domain, expires}'

# Paginate through all domains
curl -s -H "$AUTH" "$BASE/domains?page=1&per_page=100" | jq .
```

### Get details for a specific domain

```bash
curl -s -H "$AUTH" "$BASE/domains/skynet.ceo" | jq .
```

### Sync portfolio from NameSilo

```bash
curl -s -X POST -H "$AUTH" "$BASE/sync" | jq .
```

This fetches the latest domain list from NameSilo's API and updates the local database. Run this periodically to keep the inventory current.

### Common patterns

**Find all domains for a specific TLD:**
```bash
for tld in .blog .ceo .ai .dev .com; do
  count=$(curl -s -H "$AUTH" "$BASE/domains?tld=$tld&per_page=1" | jq '.total')
  echo "$tld: $count domains"
done
```

**Export domains expiring in the next 90 days:**
```bash
curl -s -H "$AUTH" "$BASE/domains?expiring_within=90&per_page=500" \
  | jq -r '.data[] | [.domain, .expires, .auto_renew] | @csv'
```

**Check if a specific domain is in the portfolio:**
```bash
curl -s -H "$AUTH" "$BASE/domains?search=example.com" | jq '.data | length'
```

## Troubleshooting

- **Empty results**: The API paginates. Check `.total` in the response and increase `per_page` or iterate pages.
- **Stale data**: Run the sync endpoint to refresh from NameSilo.
- **Auth failed**: Verify the admin token is current.
- **Domain not found**: It may be on a different registrar. Check NameSilo dashboard directly.

## References

- Domains API: `https://api-production-8e63.up.railway.app/api/v1`
- Dashboard: `https://domains.skynet.ceo`
- NameSilo: `https://www.namesilo.com`
- Total domains: ~1,772+

curl -s https://skills.skynet.ceo/api/skills/manage-domains-portfolio/skill.md