clawd/skills/openprovider/SKILL.md

2.8 KiB

OpenProvider Skill

Manage domains at OpenProvider via REST API.

Credentials

File: ~/.config/openprovider.env

OP_USERNAME=johan.jongsma@iasobackup.com
OP_PASSWORD=!!Helder06

Authentication

Tokens are short-lived. Get a new one each session:

TOKEN=$(curl -s -X POST "https://api.openprovider.eu/v1beta/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"username":"johan.jongsma@iasobackup.com","password":"!!Helder06"}' \
  | python3 -c "import json,sys;print(json.load(sys.stdin)['data']['token'])")

Common Operations

List all domains

curl -s "https://api.openprovider.eu/v1beta/domains" \
  -H "Authorization: Bearer $TOKEN" | python3 -c "
import json,sys
d=json.load(sys.stdin)
for dom in d['data']['results']:
    name = dom['domain']['name'] + '.' + dom['domain']['extension']
    print(f\"{name:30s} id={dom['id']} exp={dom.get('expiration_date','')} status={dom.get('status','')}\")
"

Change nameservers

curl -s -X PUT "https://api.openprovider.eu/v1beta/domains/{DOMAIN_ID}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name_servers":[{"name":"ns1.example.com"},{"name":"ns2.example.com"}]}'

Check domain availability

curl -s "https://api.openprovider.eu/v1beta/domains/check" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domains":[{"name":"example","extension":"com"}]}'

Get TLD pricing

curl -s "https://api.openprovider.eu/v1beta/tlds/{EXT}?with_price=true" \
  -H "Authorization: Bearer $TOKEN"

Prices returned as reseller (our cost, EUR) and product (retail, USD).

Get domain details

curl -s "https://api.openprovider.eu/v1beta/domains/{DOMAIN_ID}" \
  -H "Authorization: Bearer $TOKEN"

Domain IDs (current)

Domain ID
busel.nl 4144291
e-consultants.nl 4156002
harryhaasjes.nl 4167447
johanjongsma.nl 4177800
muskepo.nl 4191527
zavtra.nl 4237496
851brightwaters.com 4376894
inou.com 4402885
jongsma.me 4404264
muskepo.com 4409213
stpetersburgaquatics.com 4418712
unbelievable.club 7303826
x4.trading 15826788
localbackup.in 25623799
flourishevents.nl 28736352

Notes

  • .ai domains require 2-year minimum registration
  • Cloudflare does NOT support .nl or .in as registrar TLDs
  • Strategy: DNS at Cloudflare, registrar stays at OpenProvider
  • DNS is managed at Cloudflare, NOT here. OpenProvider = registration only. For DNS changes use ~/.config/cloudflare.env + Cloudflare API. OpenProvider DNS API returns "success" but does nothing — authoritative NS are Cloudflare's.
  • ~€80 credits remaining, use them as domains renew
  • API base: https://api.openprovider.eu/v1beta/