Access verified tattoo artists, shops, and tattoo posts from the InkFreakz platform. Add real tattoo data to your website, app, or directory in minutes.
The InkFreakz Public API provides read-only access to verified tattoo artists, shops, and tattoo posts. All data is sourced directly from the InkFreakz platform and only includes verified accounts.
All authenticated endpoints require an API key passed in the X-InkFreakz-Key request header. You can also pass it as a query parameter ?api_key=your_key for testing.
GET /api/v1/artists HTTP/1.1
Host: inkfreakz.com
X-InkFreakz-Key: ifz_your_api_key_here
Accept: application/json
| Tier | Requests/Day | Price |
|---|---|---|
| Free | 1,000 | Free forever |
| Partner | 10,000 | Contact us |
| Premium | Unlimited | Contact us |
Rate limit headers are included in every response:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1745625600
When exceeded, the API returns HTTP 429 with a JSON error body.
| Code | Meaning |
|---|---|
| 401 | Missing or invalid API key |
| 404 | Resource not found (e.g., artist username doesn't exist) |
| 422 | Validation error (e.g., missing required field) |
| 429 | Rate limit exceeded |
| 500 | Server error — contact support@inkfreakz.com |
https://inkfreakz.com/api/v1/stats
Platform statistics — no auth required
Returns live platform statistics. No API key required — useful for embedding stats widgets.
{
"success": true,
"data": {
"verified_artists": 28,
"verified_shops": 3,
"total_tattoos": 361,
"total_styles": 131,
"platform": "InkFreakz",
"platform_url": "https://inkfreakz.com"
}
}
/artists
List verified artists
Returns a paginated list of verified tattoo artists. Supports filtering by style, location, and name search.
| Parameter | Type | Description |
|---|---|---|
q optional | string | Search by name or username |
style optional | string | Filter by tattoo style (e.g., "realism") |
location optional | string | Filter by city or state |
page optional | integer | Page number (default: 1) |
per_page optional | integer | Results per page (default: 20, max: 100) |
{
"success": true,
"meta": { "total": 28, "page": 1, "per_page": 20, "pages": 2 },
"data": [
{
"id": 248,
"username": "inkmaster_jay",
"display_name": "Jay Torres",
"type": "artist",
"verified": true,
"bio": "Specializing in realism and portrait work...",
"location": "Austin, TX",
"primary_style": "Realism",
"specialties": ["Portrait", "Blackwork"],
"years_experience": 8,
"hourly_rate": 150,
"rating": 4.9,
"profile_picture": "https://inkfreakz.com/uploads/profiles/...",
"profile_url": "https://inkfreakz.com/artist/inkmaster_jay",
"social": { "instagram": "https://instagram.com/inkmaster_jay" },
"verified_at": "2026-01-15T10:30:00Z"
}
]
}
/artists/{username}
Single artist with portfolio
Returns a single verified artist's full profile including their 12 most recent portfolio tattoos.
| Parameter | Type | Description |
|---|---|---|
username required | string | The artist's InkFreakz username |
Response includes all fields from the list endpoint, plus a portfolio array of up to 12 tattoo objects.
/shops
List verified shops
Returns a paginated list of verified tattoo shops.
| Parameter | Type | Description |
|---|---|---|
q optional | string | Search by shop name or username |
location optional | string | Filter by city or state |
page optional | integer | Page number |
per_page optional | integer | Results per page (max: 100) |
/shops/{username}
Single shop with affiliated artists
Returns a single verified shop's profile including affiliated verified artists.
Response includes all shop fields plus an artists array of affiliated verified artists.
/tattoos
Browse tattoo posts
Returns public tattoo posts from verified artists. Supports filtering and sorting.
| Parameter | Type | Description |
|---|---|---|
style optional | string | Filter by tattoo style |
artist optional | string | Filter by artist username |
color_type optional | string | color or black_grey |
featured optional | boolean | Only return featured tattoos |
sort optional | string | recent (default), popular, trending, views |
page optional | integer | Page number |
per_page optional | integer | Results per page (max: 100) |
/search
Unified search across all types
Search across artists, shops, and tattoos simultaneously. Returns up to 10 results per type.
| Parameter | Type | Description |
|---|---|---|
q required | string | Search query (min 2 characters) |
type optional | string | all (default), artists, shops, tattoos |
/styles
All tattoo styles — no auth required
Returns all 131 active tattoo styles. Useful for building filter UIs. Requires API key.
{
"success": true,
"data": [
{ "id": 1, "name": "American Traditional", "category": "General" },
{ "id": 2, "name": "Blackwork", "category": "General" },
...
]
}
// Fetch verified artists using the InkFreakz API
const API_KEY = 'ifz_your_api_key_here';
const BASE_URL = 'https://inkfreakz.com/api/v1';
async function getArtists(style = null, location = null) {
const params = new URLSearchParams({ per_page: 20 });
if (style) params.set('style', style);
if (location) params.set('location', location);
const response = await fetch(`${BASE_URL}/artists?${params}`, {
headers: {
'X-InkFreakz-Key': API_KEY,
'Accept': 'application/json'
}
});
const data = await response.json();
return data.data; // Array of artist objects
}
// Search for realism artists in Austin
const artists = await getArtists('realism', 'Austin');
artists.forEach(artist => {
console.log(`${artist.display_name} — ${artist.profile_url}`);
});
<?php
// Fetch verified artists using the InkFreakz API
$apiKey = 'ifz_your_api_key_here';
$baseUrl = 'https://inkfreakz.com/api/v1';
function getArtists($apiKey, $baseUrl, $style = null, $location = null) {
$params = ['per_page' => 20];
if ($style) $params['style'] = $style;
if ($location) $params['location'] = $location;
$url = $baseUrl . '/artists?' . http_build_query($params);
$context = stream_context_create([
'http' => [
'header' => "X-InkFreakz-Key: $apiKey\r\nAccept: application/json\r\n"
]
]);
$response = file_get_contents($url, false, $context);
$data = json_decode($response, true);
return $data['data'];
}
$artists = getArtists($apiKey, $baseUrl, 'realism', 'Austin');
foreach ($artists as $artist) {
echo $artist['display_name'] . ' — ' . $artist['profile_url'] . PHP_EOL;
}
# Fetch verified artists using the InkFreakz API
import requests
API_KEY = 'ifz_your_api_key_here'
BASE_URL = 'https://inkfreakz.com/api/v1'
def get_artists(style=None, location=None, per_page=20):
params = {'per_page': per_page}
if style:
params['style'] = style
if location:
params['location'] = location
response = requests.get(
f'{BASE_URL}/artists',
params=params,
headers={
'X-InkFreakz-Key': API_KEY,
'Accept': 'application/json'
}
)
response.raise_for_status()
return response.json()['data']
# Search for realism artists in Austin
artists = get_artists(style='realism', location='Austin')
for artist in artists:
print(f"{artist['display_name']} — {artist['profile_url']}")
# Get verified artists
curl -X GET "https://inkfreakz.com/api/v1/artists?per_page=5" \
-H "X-InkFreakz-Key: ifz_your_api_key_here" \
-H "Accept: application/json"
# Search for realism artists
curl -X GET "https://inkfreakz.com/api/v1/artists?style=realism&location=Austin" \
-H "X-InkFreakz-Key: ifz_your_api_key_here" \
-H "Accept: application/json"
# Unified search
curl -X GET "https://inkfreakz.com/api/v1/search?q=realism&type=artists" \
-H "X-InkFreakz-Key: ifz_your_api_key_here" \
-H "Accept: application/json"
# Get platform stats (no auth required)
curl -X GET "https://inkfreakz.com/api/v1/stats" \
-H "Accept: application/json"
Choose your preferred integration method and paste the code into your site.
The drop-in JavaScript widget renders a fully functional artist search inside any <div> on your page. Works on WordPress, custom sites, and any HTML page.
<!-- TattooFindr Widget -->
<div data-tattoofindr-widget
data-api-key="YOUR_API_KEY"
data-location="Miami"
data-style="Realism"
data-limit="6"
data-theme="dark">
</div>
<script src="http://tattoofindr.io/widget.js"></script>
| Attribute | Example | Description |
|---|---|---|
data-api-key | required | Your InkFreakz API key |
data-location | "Miami" | Pre-filter by city, state, or country |
data-style | "Realism" | Pre-filter by tattoo style |
data-limit | "6" | Number of results to show (default: 9) |
data-theme | "dark" | "dark" or "light" theme |
data-search | "true" | Show search bar (default: true) |