openapi: "3.1.0"
info:
  title: "Dublin Cork Galway Limerick Kilkenny Mayo — Bilarna Provider API"
  version: "1.0.0"
  description: |
    Machine-readable API for interacting with Dublin Cork Galway Limerick Kilkenny Mayo on the Bilarna B2B network.
    Find jobs in Accountancy, Financial Services, HR, Business Support, Administration, Construction, Engineering, Marketing, Retail, Technology and executive serach, c-suite and life science
    Services offered: Executive Search Software.
  contact:
    name: "Dublin Cork Galway Limerick Kilkenny Mayo"
    url: "https://bilarna.com/provider/wallacemyers"
  x-provider:
    slug: "wallacemyers"
    verified: true
    accepts_meetings: false
    logo: "https://www.wallacemyers.ie/themes/WMI2017/images/ogimage.png"


servers:
  - url: "https://api.bilarna.com/api"
    description: Bilarna API

paths:
  /agent/match:
    post:
      operationId: bilarna_match
      summary: Find matching providers by service need
      description: |
        Returns a ranked list of providers (business_id, score, description).
        Use the returned business_id with /agent/request to submit a
        service request to Dublin Cork Galway Limerick Kilkenny Mayo (business_id from match results).
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: "1.0"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [need]
              properties:
                need:
                  type: string
                  description: Free-text service description
                  example: "Executive Search Software"
      responses:
        "200":
          description: Matched providers
          content:
            application/json:
              schema:
                type: object
                properties:
                  matchRequestId:
                    type: integer
                  candidates:
                    type: array
                    items:
                      type: object
                      properties:
                        business_id:
                          type: integer
                        score:
                          type: number
                        description:
                          type: string

  /agent/request:
    post:
      operationId: bilarna_request
      summary: Submit a service request to a provider
      description: |
        Sends a service request. When business_id is provided the request
        goes directly to that provider; otherwise Bilarna matches the
        request to relevant providers automatically.
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: "1.0"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [need, contact_name, email]
              properties:
                business_id:
                  type: integer
                  description: Target provider ID (from bilarna_match)
                  nullable: true
                need:
                  type: string
                  description: Free-text description of the service need
                contact_name:
                  type: string
                  description: Full name of the decision-maker
                email:
                  type: string
                  format: email
                  description: Business email for lead routing
                phone:
                  type: string
                  description: Business phone number (optional)
                category:
                  type: string
                  description: Service category
                country:
                  type: string
                  description: Provider country preference
                budget_max:
                  type: number
                  description: Maximum project budget in USD
      responses:
        "200":
          description: Request created
          content:
            application/json:
              schema:
                type: object
                properties:
                  matchRequestId:
                    type: integer
                  business_id:
                    type: integer
                  lead:
                    type: object
                    properties:
                      contactName:
                        type: string
                      email:
                        type: string
                      phone:
                        type: string
