All integrations

Porkbun

Connect Claude, ChatGPT or Cursor to Porkbun via MCP. Manage domains, DNS, registration, renewal, and transfers with an API key and secret.

Manual setup 49 tools

Example questions

Try asking your AI client

  • Which Porkbun domains can this API key manage?

  • Show the DNS records for example.com.

  • Is testdomain-example.com available, and what does registration cost?

  • Add a dry-run A record for www.example.com pointing at 203.0.113.10.

  • Which domains expire in the next 30 days?

Overview

Connect Porkbun so AI clients can list domains, inspect and edit DNS, and register, renew, or transfer domains - without pasting API keys into prompts.

Register, renew, and transfer spend Porkbun account credit. Always run a dry run first, then confirm the domain and price with the user.

Prerequisites

  • A Porkbun account with API Access enabled
  • A stackgate.ai account
  • Enough Porkbun credit if you plan to register, renew, or transfer

Getting credentials

  1. Sign in to Porkbun and open Account → API Access.
  2. Create an API key. Copy the public API key (pk1_…) and the secret API key (sk1_…). The secret is shown once.
  3. Enable API access on each domain you want to manage, or use Opt In All Domains.
  4. Leave IP restriction empty for hub keys. Restrict by domain allowlist instead. stackgate.ai does not publish static egress IPs.
  5. In stackgate.ai, open My Integrations → Porkbun.
  6. Click Activate, paste the API key and secret, and save. stackgate.ai tests the keys with Porkbun /ping before storing them.

Sandbox keys start with pk1_sb_ / sk1_sb_. Use them only against Porkbun's sandbox host.

See the Porkbun API documentation.

Credentials reference

Field Required Where to find it Notes
API key Yes Account → API Access Public key, starts with pk1_. Stored encrypted.
Secret API key Yes Account → API Access Shown once at creation. Stored encrypted.

Using with AI clients

  • Dedicated endpoint: POST /mcp/porkbun with a Sanctum bearer token
  • Private gateway: one config for all integrations - use porkbun__* namespaced tools
  • Business gateway: same namespaced tools when Porkbun is enabled for the company

Key tools:

  • ping, list_domains, get_domain - confirm keys and find domains with API access
  • check_domain, get_pricing, get_registration_requirements - availability and price before register
  • list_dns_records, create_dns_record, update_dns_record, delete_dns_record - DNS (subdomain only in name, never the FQDN)
  • register_domain, renew_domain, transfer_domain - spends credit; use dry_run=true first
  • get_ssl_bundle - includes a private key; do not paste it into public chats

After connecting, use Edit tool access to restrict tools (for example DNS only, no register).

See Documentation for HTTP authentication and private gateway setup.

Test the integration

List Porkbun domains this API key can manage.
Show DNS records for example.com.
Check whether testdomain-example.com is available and what it costs.
Create a dry-run A record for www.example.com pointing at 203.0.113.10.

Typical tools: list_domains, list_dns_records, check_domain, create_dns_record.

Troubleshooting

Problem Likely cause Fix
422 integration not configured Credential form not completed Add API key and secret under My Integrations
Porkbun rejected these API keys Wrong key, secret, or API Access off Recreate the key pair and confirm Opt In All Domains or per-domain access
403 DOMAIN_NOT_ALLOWED Domain not opted in to this key Enable API Access on that domain
403 IP_NOT_ALLOWED Key has an IP allowlist Clear IP restriction on the Porkbun key; restrict by domain instead
429 RATE_LIMIT_EXCEEDED Porkbun rate limit (check_domain is about 1 per 10 seconds) Wait Retry-After seconds; avoid polling availability
DNS change did not go live Domain uses Cloudflare via Porkbun Porkbun /dns edits Porkbun's copy; live resolution may stay on Cloudflare

Security and revocation

  • Disconnect in My Integrations → Porkbun to delete the stored keys from stackgate.ai.
  • Revoke or rotate keys in Porkbun Account → API Access.
  • Keys are stored encrypted. Tool calls are audit logged. Keys are never accepted as tool arguments.

Limitations

  • Register, renew, and transfer spend Porkbun credit and must match the quoted cost in pennies.
  • check_domain is rate-limited (about 1 check per 10 seconds).
  • Hub keys should not use Porkbun IP restriction. Use domain allowlists.
  • get_ssl_bundle returns a private key. Treat it as a secret.
  • Porkbun hosting, WordPress, and Cloudflare-connect endpoints are not exposed.

