AI Ark / Export people matching filters, with emails
AI Ark tool ai-ark-people-export on looot: input fields, $0.0108 per result, output shape, and code to run it with curl, JavaScript or Python.
Search and email finding in a single asynchronous call: exports up to 10,000 people matching the same account and contact filters as the People Search API, with real-time verified emails included. The recommended endpoint for bulk outbound list building. Credit Usage: 0.5 credits per exported person (charged for everyone, whether or not an email is found) + 0.5 credits per found valid email. Example: 1,000 people with 700 emails found = 1,000 × 0.5 + 700 × 0.5 = 850 credits. You only pay the email portion for emails verified in real time by BounceBan. Note: this differs from Find Emails by Track ID, which charges only for found emails. Email Verification: All emails (SMTP & CATCH_ALL) returned by the API are verified in real time by BounceBan, safe to send, no re-verification needed. Limit: size maximum is 10000. Exceeding this limit returns 400 Bad Request - pagination limit exceeded. Results are processed asynchronously; provide a webhook URL to receive a POST when the export completes, or poll Export People Statistics. Auto-refund window: A submission that is charged but never delivered is auto-refunded after up to 10 hours. Rate limits (per token): If a token already has 500 requests in flight, a further submit is rejected with 400 too many pending requests, drain below the cap (or wait for completions), then retry. 10 jobs are processed at once. Limits are independent per service and per token. The response returns a trackId and st
- Tool id:
ai-ark-people-export - Provider: AI Ark
- Job: Export people (
people.export) - Price: $0.0108 per result. A call that fails at the provider costs $0.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
account |
object | no | |
contact |
object | no | |
lists |
object | no | Reference up to <strong>10 lists per request</strong> (each list holds up to <strong>10,000 items</strong>) to <strong>exclude</strong> the matching people from your results. |
page |
integer | yes | Required on People Search and Company Search (default 0). Zero-based page number. Use with size to paginate. The full result set is capped at 10,000 records per search, see the Lists pagination pattern above to go deeper. Example: 0 |
size |
integer | yes | Total number of people to export, 1 to 10,000. Each exported person is charged. Example: 25 |
webhook |
string | yes | HTTPS URL notified when the job completes (retried up to 3×). You can re-send later via the <code>notify</code> endpoint. |
Output
The run’s result holds the provider’s answer. Signed in, looot inspect ai-ark-people-export prints its fields.
Run it
Every call needs your API token in LOOOT_TOKEN; Sign in shows how to get one. Each run also needs a new idempotency key, so a retry never pays twice. With wait: 30 the answer comes back inline when the run ends within 30 seconds. Otherwise you get the running run back: poll GET /v1/runs/<runId>.
Example input with placeholder values:
curl -X POST "https://api.looot.ai/v1/runs" \
-H "Authorization: Bearer $LOOOT_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"endpointId":"ai-ark-people-export","input":{"page":0,"size":25,"webhook":"https://example.com/webhook","lists":{"people_id":{"exclude":["294ce93e-8881-414c-8951-e91b5df7f560"]}}},"wait":30}'const response = await fetch("https://api.looot.ai/v1/runs", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LOOOT_TOKEN}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
endpointId: "ai-ark-people-export",
input: {
page: 0,
size: 25,
webhook: "https://example.com/webhook",
lists: {
people_id: {
exclude: ["294ce93e-8881-414c-8951-e91b5df7f560"],
},
},
},
wait: 30,
}),
});
const run = await response.json();
console.log(run.status, run.result);import os
import uuid
import requests
response = requests.post(
"https://api.looot.ai/v1/runs",
headers={
"Authorization": f"Bearer {os.environ['LOOOT_TOKEN']}",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"endpointId": "ai-ark-people-export",
"input": {
"page": 0,
"size": 25,
"webhook": "https://example.com/webhook",
"lists": {
"people_id": {
"exclude": ["294ce93e-8881-414c-8951-e91b5df7f560"],
},
},
},
"wait": 30,
},
timeout=90,
)
run = response.json()
print(run["status"], run.get("result"))To let looot pick among every provider of this job instead, send job:people.export as endpointId; see the job page.