Total Expert Lead Opportunities (New) API
The Lead Opportunities (New) API from Total Expert — 2 operation(s) for lead opportunities (new).
The Lead Opportunities (New) API from Total Expert — 2 operation(s) for lead opportunities (new).
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/total-expert-lead-opportunities-new-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Total Expert Public Lead Opportunities (New) API
version: v1
description: The Total Expert REST API allows you to programmatically create, retrieve, update, and delete information through various endpoints.
contact:
url: https://developer.totalexpert.net
servers:
- url: https://public.totalexpert.net
description: Total Expert external API — production
- url: https://public.vt.totalexpert.net
description: Total Expert external API — development/sandbox domain (isolated from live data; per the Vendor OAuth Integration Guide)
security:
- oauth2: []
tags:
- name: Lead Opportunities (New)
paths:
/v1/lead-opportunities:
post:
operationId: missingRequiredFields
summary: Missing Required Fields
description: 'Example error when required fields are missing.
Expected Response (400):
{
"error": "Missing required fields. Must provide: first_name, last_name, source, and either phone or email"
}
Alternate documented request: Create Lead Opportunity (Minimal).
Alternate documented request: Create Lead Opportunity (Full).'
tags:
- Lead Opportunities (New)
responses:
'200':
description: Success. See the Total Expert Public API documentation for the response shape.
requestBody:
content:
application/json:
examples:
default:
value:
first_name: John
create-lead-opportunity-minimal:
value:
first_name: John
last_name: Doe
source: website
email: john.doe@example.com
create-lead-opportunity-full:
value:
first_name: John
last_name: Doe
source: website
phone: 555-123-4567
email: john.doe@example.com
contact_id: 456
assigned_user:
user_id: 789
product:
type: mortgage
values:
loan_purpose: Purchase
loan_amount: 350000
property_type: Single-Family
property_state: CA
credit_score: 720
stage:
id: '1'
name: New Lead
referred_by: Jane Smith
utm_source: google
utm_campaign: spring_sale
utm_medium: cpc
get:
operationId: invalidFilterExpression
summary: Invalid Filter Expression
description: 'Example error for invalid filter syntax.
Expected Response (400):
{
"error": "Invalid filter expression: invalidfilter"
}
Alternate documented request: Invalid Sort Field.
Alternate documented request: Page Out of Range.
Alternate documented request: List Lead Opportunities (Default).
Alternate documented request: List with Pagination.
Alternate documented request: Filter by Contact ID.
Alternate documented request: Multiple Filters.
Alternate documented request: Sort by Created Date (Descending).
Alternate documented request: Sort by Updated Date (Ascending).
Alternate documented request: Combined - Filter, Sort, Paginate.'
tags:
- Lead Opportunities (New)
responses:
'200':
description: Success. See the Total Expert Public API documentation for the response shape.
parameters:
- name: filter
in: query
required: false
schema:
type: string
example: invalidfilter
/v1/lead-opportunities/{lead_opportunity_id}:
get:
operationId: getLeadOpportunityById
summary: Get Lead Opportunity by ID
description: 'Retrieve a specific lead opportunity by its unique identifier.
Path Parameters:
id - Lead opportunity UUID or alphanumeric ID
Response (200 OK):
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"first_name": "John",
"last_name": "Doe",
"stage": {"id": "stage-123", "name": "New Lead"},
"product": {"type": "mortgage", "values": {...}},
"source": {"id": 1, "display_name": "Website"},
"assigned_user_id": 789,
"legacy_contact_id": 456,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-16T14:20:00Z"
}
Response (404 Not Found):
{
"message": "Object with id ''550e8400-e29b-41d4-a716-446655440000'' not found"
}
cURL:
curl "{{external_api_host}}/v1/lead-opportunities/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"'
tags:
- Lead Opportunities (New)
responses:
'200':
description: Success. See the Total Expert Public API documentation for the response shape.
parameters:
- name: lead_opportunity_id
in: path
required: true
schema:
type: string
patch:
operationId: updateLeadOpportunity
summary: Update Lead Opportunity
description: 'Update an existing lead opportunity.
Required: contact_id (always required for updates)
Update Behavior:
Three independent operations:
Assignment update (assigned_user_id)
Stage update (stage.id)
Lead opportunity update (other fields)
Product Values: Partial updates merge with existing values.
Marketing attribution: utm_source, utm_campaign, utm_medium are optional strings, each patched independently. Omit a field to leave its stored value unchanged; send a field to overwrite it.
Response (200 OK):
{
"leadOpportunity": {"id": "...", "contact_id": 456},
"errors": {"stage": "Failed to update stage"}
}
cURL Examples:
Update assignment:
curl -X PATCH "{{external_api_host}}/v1/lead-opportunities/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d ''{"contact_id": 456, "assigned_user_id": 999}''
Update product:
curl -X PATCH "{{external_api_host}}/v1/lead-opportunities/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d ''{"contact_id": 456, "product": {"values": {"loan_amount": 400000}}}''
Update marketing attribution:
curl -X PATCH "{{external_api_host}}/v1/lead-opportunities/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d ''{"contact_id": 456, "utm_source": "bing", "utm_campaign": "summer_promo", "utm_medium": "email"}'''
tags:
- Lead Opportunities (New)
responses:
'200':
description: Success. See the Total Expert Public API documentation for the response shape.
parameters:
- name: lead_opportunity_id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
contact_id: 456
first_name: Jane
last_name: Smith
email: jane.smith@example.com
assigned_user:
user_id: 999
product:
values:
loan_amount: 400000
credit_score: 750
stage:
id: stage-456
utm_source: bing
utm_campaign: summer_promo
utm_medium: email
components:
securitySchemes:
oauth2:
type: oauth2
description: OAuth 2.0. Obtain a token from POST /v1/token using HTTP Basic (client_id:client_secret base64-encoded) plus a grant_type body. Access tokens are bearer tokens, expires_in 3600.
flows:
clientCredentials:
tokenUrl: https://public.totalexpert.net/v1/token
scopes:
crm: Documented example scope (Vendor OAuth Integration Guide authorize example)
leadInteraction: Lead interaction access (documented in the collection token examples)
loanInteraction: Loan interaction access (documented in the collection token examples)
leadSurveyInteraction: Lead survey interaction access (documented example in the Vendor OAuth Integration Guide)
postLeads: Post leads access (documented example in the Vendor OAuth Integration Guide)
authorizationCode:
authorizationUrl: https://public.totalexpert.net/v1/authorize
tokenUrl: https://public.totalexpert.net/v1/token
refreshUrl: https://public.totalexpert.net/v1/token
scopes:
crm: Documented example scope (Vendor OAuth Integration Guide authorize example)
leadInteraction: Lead interaction access (documented in the collection token examples)
loanInteraction: Loan interaction access (documented in the collection token examples)
leadSurveyInteraction: Lead survey interaction access (documented example in the Vendor OAuth Integration Guide)
postLeads: Post leads access (documented example in the Vendor OAuth Integration Guide)
externalDocs:
description: Total Expert Public API documentation (Postman)
url: https://documenter.getpostman.com/view/1929166/total-expert-public-api/6Z2RYyU