openapi: 3.2.0 info: title: Relay External REST Search API version: 1.1.0 description: REST API for programmatic access to Relay CRM resources. servers: - url: https://your-domain.com/api/v1 description: Production security: - bearerAuth: [] tags: - name: Search paths: /search: get: summary: Search resources tags: - Search parameters: - name: q in: query required: true schema: type: string - name: types in: query schema: type: string description: 'Comma-separated: tickets,customers,articles' - name: limit in: query schema: type: integer minimum: 1 maximum: 50 responses: '200': description: Success content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/SearchResult' required: - data '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' operationId: getSearch x-operation-id-source: derived components: schemas: SearchResult: type: object additionalProperties: true ErrorResponse: type: object properties: error: type: object properties: code: type: string message: type: string details: {} required: - code - message required: - error securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: API Key