Skip to main content
POST
/
api
/
public
/
v1
/
evidence
/
search
Search evidence
import requests

url = "https://app.oneperfectslice.ai/api/public/v1/evidence/search"

payload = { "elementKeys": ["intent_signal"] }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

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

print(response.text)
{
  "data": {
    "matches": [
      {
        "quote": "We're aiming to have a vendor selected by end of Q2.",
        "source": {
          "type": "transcript",
          "id": "file:98123",
          "label": "Acme Corp — Discovery Call",
          "date": "2026-04-12"
        },
        "confidence": 0.91,
        "elementKey": "intent_signal",
        "runId": 12345
      }
    ]
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.oneperfectslice.ai/llms.txt

Use this file to discover all available pages before exploring further.

Unlike Get run evidence which returns evidence for a single run, this endpoint searches across all your completed runs — useful for trend analysis or finding recurring themes.

Authorizations

Authorization
string
header
default:sk_your_api_key
required

API key with sk_ prefix. Create one in Org Settings → API Keys.

Body

application/json

Evidence search filters. At least one element key is required.

elementKeys
string[]
required

Element keys to search for (e.g., ["intent_signal", "budget_confirmation"])

query
string

Free-text search across evidence quotes

callTypes
string[]

Filter by call type keys (e.g., ["discovery_call"])

Maximum array length: 100
callOwnerEmails
string[]

Filter by call owner emails

dateFrom
string<date>

Start date (inclusive)

dateTo
string<date>

End date (inclusive)

limit
integer

Maximum results to return (default varies)

Required range: 1 <= x <= 100

Response

Matching evidence items

data
object
required