Total Expert Lead Opportunities (New) API

The Lead Opportunities (New) API from Total Expert — 2 operation(s) for lead opportunities (new).

Business capability
Opportunity & Pipeline Management BC-410.30

Operations 4

POST /v1/lead-opportunities Missing Required Fields #
GET /v1/lead-opportunities Invalid Filter Expression #
GET /v1/lead-opportunities/{lead_opportunity_id} Get Lead Opportunity by ID #
PATCH /v1/lead-opportunities/{lead_opportunity_id} Update Lead Opportunity #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/total-expert-lead-opportunities-new-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

total-expert-lead-opportunities-new-api-openapi.yml Raw ↑
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