agiledevelopment/url-shortener

A robust PHP SDK for shortening URLs via the 00x.dk API

Installs: 75

Dependents: 1

Suggesters: 0

Security: 0

pkg:composer/agiledevelopment/url-shortener

v1.0.3 2025-11-02 13:33 UTC

This package is not auto-updated.

Last update: 2026-01-25 14:50:08 UTC


README

A lightweight and robust PHP SDK for shortening URLs using the
00x.dk API.

๐Ÿš€ Features

  • โœ… PHP 7.4+ compatible
  • โœ… PSR-4 autoloading
  • โœ… Input validation and robust error handling
  • โœ… Automatic retry logic on temporary API errors
  • โœ… Easy integration via Composer
  • โœ… Extensible for future endpoints (analytics, deletion, etc.)

๐Ÿ“ฆ Installation

If you're using this SDK in a private project, add the Bitbucket repository to your composer.json file:

{
  "repositories": [
    {
      "type": "vcs",
      "url": "git@bitbucket.org:csriraj/url-shortener-sdk.git"
    }
  ],
  "require": {
    "agiledevelopment/url-shortener": "^1.0"
  }
}

Then run the following command:

composer install

๐Ÿงช Usage Example

use AgileDevelopment\Shortener;

try {
    // Basic usage
    $result = Shortener::create('your_api_token', 'https://www.example.com');

    // Optional: specify a custom API base URL or origin domain
    // $result = Shortener::create(
    //     'your_api_token',
    //     'https://www.example.com',
    //     'https://staging.00x.dk/api/v1',
    //     'https://yourdomain.com'
    // );

    echo "Shortened URL: " . $result['shortened_url'];
} catch (Exception $e) {
    echo "Error: " . $e->getMessage();
}

โš™๏ธ Method Reference

Shortener::create(string $token, string $url, ?string $baseUrl = null, ?string $origin = null): array

ParameterTypeRequiredDescription
$tokenstringโœ… YesYour Bearer token from 00x.dk.
$urlstringโœ… YesThe original URL you want to shorten.
$baseUrl?stringโŒ NoOptional custom API base URL. Defaults to https://00x.dk/api/v1.
$origin?stringโŒ NoOptional origin domain used for the Origin and Referer headers.

Returns:

[
  'shortened_url' => 'https://00x.dk/abcd1234'
]

Throws:

  • InvalidArgumentException if the input is invalid
  • RuntimeException if the API request fails after retries

๐Ÿ” API Requirements

Endpoint:

POST https://00x.dk/api/v1/urls

Headers:

Authorization: Bearer <your_token>
Content-Type: application/json
Accept: application/json

Body:

{
  "url": "https://bitbucket.org/csriraj/url-shortener-sdk"
}

Successful Response:

{
  "shortened_url": "https://00x.dk/00xdk",
  "original_url": "https://bitbucket.org/csriraj/url-shortener-sdk",
  "code": "00xdk",
  "message": "URL shortened successfully!"
}

๐Ÿ“ License

This project is licensed under the MIT License.

Made with โค๏ธ by **Agile Development**