Skip to content
looot docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

List outreach lead

Run job:outreach.lead.list through the looot API: 1 provider, from $0 per call. Inputs, prices, output shape and code for curl, JavaScript and Python.

List outreach lead.

Job id outreach.lead.list, in Connected apps (Email outreach). As of 2026-10-01, 1 provider serve it through 1 tool. Run job:outreach.lead.list and looot picks one of them; with fallback on, a miss moves on to the next. See Jobs.

Inputs

This job has one tool, so it takes that tool’s fields. Any key you send passes through unchanged.

Name Type Required Description
campaign string no Campaign ID to filter leads. Example: “01a0abd0-8b15-7c60-831e-17bdca89a00f”
contacts array no Array of emails the leads needs to have
distinct_contacts boolean no Whether to return distinct contacts. Example: true
enrichment_status number no Enrichment status to filter leads. Example: 1
esg_code string no ESG code to filter leads. Example: “1”
excluded_ids array no Array of lead IDs to exclude
filter string no Filter criteria for leads. For custom lead labels, use the interest_status field. Example: “FILTER_VAL_CONTACTED”
ids array no Array of lead IDs to include
in_campaign boolean no Whether the lead is in a campaign. Example: true
in_list boolean no Whether the lead is in a list. Example: true
is_website_visitor boolean no Whether the lead is a website visitor. Example: true
limit integer no The number of items to return. Example: 10
list_id string no List ID to filter leads.
organization_user_ids array no Array of organization user IDs to filter leads
queries array no
search string no Search term matched against the lead’s email and profile fields (first and last name, company, job title, and similar). Matches whole words, and the beginning of a field’s value, “smith” finds “John Smith”, “mith” does not. Provide campaign or list_id to also match inside values. Newly created or updated leads can take a few seconds to become searchable. Example: “John Doe”
smart_view_id string no Smart view ID to filter leads.
starting_after string no Forward pagination cursor. When distinct_contacts is false, provide the id value from the last lead of the previous page; when true, provide the lead’s email. Example: “01a0abd0-9ab5-7c0d-b00a-f00a1adddcc4”

Providers and prices

Provider Tool Price
Instantly instantly-api-leads-list $0 per call

A call that fails at the provider costs $0. See What’s free.

Output

The run’s result holds the provider’s answer. Signed in, looot inspect instantly-api-leads-list 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":"job:outreach.lead.list","input":{"limit":10,"filter":"FILTER_VAL_CONTACTED","search":"John Doe","in_list":true,"list_id":"<list_id>","campaign":"01a0abd0-8b15-7c60-831e-17bdca89a00f","esg_code":"1","in_campaign":true,"smart_view_id":"<smart_view_id>","starting_after":"01a0abd0-9ab5-7c0d-b00a-f00a1adddcc4","distinct_contacts":true,"enrichment_status":1,"is_website_visitor":true},"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: "job:outreach.lead.list",
    input: {
      limit: 10,
      filter: "FILTER_VAL_CONTACTED",
      search: "John Doe",
      in_list: true,
      list_id: "<list_id>",
      campaign: "01a0abd0-8b15-7c60-831e-17bdca89a00f",
      esg_code: "1",
      in_campaign: true,
      smart_view_id: "<smart_view_id>",
      starting_after: "01a0abd0-9ab5-7c0d-b00a-f00a1adddcc4",
      distinct_contacts: true,
      enrichment_status: 1,
      is_website_visitor: true,
    },
    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": "job:outreach.lead.list",
        "input": {
            "limit": 10,
            "filter": "FILTER_VAL_CONTACTED",
            "search": "John Doe",
            "in_list": True,
            "list_id": "<list_id>",
            "campaign": "01a0abd0-8b15-7c60-831e-17bdca89a00f",
            "esg_code": "1",
            "in_campaign": True,
            "smart_view_id": "<smart_view_id>",
            "starting_after": "01a0abd0-9ab5-7c0d-b00a-f00a1adddcc4",
            "distinct_contacts": True,
            "enrichment_status": 1,
            "is_website_visitor": True,
        },
        "wait": 30,
    },
    timeout=90,
)
run = response.json()
print(run["status"], run.get("result"))

To pin one provider, send its tool id as endpointId instead of job:outreach.lead.list.

Was this page helpful?