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

# Create platform user

> Creates a new platform user with automatically generated availability schedule and meeting type. The user will be associated with your company and ready for bookings immediately. Basic information for availability (weekly schedule, timezone) and meeting type (name, duration, slug) can be provided in the request. If not provided, default values are used: availability defaults to business hours (9-17 Mon-Fri) in Europe/Berlin timezone, and meeting type defaults to "30min Meeting" with 30-minute duration. The response includes IDs for the created user, availability, and meeting type, plus a ready-to-use public booking URL. The defaultAvailabilityId can be used to update availability via PATCH, and meeting types can be fetched and modified or new ones created.



## OpenAPI

````yaml /openapi.json post /v4/user
openapi: 3.0.0
info:
  title: meetergo Platform API
  description: >-
    Scheduling, CRM and invoicing in one API: create users, manage availability
    and bookings, connect calendars, keep contacts and deals in sync, and take
    an offer through to a paid invoice.
  version: 3.274.0
  contact: {}
  termsOfService: https://www.meetergo.com/tos/
servers: []
security: []
tags:
  - name: User V4
    description: Create and manage users in your workspace
  - name: Meeting Type V4
    description: Configure meeting templates with durations, buffers, and conferencing
  - name: availability
    description: Manage weekly schedules and availability settings
  - name: Booking V4
    description: Create new bookings
  - name: Booking Availability V4
    description: Query available time slots for booking
  - name: Appointment V4
    description: Manage existing appointments
  - name: Attendee V4
    description: Manage attendee details and notes
  - name: Calendar Connections V4
    description: Connect and sync external calendars
  - name: Signatures V4
    description: >-
      Send PDFs for e-signature and download the signed, eIDAS-grade document
      (DocuSeal-compatible)
  - name: WhatsApp V4
    description: >-
      Send and receive WhatsApp messages by phone number and read conversation
      history
  - name: One Time Booking Link V4
    description: Create single-use booking links
  - name: availability-exception
    description: Override availability for specific dates
  - name: Booking Link V4
    description: Configure various booking page types
  - name: Personal Page V4
    description: Manage user profile pages
  - name: Handoff V4
    description: Reassign meetings to other hosts
  - name: Calendar Auth V4
    description: OAuth callbacks for calendar providers
  - name: CRM Contacts
    description: >-
      Create, find, and update the people in your CRM, including their custom
      data fields
  - name: CRM Deals
    description: >-
      Create, update, and track deals through pipeline stages (incl. per-deal
      activity history)
  - name: CRM Pipelines
    description: Manage pipelines and their stages
  - name: CRM Tasks
    description: Tasks on contacts, deals and companies
  - name: CRM Notes
    description: Notes on contacts, deals and companies
  - name: CRM Attachments
    description: Files attached to contacts, deals and companies
  - name: CRM Communications
    description: Logged calls, messages and meetings on contacts, deals and companies
  - name: CRM Email Sync
    description: Read the email history synced from connected mailboxes (read-only)
  - name: Data Fields
    description: >-
      Define the custom fields a contact can carry; their `name` is the key used
      in a contact's additionalData
  - name: Invoicing Documents
    description: >-
      Offers and invoices: create a draft, finalize it into a numbered
      e-invoice, send it, record payments, and run Mahnwesen
  - name: Invoicing Products
    description: Reusable products for invoice line items
  - name: Invoicing Settings
    description: Seller details, tax treatment, bank accounts, and number ranges
  - name: Invoicing Recurring
    description: >-
      Recurring schedules, billing runs over completed meetings, buyer prefill,
      and DATEV export
  - name: Queue V4
    description: Round-robin and queue-based routing (Beta)
  - name: Queue User Group V4
    description: Manage queue user groups (Beta)
  - name: Meeting Type Template V4
    description: Reusable meeting type configurations (Beta)
  - name: Attendee Pending V4
    description: Manage pending attendee approvals (Beta)
  - name: Provisional Booking V4
    description: Manage provisional/unconfirmed bookings (Beta)
paths:
  /v4/user:
    post:
      tags:
        - User V4
      summary: Create platform user
      description: >-
        Creates a new platform user with automatically generated availability
        schedule and meeting type. The user will be associated with your company
        and ready for bookings immediately. Basic information for availability
        (weekly schedule, timezone) and meeting type (name, duration, slug) can
        be provided in the request. If not provided, default values are used:
        availability defaults to business hours (9-17 Mon-Fri) in Europe/Berlin
        timezone, and meeting type defaults to "30min Meeting" with 30-minute
        duration. The response includes IDs for the created user, availability,
        and meeting type, plus a ready-to-use public booking URL. The
        defaultAvailabilityId can be used to update availability via PATCH, and
        meeting types can be fetched and modified or new ones created.
      operationId: createPlatformUser
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreatePlatformUserDto'
      responses:
        '201':
          description: >-
            Platform user created successfully with auto-generated availability
            and meeting type. Returns user ID, availability ID, meeting type ID,
            company ID, and public booking URL that customers can use
            immediately.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePlatformUserResponseDto'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: >-
            Forbidden - Requires company admin role and an active API Platform
            subscription. Not available to Personal Access Tokens.
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - ApiUserHeader: []
        - JWT: []
        - ApiKey: []
