> ## Documentation Index
> Fetch the complete documentation index at: https://docs.renovationfind.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get lead details

> Get full details of a single vendor-assigned lead. Automatically marks the lead as viewed.
Customer contact information (email, phone, address) is only included if the lead has been accepted.




## OpenAPI

````yaml /openapi.yaml get /general-leads/{id}
openapi: 3.0.3
info:
  title: RenovationFind API
  description: >
    Public REST API for RenovationFind vendor integrations.


    ## Authentication

    All endpoints require a Bearer token in the `Authorization` header.

    Tokens are issued from the RenovationFind Manager Portal.


    ```

    Authorization: Bearer <your_jwt_token>

    ```


    ## Rate Limiting

    API requests are rate-limited to **250 requests per 5 minutes** per vendor.

    When exceeded, the API returns `429 Too Many Requests` with a `Retry-After`
    header.


    ## Response Format

    All responses follow a consistent envelope:

    ```json

    {
      "success": true,
      "data": { ... },
      "message": "Optional message"
    }

    ```

    On error:

    ```json

    {
      "success": false,
      "error": "Error description"
    }

    ```
  version: 1.0.0
  contact:
    name: RenovationFind
    url: https://www.renovationfind.com
servers:
  - url: https://www.renovationfind.com/rest-api-v1
    description: Production
security:
  - BearerAuth: []
