Elead Customers API

Prospect and customer records and their owned vehicles.

OpenAPI Specification

elead-crm-customers-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Elead Vehicle Sales APIs Activities Customers API
  version: 1.2.0
  description: 'Partner-gated Vehicle Sales REST APIs for Elead (eLEAD / Elead CRM, part of CDK Global), published through the CDK Fortellis Automotive Commerce Exchange. Covers Sales Opportunities, Sales Customers, Sales Activities, and Product Reference Data.


    Access model: not open self-service. A developer must be a Fortellis user, create a Fortellis solution to obtain client_id/client_secret, and have the dealer activate the subscription (Subscription-Id). Every request also carries a Request-Id correlation header.


    Source note: the Sales Opportunities, Sales Customers, and Product Reference Data operations are transcribed from CDK Global''s Fortellis connector reference (mirrored on Microsoft Learn) and the Fortellis API directory. The Sales Activities operations are marked x-endpoints-modeled - they are inferred from CDK/Elead product descriptions, not a confirmed public reference. Verify exact paths and payloads in the Fortellis directory before implementation.'
  contact:
    name: CDK Global / Elead (via Fortellis)
    url: https://apidocs.fortellis.io/
    email: mbd_support@cdk.com
servers:
- url: https://api.fortellis.io/sales/v1/elead
  description: CDK Fortellis gateway - Elead Vehicle Sales APIs
security:
- fortellisClientId: []
  fortellisClientSecret: []
  subscriptionId: []
tags:
- name: Customers
  description: Prospect and customer records and their owned vehicles.
paths:
  /customers:
    post:
      tags:
      - Customers
      operationId: Customers_CreateCustomer
      summary: Create a prospect/customer
      description: Creates a prospect/customer and returns the uniquely assigned Elead customer Id.
      parameters:
      - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Customer'
      responses:
        '201':
          description: Customer created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
  /customers/search:
    get:
      tags:
      - Customers
      operationId: Customers_SearchCustomers
      summary: Search customers
      description: Search prospects/customers by first name, last name, phone number, or email address.
      parameters:
      - name: firstName
        in: query
        schema:
          type: string
      - name: lastName
        in: query
        schema:
          type: string
      - name: phoneNumber
        in: query
        schema:
          type: string
      - name: emailAddress
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        schema:
          type: integer
          format: int32
      - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Paged customer search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchCustomersResponse'
  /customers/{customerId}:
    get:
      tags:
      - Customers
      operationId: Customers_GetCustomer
      summary: Get customer by Id
      parameters:
      - $ref: '#/components/parameters/CustomerId'
      - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Customer record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
    put:
      tags:
      - Customers
      operationId: Customers_UpdateCustomer
      summary: Update a customer
      parameters:
      - $ref: '#/components/parameters/CustomerId'
      - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Customer'
      responses:
        '200':
          description: Updated customer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
  /customers/{customerId}/vehicles:
    get:
      tags:
      - Customers
      operationId: Customers_GetCustomerOwnedVehicles
      summary: Get customer owned vehicles
      parameters:
      - $ref: '#/components/parameters/CustomerId'
      - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Customer owned vehicle records
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerVehicle'
components:
  parameters:
    RequestId:
      name: Request-Id
      in: header
      required: true
      description: GUID correlation id echoed back on the response.
      schema:
        type: string
        format: uuid
    CustomerId:
      name: customerId
      in: path
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    CustomerEmail:
      type: object
      properties:
        address:
          type: string
        emailType:
          type: string
        doNotEmail:
          type: boolean
        isPreferred:
          type: boolean
    SearchCustomersResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Customer'
        totalItems:
          type: integer
        totalPages:
          type: integer
        pageNumber:
          type: integer
        pageSize:
          type: integer
    CustomerAddress:
      type: object
      properties:
        addressLine1:
          type: string
        addressLine2:
          type: string
        city:
          type: string
        state:
          type: string
        zip:
          type: string
        country:
          type: string
        county:
          type: string
        doNotMail:
          type: boolean
        isPreferred:
          type: boolean
    CustomerVehicle:
      type: object
      properties:
        id:
          type: string
          format: uuid
        year:
          type: integer
        make:
          type: string
        model:
          type: string
        trim:
          type: string
        vin:
          type: string
        mileage:
          type: integer
        exteriorColor:
          type: string
        interiorColor:
          type: string
    Customer:
      type: object
      properties:
        id:
          type: string
          format: uuid
        isBusiness:
          type: boolean
        businessName:
          type: string
        businessContact:
          type: string
        title:
          type: string
        firstName:
          type: string
        middleName:
          type: string
        lastName:
          type: string
        nickname:
          type: string
        birthday:
          type: string
          format: date-time
        emails:
          type: array
          items:
            $ref: '#/components/schemas/CustomerEmail'
        phones:
          type: array
          items:
            $ref: '#/components/schemas/CustomerPhone'
        address:
          $ref: '#/components/schemas/CustomerAddress'
    CustomerPhone:
      type: object
      properties:
        number:
          type: string
        phoneType:
          type: string
        preferredTimeToContact:
          type: string
        doNotCall:
          type: boolean
        doNotText:
          type: boolean
        preferCall:
          type: boolean
        preferText:
          type: boolean
  securitySchemes:
    fortellisClientId:
      type: apiKey
      in: header
      name: client_id
      description: Fortellis-issued client id for the solution.
    fortellisClientSecret:
      type: apiKey
      in: header
      name: client_secret
      description: Fortellis-issued client secret for the solution.
    subscriptionId:
      type: apiKey
      in: header
      name: Subscription-Id
      description: Per-dealer subscription identifier provided when the dealer activates the app.