openapi: 3.0.3
info:
  title: BLACAMP Public API
  description: Public REST API for BLACAMP — Europe's outdoor adventure directory indexing over 46,000 verified campsites, RV camper areas, mountain routes, and outdoor businesses across 48 European countries.
  version: 1.0.0
  contact:
    name: BLACAMP Developer Relations
    email: info@blacamp.com
    url: https://blacamp.com/docs
servers:
  - url: https://blacamp.com
    description: Production Server
paths:
  /api/buscar:
    get:
      operationId: searchDirectory
      summary: Search campsites, RV areas and outdoor sports destinations
      description: Full-text multi-criteria search across 46,000+ European outdoor destinations.
      parameters:
        - name: q
          in: query
          description: Search query text
          required: false
          schema:
            type: string
            example: camping
        - name: pais
          in: query
          description: Two-letter ISO country code
          required: false
          schema:
            type: string
            example: es
        - name: limit
          in: query
          description: Maximum results to return
          required: false
          schema:
            type: integer
            default: 20
      responses:
        '200':
          description: List of matching outdoor destinations
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  resultados:
                    type: array
                    items:
                      $ref: '#/components/schemas/DestinationSummary'
  /api/explorar/sugerencias:
    get:
      operationId: autocompleteLocations
      summary: Autocomplete suggestions for locations, regions and activities
      description: Returns fast typeahead suggestions matching places and regions across Europe.
      parameters:
        - name: q
          in: query
          description: Prefix query term
          required: true
          schema:
            type: string
            example: cata
      responses:
        '200':
          description: Matching autocomplete items
components:
  schemas:
    DestinationSummary:
      type: object
      properties:
        id:
          type: string
          format: uuid
        nombre:
          type: string
        slug:
          type: string
        url:
          type: string
