Integrate Icons & Graphics Into Your Applications
Access thousands of professionally designed icons, SVG vectors, and animated GIFs through our simple RESTful API.
Authentication
All requests to the IcoSix API require an API key. To obtain your API key, fill out the form below or contact our support team.
Your API Key
Important
Keep your API key secure and do not share it publicly. Each API key is tied to a specific account and rate limits.
Authentication Example
curl -X GET \
"https://api.icosix.com/v1/graphics.php" \
-H "X-API-Key: YOUR_API_KEY"
API Endpoints
The IcoSix API provides several endpoints to access icons, SVG vectors, and animated GIFs. All endpoints are accessible via HTTPS and return data in JSON format.
Get All Graphics
GET https://api.icosix.com/v1/graphics.phpRetrieve a paginated list of all available graphics. Results can be filtered by type, category, and other parameters.
Parameters
Name | Type | Required | Description |
---|---|---|---|
page | Integer | No | Page number for pagination (default: 1) |
per_page | Integer | No | Number of items per page (default: 10, max: 100) |
type | String | No | Filter by type (e.g., "svg", "icon", "gif") |
sort | String | No | Sort order (options: "newest", "oldest", "popular") |
Search Graphics
GET https://api.icosix.com/v1/graphics.php?searchSearch for graphics using keywords, tags, or specific criteria.
Parameters
Name | Type | Required | Description |
---|---|---|---|
query | String | Yes | Search term (e.g., "file icon") |
page | Integer | No | Page number for pagination (default: 1) |
per_page | Integer | No | Number of items per page (default: 10, max: 100) |
filter | String | No | Filter criteria (e.g., "latest", "trending", "featured") |
Get Collections
GET https://api.icosix.com/v1/collections.phpRetrieve available graphic collections. Collections are curated sets of graphics organized by theme or topic.
Parameters
Name | Type | Required | Description |
---|---|---|---|
page | Integer | No | Page number for pagination (default: 1) |
per_page | Integer | No | Number of items per page (default: 10, max: 50) |
Get Graphic
GET https://api.icosix.com/v1/graphics.php?{id}Retrieve detailed information about a specific graphic by its ID.
Parameters
Name | Type | Required | Description |
---|---|---|---|
id | String | Yes | Unique identifier of the graphic |
Response Format
All API responses are returned in JSON format. Each response includes a status field and a data field containing the requested information.
Example Response
{
"status": "success",
"data": {
"graphic": {
"id": "g1",
"title": "File SVG Vector",
"description": "A detailed file icon in SVG format",
"category": "File Graphics",
"type": "svg",
"url": "https://api.icosix.com/v1/graphics.php?g1.svg",
"thumbnail_url": "https://api.icosix.com/v1/graphics.php?g1.png",
"created_at": "2025-03-12T10:30:00Z"
}
}
}
Error Responses
When an error occurs, the API returns a JSON response with a status field set to "error" and an error message explaining what went wrong.
Error Response Example
{
"status": "error",
"message": "Invalid API key",
"code": 401
}
Rate Limiting
To ensure the stability and availability of the API, we enforce rate limits on the number of requests that can be made. Rate limits vary based on your subscription plan.
Plan | Rate Limit | Daily Quota |
---|---|---|
Free | 60 requests/hour | 500 requests/day |
Basic | 300 requests/hour | 5,000 requests/day |
Premium | 1,000 requests/hour | 25,000 requests/day |
Enterprise | Custom | Custom |
When you exceed your rate limit, the API will return a 429 Too Many Requests response with information about when you can resume making requests.
Rate Limit Headers
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1714521600
Pricing
Choose the plan that best fits your needs. All plans include access to our core API features with varying rate limits and additional features.
Free
forever
- 500 requests per day
- Access to public graphics
- Standard resolution
- PNG format only
- No commercial use
Basic
per month
- 5,000 requests per day
- Access to all graphics
- High resolution
- PNG, SVG, ICO formats
- Commercial use
- Email support
Premium
per month
- 25,000 requests per day
- Access to all graphics
- 4K resolution
- All formats (PNG, SVG, ICO, GIF)
- Commercial use
- Priority support
- Custom webhooks
Enterprise
Need a custom solution? Contact us for a tailored plan that meets your specific requirements.
Contact SalesCode Examples
Use our code examples to quickly integrate the IcoSix API into your application.
// Using fetch API
const apiKey = 'YOUR_API_KEY';
const apiUrl = 'https://api.icosix.com/v1/graphics.php';
fetch(apiUrl, {
method: 'GET',
headers: {
'X-API-Key': apiKey,
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => {
console.log('Success:', data);
// Process your data here
})
.catch(error => {
console.error('Error:', error);
});
import requests
api_key = 'YOUR_API_KEY'
api_url = 'https://api.icosix.com/v1/graphics.php'
headers = {
'X-API-Key': api_key,
'Content-Type': 'application/json'
}
response = requests.get(api_url, headers=headers)
if response.status_code == 200:
data = response.json()
print('Success:', data)
# Process your data here
else:
print('Error:', response.status_code, response.text)
$api_key = 'YOUR_API_KEY';
$api_url = 'https://api.icosix.com/v1/graphics.php';
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $api_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-API-Key: ' . $api_key,
'Content-Type: application/json'
]
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo 'Error: ' . $err;
} else {
$data = json_decode($response, true);
echo 'Success: ';
print_r($data);
// Process your data here
}
require 'net/http'
require 'uri'
require 'json'
api_key = 'YOUR_API_KEY'
api_url = 'https://api.icosix.com/v1/graphics.php'
uri = URI(api_url)
request = Net::HTTP::Get.new(uri)
request['X-API-Key'] = api_key
request['Content-Type'] = 'application/json'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
http.request(request)
end
if response.code == '200'
data = JSON.parse(response.body)
puts 'Success: ' + data.to_s
# Process your data here
else
puts 'Error: ' + response.code + ' ' + response.body
end