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

# List modules

> Return listed OSINT modules with their IDs, catalog metadata, pagination, featured modules, and aggregations. Requires a bearer API key.



## OpenAPI

````yaml /api-reference/openapi.json get /modules
openapi: 3.1.0
info:
  title: Osintly API
  version: 1.0.0
  description: OpenAPI specification for the Osintly API service.
  contact:
    name: Osintly
    url: https://docs.osint.ly/api-reference/quick-start
servers:
  - url: https://api.osint.ly
    description: Production
security: []
tags:
  - name: System
    description: Health and service checks
  - name: Auth
    description: Authorization validation
  - name: Search
    description: Create, monitor and retrieve search results
  - name: Usage
    description: Rate limit and usage information
  - name: Radar
    description: Breach intelligence endpoints (free with API key)
  - name: Webhooks
    description: Webhook callback payloads configured from search creation
paths:
  /modules:
    get:
      tags:
        - Search
      summary: List modules
      description: >-
        Return listed OSINT modules with their IDs, catalog metadata,
        pagination, featured modules, and aggregations. Requires a bearer API
        key.
      operationId: listModules
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 10000
            default: 1
          description: Page number
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 250
            default: 250
          description: Number of modules to return per page
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/ModulesSortBy'
          description: Sort order for the module list
        - name: fields
          in: query
          required: false
          schema:
            type: string
            enum:
              - preview
          description: >-
            Use `preview` to return the compact module payload used by catalog
            UIs
        - name: search
          in: query
          required: false
          schema:
            type: string
            maxLength: 120
          description: Search term matched against module name, type, description, and tags
        - name: searchType
          in: query
          required: false
          schema:
            type: string
            maxLength: 80
            default: All
            example: Pseudonym
          description: Filter by module search type, or `All` for all types
        - name: category
          in: query
          required: false
          schema:
            type: string
            maxLength: 80
            default: All
            example: Social Media
          description: Filter by catalog category, or `All` for all categories
        - name: featuredOnly
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: When true, return only featured modules
      responses:
        '200':
          description: Module catalog page
          headers:
            Cache-Control:
              schema:
                type: string
                example: public, s-maxage=60, stale-while-revalidate=300
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModulesCatalogResponse'
              examples:
                preview:
                  value:
                    aggregations:
                      categories:
                        Social Media: 42
                        Data Enrichment: 18
                      featuredCount: 12
                      searchTypes:
                        Pseudonym: 60
                        Email Address: 8
                      totalCount: 68
                    featuredModules:
                      - description: >-
                          GitHub is a web-based platform for software
                          development and version control using Git.
                        featured: true
                        id: ba35f66f-1a28-412a-a334-2ddf51fb2d56
                        installs: 15
                        logo: https://logos.osint.ly/github.com
                        name: Github
                        slug: github
                        type: Pseudonym
                    items:
                      - description: >-
                          GitHub is a web-based platform for software
                          development and version control using Git.
                        featured: true
                        id: ba35f66f-1a28-412a-a334-2ddf51fb2d56
                        installs: 15
                        logo: https://logos.osint.ly/github.com
                        name: Github
                        slug: github
                        type: Pseudonym
                    modules:
                      - description: >-
                          GitHub is a web-based platform for software
                          development and version control using Git.
                        featured: true
                        id: ba35f66f-1a28-412a-a334-2ddf51fb2d56
                        installs: 15
                        logo: https://logos.osint.ly/github.com
                        name: Github
                        slug: github
                        type: Pseudonym
                    pagination:
                      hasNext: true
                      hasPrevious: false
                      limit: 12
                      page: 1
                      total: 68
                      totalPages: 6
                    total: 68
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/SearchApiError'
      security:
        - bearerAuth: []