components:
  schemas:
    CreatePlatformUserDto:
      type: object
      properties:
        email:
          type: string
          format: email
          description: The email address of the user
        givenName:
          type: string
          description: The first name of the user. Defaults to the email prefix
        familyName:
          type: string
          description: The last name of the user. Defaults to empty string
        slug:
          type: string
          minLength: 5
          description: >-
            Optional unique slug for the user (minimum 5 characters). Defaults
            to creating slug via the email.
        timezone:
          type: string
          description: User timezone. Defaults to "Europe/Berlin"
          example: America/New_York
        availability:
          description: >-
            Availability configuration. Creates default availability if not
            specified
          allOf:
            - $ref: '#/components/schemas/CreateAvailabilityOptionDto'
        meetingType:
          description: >-
            Meeting type configuration. Creates default meeting type if not
            specified
          allOf:
            - $ref: '#/components/schemas/CreateMeetingTypeOptionDto'
      required:
        - email
    CreatePlatformUserResponseDto:
      type: object
      properties:
        userId:
          type: string
          description: Unique ID of the created platform user
          example: 550e8400-e29b-41d4-a716-446655440000
        availabilityId:
          type: string
          description: ID of the created availability schedule
          example: 660e8400-e29b-41d4-a716-446655440001
        meetingTypeId:
          type: string
          description: ID of the created meeting type
          example: 770e8400-e29b-41d4-a716-446655440002
        bookingUrl:
          type: string
          description: Public URL where customers can book appointments
          example: https://book.customdomain.com/john-doe/30min-meeting
        companyId:
          type: string
          description: ID of the company this user belongs to
          example: 880e8400-e29b-41d4-a716-446655440003
      required:
        - userId
        - availabilityId
        - meetingTypeId
        - bookingUrl
        - companyId
    CreateAvailabilityOptionDto:
      type: object
      properties:
        name:
          type: string
          description: >-
            Name of the availability. Defaults to "{givenName}'s Default
            Availability"
        schedule:
          description: >-
            Weekly schedule for availability. Defaults to business hours (9-17
            Mon-Fri)
          allOf:
            - $ref: '#/components/schemas/WeeklySchedule'
        timezone:
          type: string
          description: >-
            Timezone for the availability. Inherits from user timezone if not
            specified
    CreateMeetingTypeOptionDto:
      type: object
      properties:
        name:
          type: string
          description: Name of the meeting type. Defaults to "30min Meeting"
        duration:
          type: number
          minimum: 1
          description: Duration of the meeting in minutes. Defaults to 30
        slug:
          type: string
          description: URL slug for the meeting type. Auto-generated if not provided
          minLength: 3
        daysIntoFuture:
          description: >-
            Date range restrictions for booking availability. Controls when
            meetings can be booked (limit/range/forever modes)
          allOf:
            - $ref: '#/components/schemas/DaysIntoFutureSetting'
        channel:
          enum:
            - local
            - local-attendee
            - google
            - zoom
            - phone
            - phone-incoming
            - whatsapp
            - connect
            - webex
            - skypeForConsumer
            - skypeForBusiness
            - teamsForBusiness
            - teamsForBusiness2
            - teamsForExchange
            - teams2ForExchange
            - custom
            - resource
            - whereby
            - kmeet
            - zava
            - jitsi
            - nextcloudTalk
            - openTalk
            - alfaview
          type: string
          description: Meeting channel/venue type. Defaults to "phone" (outgoing call)
    ApiError:
      type: object
      required:
        - statusCode
        - message
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          description: >-
            A sentence, or the list of field constraints that failed. Validation
            errors name the offending property.
          example:
            - limit must not be greater than 100
        error:
          type: string
          example: BadRequestException
    WeeklySchedule:
      type: object
      properties:
        monday:
          $ref: '#/components/schemas/DaySchedule'
        tuesday:
          $ref: '#/components/schemas/DaySchedule'
        wednesday:
          $ref: '#/components/schemas/DaySchedule'
        thursday:
          $ref: '#/components/schemas/DaySchedule'
        friday:
          $ref: '#/components/schemas/DaySchedule'
        saturday:
          $ref: '#/components/schemas/DaySchedule'
        sunday:
          $ref: '#/components/schemas/DaySchedule'
      required:
        - monday
        - tuesday
        - wednesday
        - thursday
        - friday
        - saturday
        - sunday
    DaysIntoFutureSetting:
      type: object
      properties:
        mode:
          type: string
        bookingLimit:
          type: number
        countMode:
          type: string
        rangeMin:
          format: date-time
          type: string
        rangeMax:
          format: date-time
          type: string
      required:
        - mode
    DaySchedule:
      type: object
      properties:
        enabled:
          type: boolean
        hours:
          type: array
          items:
            $ref: '#/components/schemas/HoursSchedule'
      required:
        - enabled
        - hours
    HoursSchedule:
      type: object
      properties:
        start:
          type: string
        end:
          type: string
      required:
        - start
        - end
  responses:
    BadRequest:
      description: >-
        The request did not validate. `message` lists the constraints that
        failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Unauthorized:
      description: Missing, malformed, or expired credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    TooManyRequests:
      description: Rate limited. Back off and retry.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    ApiUserHeader:
      type: apiKey
      in: header
      name: x-meetergo-api-user-id
      description: >-
        User ID to act on behalf of. Platform API Keys only (required with an
        API Key unless the endpoint states otherwise). Requests authenticated
        with a Personal Access Token are rejected if this header names another
        user.
    JWT:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: JWT Bearer token for standard user authentication
    ApiKey:
      scheme: bearer
      bearerFormat: API Key
      type: http
      description: >-
        Bearer token: a Platform API Key (format: ak_live:<uuid>:<secret>) or a
        Personal Access Token (format: rgo-...). PATs always act as the token
        owner.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.