Search accounts
curl --request POST \
--url https://api.tryklint.ai/v1/instagram/accounts/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tryklint.ai/v1/instagram/accounts/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tryklint.ai/v1/instagram/accounts/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tryklint.ai/v1/instagram/accounts/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tryklint.ai/v1/instagram/accounts/search"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.tryklint.ai/v1/instagram/accounts/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tryklint.ai/v1/instagram/accounts/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyAccounts
Search accounts
Find accounts by current observed identity with filters and a related-posts scope.
POST
/
v1
/
instagram
/
accounts
/
search
Search accounts
curl --request POST \
--url https://api.tryklint.ai/v1/instagram/accounts/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tryklint.ai/v1/instagram/accounts/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tryklint.ai/v1/instagram/accounts/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tryklint.ai/v1/instagram/accounts/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tryklint.ai/v1/instagram/accounts/search"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.tryklint.ai/v1/instagram/accounts/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tryklint.ai/v1/instagram/accounts/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodySearches what Klint tracks for accounts. Returns the same fixed account representation as Get account. There is no reduced search card.
Filters-only:
Request body
| Field | Type | Notes |
|---|---|---|
account | object, required | The account scope |
account.query | string | Identity intent, ≤ 2,000 chars. Qualification rules |
account.filters | object | Account filter fields |
account.posts | object | Publishing scope: minimum_matching_posts + filters |
account.posts.minimum_matching_posts | integer | 1–3 (provisional max); distinct posts each satisfying the complete account.posts.filters predicate |
account.posts.filters | object | Post filter fields |
sort | object | Filters-only requests only |
limit | integer | 1–100, default 20 |
cursor | string | Continuation: cursor only + optional same-or-lower limit |
Open contract items: whether
account.posts also counts accepted-coauthor posts, and the minimum_matching_posts maximum (a 5-post benchmark is pending).Examples
Identity query with a posts scope:{
"account": {
"query": "sporty stay-at-home moms",
"filters": {
"followers_count": {
"gte": 5000,
"lte": 50000
}
},
"posts": {
"minimum_matching_posts": 3,
"filters": {
"posted_at": {
"gte": "2026-04-01T00:00:00Z",
"lt": "2026-07-01T00:00:00Z"
}
}
}
},
"limit": 10
}
200 response
200 response
{
"request_id": "req_example_03",
"data": [
{
"id": "ig_account_01j2k9m4q7",
"handle": "mayamoveswell",
"display_name": "Maya | Family Wellness",
"web_url": "https://www.instagram.com/mayamoveswell/",
"avatar_url": "https://media.tryklint.ai/accounts/ig_account_01j2k9m4q7/avatar",
"biography": "Sporty stay-at-home mom sharing practical kids gut-health and family-wellness tips. Spokane, WA.",
"bio_links": [
{
"url": "https://mayamoveswell.example/resources",
"title": "Free family wellness guides"
}
],
"account_type": "creator",
"category_label": "Health/beauty",
"declared_locations": [
{
"country_code": "US",
"region_code": "US-WA",
"locality": "Spokane"
}
],
"is_verified": false,
"is_private": false,
"followers_count": 24300,
"following_count": 684,
"posts_count": 418,
"publishing_summary": "Shares practical family-wellness education through at-home fitness routines, simple meal preparation, and recurring explanations of children's gut health.",
"publishing_languages": [
"en"
],
"niches": [
"family_wellness",
"gut_health",
"home_fitness"
],
"observed_at": "2026-07-15T15:40:00Z"
}
],
"has_more": false,
"next_cursor": null
}
{
"account": {
"filters": {
"followers_count": {
"gte": 5000,
"lte": 50000
},
"niches": {
"contains_any": ["pets"]
}
},
"posts": {
"minimum_matching_posts": 1,
"filters": {
"posted_at": {
"gte": "2026-05-01T00:00:00Z",
"lt": "2026-07-01T00:00:00Z"
},
"views": {
"gte": 200000
}
}
}
},
"sort": {
"by": "followers_count",
"order": "desc"
},
"limit": 10
}
200 response
200 response
{
"request_id": "req_example_04",
"data": [
{
"id": "ig_account_2j1x",
"handle": "dogmomdaily",
"display_name": "Dog Mom Daily",
"web_url": "https://www.instagram.com/dogmomdaily/",
"avatar_url": "https://media.tryklint.ai/accounts/ig_account_2j1x/avatar",
"biography": "Golden retriever mom sharing real-life grooming and shedding hacks 🐾",
"bio_links": [
{
"url": "https://dogmomdaily.example/favorites",
"title": "Our favorite grooming tools"
}
],
"account_type": "creator",
"category_label": "Blogger",
"declared_locations": [],
"is_verified": false,
"is_private": false,
"followers_count": 21400,
"following_count": 512,
"posts_count": 267,
"publishing_summary": "Documents at-home dog care through grooming-product demonstrations, shedding-management routines, and day-in-the-life content with a golden retriever.",
"publishing_languages": [
"en"
],
"niches": [
"pets",
"dog_care"
],
"observed_at": "2026-07-15T09:20:00Z"
}
],
"has_more": false,
"next_cursor": null
}
Response
{ "request_id", "data": [Account], "has_more", "next_cursor" }. Klint never returns confirmed-private accounts. Field semantics: reading the results.
Errors
422 validation-failed (all cases) · 410 expired-cursor · 429 rate-limit-exceeded · full catalog.⌘I