WeTravel Leads API

The Leads API from WeTravel — 2 operation(s) for leads.

OpenAPI Specification

wetravel-leads-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: WeTravel Partner Access token Leads API
  version: 2.0.0
  description: WeTravel Partner API — Trip Builder, Bookings/Orders, Payments (payment links), Transactions, Suppliers and Leads. Enables travel companies to programmatically create WeTravel trip and booking pages and sync customers, orders and transactions. Harvested from the WeTravel Developer Hub per-endpoint OpenAPI fragments (developer.wetravel.com). Paths normalized to the https://api.wetravel.com/v2 base.
  x-apievangelist:
    generated: '2026-07-21'
    method: searched
    source: https://developer.wetravel.com/reference (per-endpoint OpenAPI fragments, merged; paths normalized to the /v2 base)
    note: Harvested v2 Partner API. Current release is v3 (2026-02-01); see changelog/.
servers:
- url: https://api.wetravel.com/v2
  description: Production
- url: https://api.demo.wetravel.to/v2
  description: Sandbox
security:
- bearerAuth: []
- tokenAuth: []
tags:
- name: Leads
paths:
  /lead/{id}:
    get:
      tags:
      - Leads
      description: Get a lead
      summary: Get lead
      operationId: getLead
      parameters:
      - name: id
        in: path
        description: The unique global ID of the lead
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Get a lead
          content:
            application/json:
              schema:
                type: object
                $ref: '#/components/schemas/Lead'
  /lead:
    post:
      tags:
      - Leads
      description: Get a list of Leads
      summary: List Leads
      operationId: getLeads
      requestBody:
        content:
          application/json:
            schema:
              type: object
              $ref: '#/components/schemas/GetLeads'
      responses:
        '200':
          description: Get a list of leads
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Lead'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
components:
  schemas:
    Question:
      type: object
      properties:
        content:
          description: Question content
          type: string
          example: What is your name?
        created_at:
          description: Question created at
          type: string
          format: date-time
          example: '2017-01-01 00:00:00'
      description: Question object
    Trip:
      required:
      - can_contribute
      - currency
      - destination
      - end_date
      - group_max
      - group_min
      - listing_status
      - participant_fees
      - participant_list_show_type
      - start_date
      - title
      - waiting_list_enabled
      type: object
      properties:
        uuid:
          type: string
          description: Unique ID of the trip
          example: '12345678'
        created_at:
          type: string
          format: date-time
          description: Time at which the object was created.
          example: '2017-07-21T17:32:28.000Z'
        trip_id:
          type: string
          description: This optional Trip Reference is set by you. It is not visible to your clients. It is only visible to you in your WeTravel dashboard and reporting.
          example: TRIP20
        url:
          type: string
          description: Url of the trip
          example: https://wetravel.com/trips/123456
        title:
          type: string
          description: Title of the trip
          example: Epic London Trip
          default: Epic London Trip
        destination:
          type: string
          description: Destination of the trip
          example: London, Uk
          default: London, Uk
        start_date:
          type: string
          description: Start date of the trip in ISO 8601 format, e.g. “2021-05-07”
          example: '2021-05-07T00:00:00.000Z'
          default: '2021-05-07T00:00:00.000Z'
        end_date:
          type: string
          description: End date of the trip in ISO 8601 format, e.g. “2021-05-07”
          example: '2021-05-07T00:00:00.000Z'
          default: '2021-05-07T00:00:00.000Z'
        group_min:
          type: integer
          description: Min group size of the trip
          format: int32
          example: 5
          default: 5
        group_max:
          type: integer
          description: Max group size of the trip
          format: int32
          example: 15
          default: 15
        currency:
          type: string
          description: Currency of the trip
          example: USD
          default: USD
        participant_list_show_type:
          type: string
          description: "You can choose to show the names of already booked participants on your booking page. The options are “everyone”, “participants” or “only_organizer” which stand for\n               everyone - everyone can see the participant list on the booking page\n               participants - only already booked participants see the participant list\n               only_organizer - nobody can see the participant list (only the organizer)"
          example: everyone
          default: everyone
          enum:
          - everyone
          - participants
          - only_organizer
        welcome_message:
          type: string
          description: This welcome message is added to the booking confirmation email and is also shown on the payment confirmation page. This can also contain HTML.
          example: YAY!!!
          default: YAY!!!
        participant_fees:
          type: string
          description: "This setting allows you to choose how the payment fees are handled. The options are:\n              “credit_card” - Bank account payments are free to the participant, but if they choose to pay by credit card, a card fee is added to the price\n              “all” - all fees are paid by the participant\n              “none” - all fees are paid by the organizer"
          example: all
          enum:
          - credit_card
          - all
          - none
        listing_status:
          type: string
          description: Whether the trip is “public” or “private”
          example: private
          default: private
          enum:
          - private
          - public
        published:
          type: integer
          description: Date and time when the trip was last published. Unpublished trips will return the “published” field empty.
          format: int32
        waiting_list_enabled:
          type: boolean
          description: Whether the trip has a waitlist or not in case it’s sold out.
          example: true
          default: true
        can_contribute:
          type: boolean
          description: Whether the participant is allowed to create a contribution / fundraising page after booking this trip.
          example: true
          default: true
        carbon_offset:
          $ref: '#/components/schemas/CarbonOffset'
      description: Trip model
    GetLeads:
      type: object
      properties:
        trip_uuids:
          type: array
          description: Trip UUIDs
          items:
            type: string
        is_booked:
          type: boolean
          description: Whether lead is booked or not
        sort_by:
          type: string
          description: Field name to sort by
          enum:
          - email
          - recent_requested_at
          default: recent_requested_at
        sort_dir:
          type: string
          description: Direction of sorting
          enum:
          - desc
          - asc
          default: desc
        lead_type:
          type: string
          description: Type of the leads
        before:
          type: string
          format: date
          description: Recent request before date
        after:
          type: string
          format: date
          description: Recent request after date
        page:
          type: integer
          format: int32
          description: Page number
          default: 1
        per_page:
          type: integer
          format: int32
          description: Leads per page
          enum:
          - 25
          - 50
          - 100
          default: 25
      description: Get leads
    Lead:
      type: object
      properties:
        id:
          description: Lead ID
          type: integer
          format: int32
          example: 1
        trip_uuid:
          description: Trip UUID
          type: string
          example: '1234567890'
        email:
          description: Lead email
          type: string
          example: johndoe@mailinator.com
        name:
          description: Lead name
          type: string
          example: John Doe
        phone:
          description: Lead phone
          type: string
          example: +1 123 456 7890
        organizer_id:
          description: Organizer ID
          type: integer
          format: int32
          example: 1
        is_booked:
          description: Whether lead is booked or not
          type: boolean
        questions:
          type: array
          items:
            $ref: '#/components/schemas/Question'
          description: Lead questions
        recent_requested_at:
          description: Recent request date
          type: string
          format: date-time
          example: '2017-01-01 00:00:00'
        lead_type:
          description: Type of the lead
          type: string
          example: brochure
        trip:
          $ref: '#/components/schemas/Trip'
          description: Trip data
      description: Lead object
    CarbonOffset:
      required:
      - enabled
      - percentage
      - paid_by_participant
      type: object
      properties:
        enabled:
          type: boolean
          description: Carbon Offset Contribution offered for the trip
          example: true
          default: false
        percentage:
          type: number
          description: Carbon Offset Contribution amount as a selected percentage of the trip price
          example: 2.5
          default: 1
        paid_by_participant:
          type: boolean
          description: Carbon Offset Contribution is paid by participant
          example: true
          default: true
      description: Carbon Offset Contribution
    Pagination:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of leads
          format: int32
          example: 1
        page:
          type: integer
          description: Current page number where the lead is found
          format: int32
          example: 1
        per_page:
          type: integer
          description: 'How many lead are per page (default: 25)'
          format: int32
          example: 20
        total_pages:
          type: integer
          description: Total number of pages
          format: int32
          example: 1
        has_previous:
          type: boolean
          description: Whether the previous page is there or not
          example: false
        has_next:
          type: boolean
          description: Whether the next page is there or not
          example: false
      description: Pagination object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    tokenAuth:
      type: apiKey
      in: header
      name: X-Api-Key