---
title: v1.2.0, the agent flow
description: "What changed for looot customers in v1.2.0."
type: changelog
date: 2026-09-27
changelog:
  version: 1.2.0
  category: Release
---

The agent flow: connect over MCP, search, run a job, get the result, fall back to the next
provider, and see provider counts per category. The CLI stays on looot 1.1.0; no CLI update is
needed for this release.

## For agents

- Run a job, not a provider: `endpointId: "job:people.email.verify"`. looot picks the provider
  and says why in `requestedJob`.
- Common field names work on job runs: `email`, `url`, `domain`, `name`, `first_name`,
  `last_name`, `company`, `linkedin_url`, `phone` (camelCase too). looot maps them to each
  provider's own schema.
- Fallback: `fallback: true` moves to the next provider of the same job on a miss. Every attempt,
  the provider that served it (`servedEndpointId`) and the exact prices are on the run.
- A `normalized` block on completed runs: the same field names whatever provider answered (email
  verify, email find, scrape, company enrich; 20 endpoints so far).
- A bad email, URL, domain or phone on a job run is refused before any provider runs, at $0.
- Providers that have actually run rank above untried ones.
- `catalog_overview` reports providers and endpoints per category and job.

## Money

- 24 endpoints no longer charge when the provider reports a failure inside an otherwise
  successful response.
- One company-lookup-by-email endpoint now settles on the provider's own reported cost, so a miss
  is $0.
- A live test of 50 providers (202 runs) reconciled every checked run on the ledger.

## Catalog data

- 171 raw provider job names were merged into standard job ids, cutting the "other" bucket from
  68% of jobs to 10%.
- Output examples use values from saved provider answers, and prices for one large provider now come from its own
  published price list.
