Short.io API Guide (go.solanasis.com)

Purpose: Operational guide for managing short URLs on go.solanasis.com via the short.io API.

Audience: Dmitri, Claude Code, future contractors.


Quick Reference

Credential Location

TierLocation
Local (solanasis-docs)solanasis-docs/.envSHORT_IO_API_KEY
Local (solanasis-scripts)solanasis-scripts/.envSHORT_IO_API_KEY
CI/CD BackupGitHub Secrets → dzinreach/solanasis-docs, dzinreach/solanasis-scripts

See solanasis-credentials-security-playbook.md for the full three-tier model.


Safety Rules (Non-Negotiable)

For Claude Code / Automated Tools

  1. NEVER delete any link you did not create via API. All links created by Dmitri through the short.io web UI (source: “website”) are off-limits for modification or deletion.
  2. NEVER delete or modify Cal.com booking links (/intro, /meet, /discovery, or any future path pointing to cal.com/*). These are business-critical meeting links.
  3. Before creating a link, always list existing links first to avoid path collisions.
  4. Tag all API-created links with "claude-managed" so they can be identified and audited.
  5. Log every create/update/delete operation in the tracking file: solanasis-docs/operations/short-url-tracking-log.md
  6. Only delete links tagged claude-managed that you previously created, and only when explicitly asked by the user.

For Humans

  • The API key has full read/write/delete access to all links on go.solanasis.com. Treat it as HIGH sensitivity.
  • If the key is compromised, rotate it immediately at short.io → Settings → Integrations & API, then update all three tiers (local .env, GitHub Secrets).
  • Rotation cadence: annually, or immediately on suspected compromise.

Common API Operations

curl -s -H "Authorization: $SHORT_IO_API_KEY" \
  "https://api.short.io/api/links?domain_id=1662965&limit=150" | python -m json.tool
curl -s -X POST "https://api.short.io/links" \
  -H "Authorization: $SHORT_IO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "go.solanasis.com",
    "originalURL": "https://solanasis.com/your-target-page",
    "path": "your-slug",
    "tags": ["claude-managed"],
    "title": "Description of the link"
  }' | python -m json.tool
curl -s -X POST "https://api.short.io/links/<LINK_ID>" \
  -H "Authorization: $SHORT_IO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "originalURL": "https://solanasis.com/new-target"
  }' | python -m json.tool
curl -s -X DELETE "https://api.short.io/links/<LINK_ID>" \
  -H "Authorization: $SHORT_IO_API_KEY"

Pre-delete checklist:

  • Link is tagged claude-managed
  • Link was created by API (not by Dmitri in the web UI)
  • User explicitly requested deletion
  • Link is not a Cal.com booking link
curl -s -H "Authorization: $SHORT_IO_API_KEY" \
  "https://api.short.io/links/statistics/<LINK_ID>?period=total"

These links were created by Dmitri via the short.io web UI. Claude Code must NEVER modify or delete them.

PathLink IDDestinationStatus
/introlnk_6YC1_f3iEXWqmjANQfu8Syz2vNcal.com/mrsunshine/introOK
/meetlnk_6YC1_7LNTP0Ow9TC8f8G1JiHeqcal.com/mrsunshine/meetOK
/discoverylnk_6YC1_NgWuaVMi9qw9iCYYKcQhycal.com/mrsunshine/discoveryOK
/overviewlnk_6YC1_QQcPDnDfjo8liL0DIHX6esolanasis.com/downloads/solanasis-assessment-overview.pdfOK
/rialnk_6YC1_C1rmI9zq1nlAwShhs37rKsolanasis.com/downloads/solanasis-ria-assessment.pdfOK
/estatelnk_6YC1_THvB16u6dzOH4a19gLB31solanasis.com/downloads/solanasis-estate-assessment.pdfOK
/foundationslnk_6YC1_cZffZ5qnLg41kzwqGpliUsolanasis.com/downloads/solanasis-foundation-assessment.pdfOK
/capabilitieslnk_6YC1_aRZ7h20ByW16F6tlJ65OWsolanasis.com/downloads/solanasis-capabilities-brief.pdfOK
/faqlnk_6YC1_sHl4S0C3JDElRfwb8QNDXsolanasis.com/resources/faqOK
/reg-splnk_6YC1_9AM1nAGAxSs7EnBcjb4c7solanasis.com/downloads/solanasis-reg-sp-guide.pdfOK
/partnerlnk_6YC1_LWs4OyopLgdzLLRjixPTXsolanasis.com/partnersOK
/resourceslnk_6YC1_RgEKm63hhGUQi6n5sdomNsolanasis.com/resourcesOK
/referralslnk_6YC1_NcZLQg9ASEc1Amz2DEO7bsolanasis.com/partnersOK

Troubleshooting

  • 401 Unauthorized: API key is wrong or expired. Check .env value matches short.io dashboard.
  • 409 Conflict: The path slug already exists. List links first to check for collisions.
  • Rate limiting: Short.io free tier has generous limits; if you hit them, back off and retry.