Reference

API Reference

Complete REST API specification for public, authentication, user, and admin endpoints.

API Reference

Complete documentation of all HTTP REST API routes supported by GO Shortener.


Public Endpoints

Shorten URL

POST /api/links/shorten

Create a new shortened link. Available to anonymous visitors and authenticated users.

  • Request Body:
    {
      "url": "https://example.com/long-page-url",
      "expiration_days": 7,
      "turnstile_token": "optional_token_string"
    }
    
  • Response 201 Created:
    {
      "short_code": "K8xP2q",
      "short_url": "https://go.arcn.online/K8xP2q",
      "destination_url": "https://example.com/long-page-url",
      "expires_at": "2026-09-10T14:30:00Z",
      "created_at": "2026-09-03T14:30:00Z"
    }
    

Redirect to Destination

GET /{code}

Resolves short code and redirects visitor:

  • 302 Found: Redirects to destination_url via Location header.
  • 410 Gone: Displayed if link has expired.
  • 403 Forbidden: Displayed if link has been disabled by moderation.
  • 404 Not Found: Short code does not exist.

GET /api/links/{code}/info

Fetches public information for a shortened link.


Submit Abuse Report

POST /api/reports

Flags a malicious link for administrator review.

  • Request Body:
    {
      "short_code": "K8xP2q",
      "reason": "phishing",
      "details": "Suspicious login prompt detected.",
      "turnstile_token": "optional_token"
    }
    
  • Response 201 Created: {"status": "report_submitted"}

Health Check

GET /api/health

Returns application readiness:

  • Response 200 OK: {"status": "ok"}

Authentication Endpoints

MethodEndpointDescription
POST/api/auth/registerRegister new user account with email and password
POST/api/auth/loginAuthenticate with email/password; issues go_session cookie
POST/api/auth/googleAuthenticate with Firebase Google ID token
POST/api/auth/logoutRevokes and clears the go_session cookie
GET/api/auth/meFetches current user profile and role
GET/api/auth/firebase-configPublic client configuration for Firebase Web App

User Endpoints (Authenticated)

MethodEndpointDescription
GET/api/user/dashboardReturns summary statistics, quota usage, and recent links
GET/api/user/linksReturns paginated list of links created by the user
GET/api/user/links/{code}/analyticsReturns detailed aggregated click telemetry
POST/api/user/links/{code}/renewRenews an expired link preserving short code
POST/api/user/links/{code}/request-permanentSubmits a permanent link auto-renew request
DELETE/api/user/links/{code}Soft-deletes a user-owned link

Admin Endpoints (RBAC Protected)

System & Users

MethodEndpointMin RoleDescription
GET/api/admin/overviewModeratorSystem telemetry counters
GET/api/admin/usersModeratorSearchable user listing
POST/api/admin/users/{id}/timeoutModeratorApplies timed suspension (30s to 7d)
POST/api/admin/users/{id}/banModeratorIssues permanent ban with optional link deactivation
POST/api/admin/users/{id}/unbanModeratorRestores banned or suspended account
POST/api/admin/users/{id}/roleSuper AdminUpdates user role (super_admin, moderator, user)
MethodEndpointMin RoleDescription
GET/api/admin/linksModeratorSearch and inspect all system links
POST/api/admin/links/{code}/disableModeratorDisables abusive link (returns 403 to visitors)
POST/api/admin/links/{code}/enableModeratorRe-enables a disabled link
DELETE/api/admin/links/{code}ModeratorPermanently deletes link and analytics
GET/api/admin/reportsModeratorLists pending abuse reports
POST/api/admin/reports/{id}/resolveModeratorResolves or dismisses an abuse report
GET/api/admin/permanent-requestsModeratorLists pending permanent link requests
POST/api/admin/permanent-requests/{id}/resolveModeratorApproves or rejects permanent status
GET/api/admin/login-recordsSuper AdminInspects security audit records
Copyright © 2026