paths:
  /general-leads/{id}:
    get:
      tags:
        - General Leads
      summary: Get lead details
      description: >
        Get full details of a single vendor-assigned lead. Automatically marks
        the lead as viewed.

        Customer contact information (email, phone, address) is only included if
        the lead has been accepted.
      operationId: getGeneralLeadDetails
      parameters:
        - name: id
          in: path
          required: true
          description: Lead communication ID
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Lead details
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    description: >
                      Full detail view of a vendor-assigned lead. Includes all
                      fields from the lite view

                      plus post-lead status data and file attachments.
                    allOf:
                      - type: object
                        description: >
                          A vendor-assigned general lead (lite view).

                          Customer contact fields (customerEmail, customerPhone,
                          customerAddress) are null until the lead is accepted.
                        properties:
                          id:
                            type: integer
                            format: int64
                          dateCreated:
                            type: string
                            format: date-time
                          dateModified:
                            type: string
                            format: date-time
                          actionDate:
                            type: string
                            format: date-time
                            nullable: true
                            description: Date when the vendor accepted or declined the lead
                          category:
                            type: string
                            description: Trade category (e.g. "Plumbing", "Electrical")
                          customerName:
                            type: string
                          customerEmail:
                            type: string
                            format: email
                            nullable: true
                            description: Only included after lead is accepted
                          customerPhone:
                            type: string
                            nullable: true
                            description: Only included after lead is accepted
                          customerAddress:
                            type: string
                            nullable: true
                            description: Only included after lead is accepted
                          projectDetailsHtml:
                            type: string
                            description: HTML-formatted project details
                          originalJobDescription:
                            type: string
                          vendorNotificationViewed:
                            type: boolean
                            description: Whether the vendor has viewed this lead
                          vendorLeadAction:
                            type: string
                            enum:
                              - NONE
                              - ACCEPT
                              - DECLINE
                              - EXPIRED
                            description: Current action state of the lead
                          declineReason:
                            type: string
                            nullable: true
                            description: Reason provided when declining
                          postLeadStatus:
                            type: string
                            nullable: true
                            enum:
                              - NO_RESPONSE
                              - HOMEOWNER_CONTACTED
                              - MEETUP_SCHEDULED
                              - QUOTE_SENT
                              - JOB_PENDING_DECISION
                              - JOB_WON
                              - JOB_LOST
                              - JOB_POSTPONED_OR_CANCELLED
                              - NO_RESPONSE_FROM_HOMEOWNER
                              - OTHER
                              - REACHED_OUT_TO_HOMEOWNER
                              - MULTIPLE_ATTEMPTS_NO_RESPONSE
                              - CONTACT_MADE
                              - ESTIMATE_PROVIDED
                              - LEAD_WON
                              - LEAD_LOST
                            description: Current post-acceptance job tracking status
                          postLeadRequiresAction:
                            type: boolean
                            description: >-
                              Whether a status update is required from the
                              vendor
                      - type: object
                        properties:
                          customerInformationHtml:
                            type: string
                            nullable: true
                            description: >-
                              HTML-formatted customer information. Only included
                              after lead is accepted.
                          postLeadStatusData:
                            type: object
                            nullable: true
                            description: Post-acceptance job tracking data
                            properties:
                              status:
                                type: string
                                enum:
                                  - NO_RESPONSE
                                  - HOMEOWNER_CONTACTED
                                  - MEETUP_SCHEDULED
                                  - QUOTE_SENT
                                  - JOB_PENDING_DECISION
                                  - JOB_WON
                                  - JOB_LOST
                                  - JOB_POSTPONED_OR_CANCELLED
                                  - NO_RESPONSE_FROM_HOMEOWNER
                                  - OTHER
                                  - REACHED_OUT_TO_HOMEOWNER
                                  - MULTIPLE_ATTEMPTS_NO_RESPONSE
                                  - CONTACT_MADE
                                  - ESTIMATE_PROVIDED
                                  - LEAD_WON
                                  - LEAD_LOST
                              statusActionDate:
                                type: string
                                format: date-time
                                nullable: true
                              reason:
                                type: string
                                nullable: true
                                description: >-
                                  Notes/reason text. Required for JOB_LOST,
                                  JOB_POSTPONED_OR_CANCELLED, OTHER. Required
                                  for LEAD_LOST when lostReason is OTHER.
                                  Optional for all other statuses.
                              meetupScheduledDate:
                                type: string
                                format: date-time
                                nullable: true
                              jobAmount:
                                type: number
                                format: double
                                nullable: true
                                description: Project amount for JOB_WON or LEAD_WON status
                              requiresAction:
                                type: boolean
                              contactMethod:
                                type: string
                                nullable: true
                                enum:
                                  - PHONE_CALL
                                  - TEXT
                                  - EMAIL
                                  - IN_PERSON_MEETING
                                description: >-
                                  Contact method for REACHED_OUT_TO_HOMEOWNER or
                                  CONTACT_MADE statuses
                              estimateType:
                                type: string
                                nullable: true
                                enum:
                                  - IN_PERSON_ESTIMATE
                                  - EMAILED_ESTIMATE
                                  - VERBAL_ESTIMATE
                                  - PORTAL_ATTACHMENT_ESTIMATE
                                  - OTHER
                                description: Estimate type for ESTIMATE_PROVIDED status
                              lostReason:
                                type: string
                                nullable: true
                                enum:
                                  - PRICE
                                  - TIMING
                                  - OTHER
                                description: Required for LEAD_LOST status
                              estimatedProjectStartDate:
                                type: string
                                format: date-time
                                nullable: true
                                description: >-
                                  For LEAD_WON status. Null when startDateTbd is
                                  true.
                              estimatedCompletionDate:
                                type: string
                                format: date-time
                                nullable: true
                                description: >-
                                  For LEAD_WON status. Null when
                                  completionDateTbd is true.
                              startDateTbd:
                                type: boolean
                                description: >-
                                  Whether the project start date is TBD
                                  (LEAD_WON)
                              completionDateTbd:
                                type: boolean
                                description: Whether the completion date is TBD (LEAD_WON)
                          attachments:
                            type: array
                            items:
                              type: object
                              description: File attachment metadata
                              properties:
                                id:
                                  type: integer
                                  format: int64
                                displayFilename:
                                  type: string
                                contentType:
                                  type: string
                                  description: >-
                                    MIME type (application/pdf, image/jpeg,
                                    image/png)
                                uploadDate:
                                  type: string
                                  format: date-time
        '404':
          description: Lead not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
        '429':
          description: Rate limit exceeded (250 requests per 5 minutes)
          headers:
            Retry-After:
              schema:
                type: integer
                example: 300
              description: Seconds to wait before retrying
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
              example:
                success: false
                error: >-
                  Rate limit exceeded. Maximum 250 requests per 5 minutes.
                  Please retry later.
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token issued from the RenovationFind Manager Portal

````