components:
  schemas:
    ModulesSortBy:
      type: string
      default: popular
      enum:
        - popular
        - usage-desc
        - usage-asc
        - recent
        - name-asc
        - name-desc
        - rating
    ModulesCatalogResponse:
      type: object
      required:
        - aggregations
        - featuredModules
        - items
        - modules
        - pagination
        - total
      properties:
        aggregations:
          $ref: '#/components/schemas/ModulesAggregations'
        featuredModules:
          type: array
          items:
            $ref: '#/components/schemas/ModulesCatalogItem'
        items:
          type: array
          items:
            $ref: '#/components/schemas/ModulesCatalogItem'
        modules:
          type: array
          items:
            $ref: '#/components/schemas/ModulesCatalogItem'
          description: Alias of `items` for clients that expect a module list property
        pagination:
          $ref: '#/components/schemas/ModulesPagination'
        total:
          type: integer
          minimum: 0
      additionalProperties: false
    ModulesAggregations:
      type: object
      required:
        - categories
        - featuredCount
        - searchTypes
        - totalCount
      properties:
        categories:
          type: object
          additionalProperties:
            type: integer
          description: Module count by category after applying compatible filters
        featuredCount:
          type: integer
        searchTypes:
          type: object
          additionalProperties:
            type: integer
          description: Module count by search type after applying compatible filters
        totalCount:
          type: integer
      additionalProperties: false
    ModulesCatalogItem:
      type: object
      required:
        - id
        - name
        - slug
        - type
      properties:
        id:
          type: string
          format: uuid
          description: Module UUID
        name:
          type: string
        slug:
          type: string
          description: URL-safe module slug
        description:
          type: string
        type:
          type: string
          description: Search type supported by the module
          example: Pseudonym
        logo:
          type: string
          description: Logo URL, or an empty string when unavailable
        featured:
          type: boolean
        installs:
          type: integer
          minimum: 0
        categories:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Returned in full mode
        tags:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Returned in full mode. Internal execution tags are removed.
        rating:
          type: number
          description: Returned in full mode when available
        updatedAt:
          type: string
          format: date-time
          description: Returned in full mode
        version:
          type: integer
          description: Returned in full mode
      additionalProperties: false
    ModulesPagination:
      type: object
      required:
        - hasNext
        - hasPrevious
        - limit
        - page
        - total
        - totalPages
      properties:
        hasNext:
          type: boolean
        hasPrevious:
          type: boolean
        limit:
          type: integer
          minimum: 1
          maximum: 250
        page:
          type: integer
          minimum: 1
        total:
          type: integer
          minimum: 0
        totalPages:
          type: integer
          minimum: 0
      additionalProperties: false
    ValidationErrorResponse:
      type: object
      required:
        - error
        - meta
      properties:
        error:
          type: object
          required:
            - code
            - message
            - details
          properties:
            code:
              type: string
              enum:
                - VALIDATION_ERROR
            message:
              type: string
              enum:
                - Invalid request parameters
            details:
              type: array
              items:
                $ref: '#/components/schemas/ValidationIssue'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
    BasicErrorResponse:
      type: object
      required:
        - success
        - message
      properties:
        success:
          type: boolean
          enum:
            - false
        message:
          type: string
      additionalProperties: true
    SearchApiErrorResponse:
      type: object
      required:
        - error
        - meta
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
            details:
              oneOf:
                - type: string
                - type: array
                  items:
                    $ref: '#/components/schemas/ValidationIssue'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
    ValidationIssue:
      type: object
      required:
        - path
        - message
      properties:
        path:
          type: string
        message:
          type: string
    ResponseMeta:
      type: object
      required:
        - timestamp
      properties:
        environment:
          type: string
        timestamp:
          type: string
          format: date-time
  responses:
    ValidationError:
      description: Request validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorResponse'
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BasicErrorResponse'
          examples:
            unauthorized:
              value:
                success: false
                message: Unauthorized
    SearchApiError:
      description: Search API error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SearchApiErrorResponse'
          examples:
            validation_error:
              value:
                error:
                  code: VALIDATION_ERROR
                  message: Invalid request parameters
                  details:
                    - path: query.value
                      message: query.value must be a valid email
                meta:
                  timestamp: '2026-05-27T12:00:00.000Z'
            rate_limited:
              value:
                error:
                  code: RATE_LIMIT_EXCEEDED
                  message: Rate limit exceeded
                  details: API usage limits have been reached
                meta:
                  environment: production
                  timestamp: '2026-05-27T12:00:00.000Z'
            run_not_found:
              value:
                error:
                  code: RUN_NOT_FOUND
                  message: Search run not available
                  details: No active run is associated with this search
                meta:
                  environment: production
                  timestamp: '2026-05-27T12:00:00.000Z'
            leak_source_not_found:
              value:
                error:
                  code: LEAK_SOURCE_NOT_FOUND
                  message: Leak source not found
                  details: No leaked results source matches 'unknown-source'
                meta:
                  environment: production
                  timestamp: '2026-05-27T12:00:00.000Z'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key

````