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

# Ask to be told when a Discover provider joins

> Records that the authenticated user is looking for a service Discover has no listing for, so they are emailed at their account address when a matching provider joins. Asking again for the same need within 90 days returns the open request only in the same region: a repeat in another region, or with a `searchedArea` where there was none (or none where there was one), records a new request. `matchedProviders` in the response says which new providers can trigger the email: only online ones, or none, when the request is outside every launch region, so pass the `searchedArea` of the user's search. The response never includes the request's id, an email address or who else asked. Limited to 10 requests per hour per user, shared across all of the user's API keys and access tokens. If accessed using an OAuth access token, the `PROFILE_WRITE` scope is required.



## OpenAPI

````yaml /api-reference/v2/openapi.json post /v2/discover/service-requests
openapi: 3.0.0
info:
  title: Cal.com API v2
  description: ''
  version: 1.0.0
  contact: {}
servers: []
security: []
tags: []
paths:
  /v2/discover/service-requests:
    post:
      tags:
        - Discover
      summary: Ask to be told when a Discover provider joins
      description: >-
        Records that the authenticated user is looking for a service Discover
        has no listing for, so they are emailed at their account address when a
        matching provider joins. Asking again for the same need within 90 days
        returns the open request only in the same region: a repeat in another
        region, or with a `searchedArea` where there was none (or none where
        there was one), records a new request. `matchedProviders` in the
        response says which new providers can trigger the email: only online
        ones, or none, when the request is outside every launch region, so pass
        the `searchedArea` of the user's search. The response never includes the
        request's id, an email address or who else asked. Limited to 10 requests
        per hour per user, shared across all of the user's API keys and access
        tokens. If accessed using an OAuth access token, the `PROFILE_WRITE`
        scope is required.
      operationId: DiscoverServiceRequestsController_record
      parameters:
        - name: Authorization
          in: header
          description: >-
            value must be `Bearer <token>` where `<token>` is api key prefixed
            with cal_, managed user access token, or OAuth access token
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordDiscoverServiceRequestInput'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/RecordDiscoverServiceRequestOutputResponseDto
        '400':
          description: >-
            The service is empty, longer than 80 characters or can't be
            recorded, or the category is unknown
        '401':
          description: Unauthenticated
        '403':
          description: Insufficient permissions
        '429':
          description: >-
            Too many requests with this credential, or more than 10 service
            requests per hour for this user across all of their credentials
components:
  schemas:
    RecordDiscoverServiceRequestInput:
      type: object
      properties:
        service:
          type: string
          minLength: 1
          description: >-
            The service in two or three words, as a provider would list it, such
            as dentist or piano lessons. Never the user's own words or personal
            details.
          example: piano lessons
          maxLength: 80
        category:
          type: string
          description: The Discover category it belongs to.
          enum:
            - medical
            - barbers
            - coaching
            - consulting
            - lessons
            - pets
            - sports
            - dance
            - social
            - online-services
            - saas
            - home-services
            - other
          example: lessons
        subcategory:
          type: string
          description: >-
            The subcategory slug within that category, when one fits. A
            subcategory outside the category is ignored.
          example: music-and-voice
          maxLength: 64
          pattern: ^[a-z0-9-]+$
        searchedArea:
          type: string
          description: >-
            The `searchedArea` a `search_listings` (`GET
            /v2/discover/listings/search`) result returned when it found
            nothing, copied as given; it decides the region the request is
            matched in, and a repeat returns the open request only from the same
            region. Leave it out when there was none.
          example: within 10 miles of Seattle, WA
          maxLength: 120
      required:
        - service
        - category
    RecordDiscoverServiceRequestOutputResponseDto:
      type: object
      properties:
        status:
          enum:
            - success
            - error
          type: string
          example: success
        data:
          $ref: '#/components/schemas/RecordDiscoverServiceRequestData'
      required:
        - status
        - data
    RecordDiscoverServiceRequestData:
      type: object
      properties:
        recorded:
          type: boolean
          example: true
          description: >-
            Always true: the request is recorded, or the open request for the
            same need in the same region is returned.
        service:
          type: string
          example: piano lessons
          description: The service as sent.
        notify:
          type: string
          enum:
            - account_email
          example: account_email
          description: >-
            How the user hears back: an email to their account address when a
            matching provider joins.
        matchedProviders:
          enum:
            - nearby_and_online
            - nearby
            - online_only
            - none
          type: string
          example: nearby
          description: >-
            Which new providers can trigger the email. `nearby_and_online`:
            providers in the user's launch region, and online providers in this
            online-friendly category (coaching, consulting, online services,
            software). `nearby`: providers in the user's launch region.
            `online_only`: only online providers, because the request is outside
            every launch region. `none`: no provider can, because the request is
            outside every launch region in a category booked in person; search
            the user's area with `GET /v2/discover/listings/search` and record
            it again with its `searchedArea`.
      required:
        - recorded
        - service
        - notify
        - matchedProviders

````

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