logo-darkpipe0
Ex

AI list builder (Exa)

Builds a list of businesses or places from a prose brief with an Exa research agent; you define the columns in the prompt.

research:exa@1
Usage-based

ProviderBillingConnectionCost
Docs
ExExa
UsageManaged
Usage-based

Billed by usage: the Exa run's reported cost plus 30%, at most about 217 credits per run.

Every operation this search can bill while it runs. Model token rates are charged per 100-token block; the rest are charged per call. Hover a price for its unit.

ProviderBillingConnectionCost
Ex
Exa
research-exa-v1-exa
Always
Managed, User
0.43credits

You define the output fields

This search's columns come from its own config, not from the catalog: every {% output name, type: "string" %} tag you declare in the prompt becomes one column on every row returned. See the config reference below for the tag syntax.

const options = {
  method: 'POST',
  headers: {'content-type': 'application/json', authorization: 'Bearer <TOKEN>'},
  body: JSON.stringify({
    search: {
      search_id: 'research:exa@1',
      config: {
        prompt: {
          template: 'Find event venues in Chicago, Illinois that can host corporate events for 100 or more guests. Only include venues that are currently operating.\n\n{% output company_name, type: "string", description: "Venue name" %}\n{% output address_line_1, type: "string", format: "address_line_1", description: "Street address" %}\n{% output zip_code, type: "string", format: "zip_code", description: "ZIP code" %}\n{% output phone, type: "string", format: "phone", description: "Main phone number" %}\n{% output company_domain, type: "string", format: "domain", description: "Website domain, e.g. example.com; empty if none" %}\n{% output max_capacity, type: "number", format: "int", description: "Largest event capacity the venue states" %}'
        },
        limit: 250,
        unique_by: ['company_name', 'address_line_1'],
        unique_match: 'all'
      }
    }
  })
};

fetch('https://api.pipe0.com/v1/search/run', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
import requests

url = "https://api.pipe0.com/v1/search/run"

payload = { "search": {
        "search_id": "research:exa@1",
        "config": {
            "prompt": { "template": "Find event venues in Chicago, Illinois that can host corporate events for 100 or more guests. Only include venues that are currently operating.

{% output company_name, type: \"string\", description: \"Venue name\" %}
{% output address_line_1, type: \"string\", format: \"address_line_1\", description: \"Street address\" %}
{% output zip_code, type: \"string\", format: \"zip_code\", description: \"ZIP code\" %}
{% output phone, type: \"string\", format: \"phone\", description: \"Main phone number\" %}
{% output company_domain, type: \"string\", format: \"domain\", description: \"Website domain, e.g. example.com; empty if none\" %}
{% output max_capacity, type: \"number\", format: \"int\", description: \"Largest event capacity the venue states\" %}" },
            "limit": 250,
            "unique_by": ["company_name", "address_line_1"],
            "unique_match": "all"
        }
    } }
headers = {
    "content-type": "application/json",
    "authorization": "Bearer <TOKEN>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
curl --request POST \
     --url https://api.pipe0.com/v1/search/run \
     --header 'authorization: Bearer <TOKEN>' \
     --header 'content-type: application/json' \
     --data '
{
  "search": {
    "search_id": "research:exa@1",
    "config": {
      "prompt": {
        "template": "Find event venues in Chicago, Illinois that can host corporate events for 100 or more guests. Only include venues that are currently operating.\n\n{% output company_name, type: \"string\", description: \"Venue name\" %}\n{% output address_line_1, type: \"string\", format: \"address_line_1\", description: \"Street address\" %}\n{% output zip_code, type: \"string\", format: \"zip_code\", description: \"ZIP code\" %}\n{% output phone, type: \"string\", format: \"phone\", description: \"Main phone number\" %}\n{% output company_domain, type: \"string\", format: \"domain\", description: \"Website domain, e.g. example.com; empty if none\" %}\n{% output max_capacity, type: \"number\", format: \"int\", description: \"Largest event capacity the venue states\" %}"
      },
      "limit": 250,
      "unique_by": [
        "company_name",
        "address_line_1"
      ],
      "unique_match": "all"
    }
  }
}
'
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.pipe0.com/v1/search/run"

	payload := strings.NewReader("{\"search\":{\"search_id\":\"research:exa@1\",\"config\":{\"prompt\":{\"template\":\"Find event venues in Chicago, Illinois that can host corporate events for 100 or more guests. Only include venues that are currently operating.\\n\\n{% output company_name, type: \\\"string\\\", description: \\\"Venue name\\\" %}\\n{% output address_line_1, type: \\\"string\\\", format: \\\"address_line_1\\\", description: \\\"Street address\\\" %}\\n{% output zip_code, type: \\\"string\\\", format: \\\"zip_code\\\", description: \\\"ZIP code\\\" %}\\n{% output phone, type: \\\"string\\\", format: \\\"phone\\\", description: \\\"Main phone number\\\" %}\\n{% output company_domain, type: \\\"string\\\", format: \\\"domain\\\", description: \\\"Website domain, e.g. example.com; empty if none\\\" %}\\n{% output max_capacity, type: \\\"number\\\", format: \\\"int\\\", description: \\\"Largest event capacity the venue states\\\" %}\"},\"limit\":250,\"unique_by\":[\"company_name\",\"address_line_1\"],\"unique_match\":\"all\"}}}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("content-type", "application/json")
	req.Header.Add("authorization", "Bearer <TOKEN>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.pipe0.com/v1/search/run', [
  'body' => '{"search":{"search_id":"research:exa@1","config":{"prompt":{"template":"Find event venues in Chicago, Illinois that can host corporate events for 100 or more guests. Only include venues that are currently operating.\\n\\n{% output company_name, type: \\"string\\", description: \\"Venue name\\" %}\\n{% output address_line_1, type: \\"string\\", format: \\"address_line_1\\", description: \\"Street address\\" %}\\n{% output zip_code, type: \\"string\\", format: \\"zip_code\\", description: \\"ZIP code\\" %}\\n{% output phone, type: \\"string\\", format: \\"phone\\", description: \\"Main phone number\\" %}\\n{% output company_domain, type: \\"string\\", format: \\"domain\\", description: \\"Website domain, e.g. example.com; empty if none\\" %}\\n{% output max_capacity, type: \\"number\\", format: \\"int\\", description: \\"Largest event capacity the venue states\\" %}"},"limit":250,"unique_by":["company_name","address_line_1"],"unique_match":"all"}}}',
  'headers' => [
    'authorization' => 'Bearer <TOKEN>',
    'content-type' => 'application/json',
  ],
]);

echo $response->getBody();
POST /v1/search/run HTTP/1.1

Content-Type: application/json

Authorization: Bearer <TOKEN>

Host: api.pipe0.com

Content-Length: 919



{"search":{"search_id":"research:exa@1","config":{"prompt":{"template":"Find event venues in Chicago, Illinois that can host corporate events for 100 or more guests. Only include venues that are currently operating.\n\n{% output company_name, type: \"string\", description: \"Venue name\" %}\n{% output address_line_1, type: \"string\", format: \"address_line_1\", description: \"Street address\" %}\n{% output zip_code, type: \"string\", format: \"zip_code\", description: \"ZIP code\" %}\n{% output phone, type: \"string\", format: \"phone\", description: \"Main phone number\" %}\n{% output company_domain, type: \"string\", format: \"domain\", description: \"Website domain, e.g. example.com; empty if none\" %}\n{% output max_capacity, type: \"number\", format: \"int\", description: \"Largest event capacity the venue states\" %}"},"limit":250,"unique_by":["company_name","address_line_1"],"unique_match":"all"}}}