sharpapi / laravel-content-detect-urls
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
Requires
- php: ^8.1
- ext-json: *
- laravel/framework: ^10.48.29|^11.0|^12.0|^13.0
- sharpapi/php-core: ^1.4.1
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^8.0|^9.0|^10.0|^11.0
- pestphp/pest: ^2.0|^3.0|^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
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.