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

# GET /v1/scheduling/services/:id

> Fetch the full detail of a service: duration, buffers, time restrictions, and allowed professionals.

Returns the requested service as long as it belongs to the PAT's tenant. Includes the fields needed to build a service picker in a public UI (duration, description, pricing) and the data the availability engine uses internally (`time_rules`, `allowedProfessionals`).

## Endpoint

```
GET https://api.keebai.com/v1/scheduling/services/:id
```

## Required scope

`scheduling:services:read`

## Path params

| Param | Type     | Description |
| ----- | -------- | ----------- |
| `id`  | `string` | Service id. |

## Example request

```bash theme={null}
curl https://api.keebai.com/v1/scheduling/services/65b1c2d3e4f5a6b7c8d9e0f1 \
  -H "Authorization: Bearer kbai_pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```

## Response

### 200 OK

```json theme={null}
{
  "_id": "65b1c2d3e4f5a6b7c8d9e0f1",
  "name": "Consulta general",
  "description": "Atención de medicina general 30 minutos.",
  "duration_minutes": 30,
  "bufferBefore": 0,
  "bufferAfter": 5,
  "time_rules": { "earliest_start": "09:00", "latest_end": "19:00" },
  "allowedProfessionals": ["66c1...", "66c2..."],
  "price": 25000,
  "currency": "CLP",
  "status": "active"
}
```

### 404 Not Found

The service doesn't exist or belongs to another company.

### 401 Unauthorized · 403 Forbidden

Same semantics as the rest of the public API.


## OpenAPI

````yaml GET /v1/scheduling/services/{id}
openapi: 3.0.0
info:
  title: Keebai Public API
  description: Superficie pública REST autenticada con Personal Access Tokens (PAT).
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.keebai.com
    description: Production
security: []
tags: []
paths:
  /v1/scheduling/services/{id}:
    get:
      tags:
        - scheduling-services
      summary: Obtener detalle de un servicio
      operationId: PublicServicesController_getById
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicServiceResponseDto'
      security:
        - PAT: []
components:
  schemas:
    PublicServiceResponseDto:
      type: object
      properties:
        id:
          type: string
          description: ObjectId del servicio
        name:
          type: string
        description:
          type: string
        duration_minutes:
          type: number
          description: Duración en minutos
        slot_interval_minutes:
          type: number
          description: Granularidad de los slots, en minutos
        price:
          type: object
          description: '{ amount, currency }'
        branches:
          description: Sucursales donde se presta
          type: array
          items:
            type: string
        category:
          type: string
        color:
          type: string
        status:
          type: string
          description: active | inactive
      required:
        - id
        - name
        - duration_minutes
        - status
  securitySchemes:
    PAT:
      scheme: bearer
      bearerFormat: kbai_pk_<hex>
      type: http
      description: >-
        Personal Access Token con prefijo `kbai_pk_`. Generar desde el portal
        con permiso `developer.manage_tokens`.

````