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

# Search OSHA narratives

> Full-text search of the narratives in case details, severe injury reports and accident investigations: what happened, the injury and the object or substance. Most relevant first, with highlighted snippets and the path of each full row. Pass employerId to search one employer. Pages stop after 1,000 results. Needs the OSHA dataset enabled for your organization. Read-only; private, no-store. 



## OpenAPI

````yaml /openapi.json get /insurance/osha/search
openapi: 3.0.3
info:
  title: Effective API
  version: 2.0.0
  description: The public Effective REST API. Authenticate using an Effective API key.
servers:
  - url: https://api.canary.effectiveai.app/api/v2
    description: Canary
security:
  - bearerAuth: []
paths:
  /insurance/osha/search:
    get:
      tags:
        - OSHA
      summary: Search OSHA narratives
      description: >-
        Full-text search of the narratives in case details, severe injury
        reports and accident investigations: what happened, the injury and the
        object or substance. Most relevant first, with highlighted snippets and
        the path of each full row. Pass employerId to search one employer. Pages
        stop after 1,000 results. Needs the OSHA dataset enabled for your
        organization. Read-only; private, no-store. 
      operationId: searchOshaNarratives
      parameters:
        - schema:
            type: string
            minLength: 2
            maxLength: 300
            description: >-
              Words to find, as in a web search: quotes for a phrase, - to
              exclude a word, or for either word.
          required: true
          description: >-
            Words to find, as in a web search: quotes for a phrase, - to exclude
            a word, or for either word.
          name: query
          in: query
        - schema:
            type: string
            pattern: ^emp_[0-9a-f]{20}$
            description: Only this employer’s narratives.
          required: false
          description: Only this employer’s narratives.
          name: employerId
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: Maximum number of items to return (1-100).
          required: false
          description: Maximum number of items to return (1-100).
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            maxLength: 8192
            description: >-
              Opaque nextCursor from this operation. Repeat every other query
              parameter unchanged; a cursor from a different query returns
              invalid_cursor.
          required: false
          description: >-
            Opaque nextCursor from this operation. Repeat every other query
            parameter unchanged; a cursor from a different query returns
            invalid_cursor.
          name: cursor
          in: query
      responses:
        '200':
          description: One page of matches.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2OshaSearchResults'
        '400':
          description: >-
            invalid_request for invalid, unknown or repeated inputs;
            invalid_cursor means restart the list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '403':
          description: >-
            dataset_not_enabled: the OSHA dataset is not enabled for this
            organization. Other credential restrictions use forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '404':
          description: 'not_found: no such employer, site or OSHA row.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '500':
          description: Unexpected server failure.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '503':
          description: A dependency is unavailable; respect Retry-After.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
      security:
        - bearerAuth: []
components:
  schemas:
    V2OshaSearchResults:
      type: object
      properties:
        results:
          type: array
          items:
            type: object
            properties:
              resource:
                type: string
                enum:
                  - case-details
                  - severe-injury-reports
                  - accidents
                description: Which OSHA resource the narrative belongs to.
              rowId:
                type: string
                description: ID of the row within that resource.
              title:
                type: string
              snippet:
                type: string
                description: Matching passages, with matched words in **bold**.
              date:
                type: string
                nullable: true
                description: Incident or event date, YYYY-MM-DD.
              employerId:
                type: string
                nullable: true
                pattern: ^emp_[0-9a-f]{20}$
                description: 'Effective employer ID: emp_ followed by 20 hex characters.'
              siteId:
                type: string
                nullable: true
                pattern: ^site_[0-9a-f]{20}$
                description: 'Effective site ID: site_ followed by 20 hex characters.'
              path:
                type: string
                description: API path, relative to /api/v2, of the full OSHA row.
            required:
              - resource
              - rowId
              - title
              - snippet
              - date
              - employerId
              - siteId
              - path
        nextCursor:
          type: string
          nullable: true
          description: Cursor for the next page, or null on the last page.
      required:
        - results
        - nextCursor
    V2CodedError:
      allOf:
        - $ref: '#/components/schemas/V2Error'
        - type: object
          properties:
            code:
              type: string
              minLength: 1
              description: Stable error code. Clients must tolerate unknown future codes.
            details:
              type: array
              items:
                type: object
                properties:
                  location:
                    type: string
                    enum:
                      - path
                      - query
                      - header
                      - body
                  path:
                    type: array
                    items:
                      type: string
                      maxLength: 64
                    maxItems: 12
                  code:
                    type: string
                    enum:
                      - required
                      - invalid_type
                      - invalid_value
                      - unknown_field
                  message:
                    type: string
                    minLength: 1
                    maxLength: 200
                required:
                  - location
                  - path
                  - code
                  - message
              minItems: 1
              maxItems: 20
              description: Bounded safe validation issues; may omit some invalid fields.
            requestId:
              type: string
              minLength: 1
              maxLength: 128
              description: >-
                Existing server correlation for this HTTP attempt, when
                available.
            dataset:
              type: string
              enum:
                - naic
                - osha
              description: Dataset needed for dataset_not_enabled.
            accessUrl:
              type: string
              nullable: true
              format: uri
              description: >-
                Where to add the product to your account, for
                product_access_required.
          required:
            - code
    V2Error:
      type: object
      properties:
        error:
          type: string
          minLength: 1
          description: Human-readable explanation of the failure.
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Effective API key. Send Authorization: Bearer sk-eai-...'

````

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