Available tools

  • ping

    Verify Porkbun API credentials and return the caller IP.

  • get_pricing

    Get Porkbun registration, renewal, and transfer pricing across TLDs.

  • check_domain

    Check whether a domain is available and return current registration, renewal, and transfer prices. Rate-limited (about 1 check per 10 seconds).

  • get_registration_requirements

    Get whether a TLD is API-registerable plus the /domain/create payload as JSON Schema and any registry eligibility fields.

  • list_domains

    List domains in the Porkbun account. Paginate with start (up to 1000 per page). Prefer api_access=yes to see domains this key can manage.

  • get_domain

    Get metadata for one domain in the connected Porkbun account.

  • get_balance

    Get Porkbun account credit balance.

  • get_api_settings

    Get monthly API spend-control settings and current-month spend.

  • get_nameservers

    Get the current nameservers for a domain.

  • list_dns_records

    List editable DNS records for a domain (SOA and default Porkbun NS records are omitted).

  • get_dns_record

    Get a single DNS record by numeric ID.

  • list_dns_records_by_name_type

    List DNS records for a domain that match a record type and optional subdomain.

  • list_dnssec_records

    List DNSSEC DS records published at the registry for a domain.

  • list_url_forwards

    List URL forwarding rules for a domain.

  • list_glue_records

    List glue records (host-to-IP mappings) for a domain.

  • list_transfers

    List in-progress and recent inbound domain transfers.

  • get_transfer_status

    Get the status of an inbound transfer for a domain.

  • get_ssl_bundle

    Retrieve the free Porkbun-issued SSL certificate bundle for a domain. The response includes the private key; treat it as a secret and do not paste it into public chats.

  • get_contacts

    Get a domain's registrant, admin, tech, and billing contacts.

  • list_marketplace

    Browse Porkbun aftermarket listings with optional filters.

  • get_webhook_event_types

    List event types a Porkbun webhook endpoint can subscribe to.

  • list_webhooks

    List webhook endpoints (URL, events, status, delivery health).

  • get_webhook

    Get a single webhook endpoint by ID.

  • list_webhook_deliveries

    List recent webhook delivery attempts (about 30 days of history).

  • get_webhook_delivery

    Get a single webhook delivery including the signed payload.

  • register_domain

    Register a domain using Porkbun account credit. Call check_domain first, then dry_run=true, then confirm domain and price with the user. cost must match the quote in pennies. agree_to_terms must be yes.

  • renew_domain

    Renew a domain using Porkbun account credit. Confirm cost from check_domain or get_pricing. Prefer dry_run=true first.

  • transfer_domain

    Initiate an inbound domain transfer. Requires the EPP auth code and a matching transfer cost in pennies. Transfers take several days; poll get_transfer_status.

  • update_auto_renew

    Turn auto-renewal on or off for one or more domains.

  • update_nameservers

    Replace the nameserver list for a domain (full replace, not append). Prefer dry_run=true first.

  • update_contacts

    Update domain contacts. Provide contacts (per-role object) or contact (applied to all four roles). Fields: firstName, lastName, organization, address1, address2, address3, city, state, postalCode, country (ISO 3166-1 alpha-2), phone, phoneCountryCode, fax, email.

  • create_dns_record

    Create a DNS record. name is the subdomain only (www, *, or omit for apex). Prefer dry_run=true before creating.

  • update_dns_record

    Edit a DNS record by numeric ID. Prefer dry_run=true before changing live records.

  • delete_dns_record

    Delete a DNS record by numeric ID. Prefer dry_run=true first.

  • update_dns_records_by_name_type

    Replace the content of all DNS records matching a subdomain and type.

  • delete_dns_records_by_name_type

    Delete all DNS records matching a subdomain and type.

  • create_dnssec_record

    Submit a DNSSEC DS record to the registry for a domain.

  • delete_dnssec_record

    Delete a DNSSEC record from the registry by key tag. Most registries delete all records matching the key data.

  • create_url_forward

    Create a URL forwarding rule for a domain or subdomain.

  • delete_url_forward

    Delete a URL forwarding rule by ID.

  • create_glue_record

    Create a glue record (host-to-IP mapping) at the registry.

  • update_glue_record

    Replace the IP list for a glue record.

  • delete_glue_record

    Delete a glue record by host label.

  • create_webhook

    Register an HTTPS endpoint to receive signed Porkbun events. The signing secret is returned once.

  • update_webhook

    Change a webhook endpoint URL, events, or status (ACTIVE or DISABLED).

  • rotate_webhook_secret

    Generate a new signing secret for a webhook endpoint. The new secret is returned once.

  • test_webhook

    Send a webhook.test event to confirm reachability and signature verification.

  • resend_webhook

    Re-queue a past webhook delivery (reuses the original event ID).

  • delete_webhook

    Delete a webhook endpoint.

MCP endpoint: https://stackgate.ai/mcp/porkbun (HTTP) or via the private gateway.