Search by

sharpapi / laravel-content-detect-urls

dawid-makowski

AI URL Detection for Laravel powered by SharpAPI.com

Package info

github.com/sharpapi/laravel-content-detect-urls

pkg:composer/sharpapi/laravel-content-detect-urls

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.0 2026-09-24 15:17 UTC

This package is auto-updated.

Last update: 2026-09-24 15:21:09 UTC


README

Latest Version on Packagist Total Downloads

This package provides a Laravel integration for the SharpAPI URL Detection service. It allows you to automatically detect and extract URLs from text content, which is perfect for content moderation, data extraction, and link validation.

Installation

You can install the package via composer:

composer require sharpapi/laravel-content-detect-urls

Configuration

Publish the config file with:

php artisan vendor:publish --tag="sharpapi-content-detect-urls"

This is the contents of the published config file:

return [
    'api_key' => env('SHARP_API_KEY'),
    'base_url' => env('SHARP_API_BASE_URL', 'https://sharpapi.com/api/v1'),
    'api_job_status_polling_wait' => env('SHARP_API_JOB_STATUS_POLLING_WAIT', 180),
    'api_job_status_polling_interval' => env('SHARP_API_JOB_STATUS_POLLING_INTERVAL', 10),
    'api_job_status_use_polling_interval' => env('SHARP_API_JOB_STATUS_USE_POLLING_INTERVAL', false),
];

Make sure to set your SharpAPI key in your .env file:

SHARP_API_KEY=your-api-key

Usage

use SharpAPI\ContentDetectUrls\ContentDetectUrlsService;

$service = new ContentDetectUrlsService();

// Detect URLs in text
$detectedUrls = $service->detectUrls(
    'Check out these websites: example.com, https://github.com, and www.laravel.com/docs'
);

// detectUrls() returns a status URL; fetchResults() polls until the job is done
$job = $service->fetchResults($detectedUrls);
$urls = json_decode($job->getResultJson(), true); // list of ['url' => ..., 'protocol' => ...]

Parameters

  • text (string): The text content to analyze for URLs

Response Format

The response is a JSON string containing an array of detected URLs with their protocols:

[
  {
    "url": "http://example.com",
    "protocol": "http"
  },
  {
    "url": "https://github.com",
    "protocol": "https"
  },
  {
    "url": "http://www.laravel.com/docs",
    "protocol": "http"
  }
]

Features

  • Automatically detects URLs in text content
  • Works with various URL formats (with or without protocol, with or without www)
  • Identifies the protocol for each URL
  • Handles URLs with different TLDs (.com, .org, .io, etc.)
  • Useful for content moderation, data extraction, and link validation

AI agents (Laravel Boost)

This package ships a Laravel Boost skill, sharpapi-content-detect-urls. It teaches AI coding agents the async submit-then-fetchResults() flow, the queued-job recipe, the result shape and the testing approach. Boost 2 or newer is required. In your app:

composer require laravel/boost --dev
php artisan boost:install          # first time
php artisan boost:update --discover # already using Boost

Select sharpapi/laravel-content-detect-urls when Boost lists the packages it found. The skill loads on demand; no always-on guideline is added.

Credits

License

The MIT License (MIT). Please see License File for more information.