> ## 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.

# Search vendors

> Search for vendors by name or ID. Returns a paginated list of matching vendors
with basic profile information.




## OpenAPI

````yaml /openapi-manager.yaml get /vendors
openapi: 3.0.3
info:
  title: RenovationFind Manager API
  description: >
    Internal REST API for RenovationFind manager operations.


    ## 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 manager.

    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"
    }

    ```


    ## Partial Updates

    All PATCH endpoints accept partial payloads. Only provided (non-null) fields
    are applied;

    omitted fields remain unchanged. Date fields use `dd/MM/yyyy` format.
  version: 1.0.0
  contact:
    name: RenovationFind
    url: https://www.renovationfind.com
servers:
  - url: https://www.renovationfind.com/rest-manager-api-v1
    description: Production
security:
  - BearerAuth: []
paths:
  /vendors:
    get:
      tags:
        - Vendors
      summary: Search vendors
      description: >
        Search for vendors by name or ID. Returns a paginated list of matching
        vendors

        with basic profile information.
      operationId: searchVendors
      parameters:
        - name: search
          in: query
          required: false
          description: Search query matching vendor name or ID
          schema:
            type: string
            default: ''
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 0
            minimum: 0
        - name: size
          in: query
          required: false
          description: Page size (max 100)
          schema:
            type: integer
            default: 10
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: Paginated list of matching vendors
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      content:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              format: int64
                              example: 1234
                            vendorName:
                              type: string
                              example: ABC Renovations
                            email:
                              type: string
                              example: info@abcrenovations.com
                            cityName:
                              type: string
                              example: Calgary
                            provinceName:
                              type: string
                              example: Alberta
                            activated:
                              type: boolean
                              example: true
                            packageType:
                              type: integer
                              example: 1
                      totalElements:
                        type: integer
                        format: int64
                      totalPages:
                        type: integer
                      size:
                        type: integer
                      number:
                        type: integer
        '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

````