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

# Get API Roots

> Get information about available API roots and server capabilities.




## OpenAPI

````yaml /taxii/api.yaml get /taxii2
openapi: 3.0.3
info:
  title: Pulsedive TAXII API Reference
  version: 1.0.0
  description: >
    The Pulsedive TAXII endpoint lets you export indicators and threats using
    industry-standard STIX format.


    Please report any discrepancies in API behavior to <a
    href="mailto:support@pulsedive.com">Pulsedive Support</a>.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  contact:
    email: support@pulsedive.com
servers:
  - url: https://pulsedive.com
security: []
tags:
  - name: API Roots
    description: Get API roots.
  - name: Collections
    description: >-
      Collections contain the STIX objects you can download from Pulsedive's
      TAXII server.
  - name: Objects
    description: >-
      Objects are the individual STIX entities within a collection, such as
      indicators, threat actors, malware, and other intelligence artifacts.
externalDocs:
  url: https://docs.pulsedive.com
paths:
  /taxii2:
    get:
      tags:
        - API Roots
      summary: Get API Roots
      description: |
        Get information about available API roots and server capabilities.
      operationId: getAllAPIRoots
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
        - $ref: '#/components/parameters/AcceptQuery'
        - $ref: '#/components/parameters/Pretty'
      responses:
        '200':
          description: Successful request. Returns feed information in JSON format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRootResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - HTTP Basic Authorization: []
        - API Key in Query String: []
      x-codeSamples:
        - lang: curl
          label: Production
          source: |
            curl "https://pulsedive.com/taxii2" \
              -H "Accept: application/taxii+json;version=2.1" \
              -u "taxii2:<YOUR_API_KEY>"
        - lang: curl
          label: Testing
          source: >
            curl
            "https://pulsedive.com/taxii2?accept=application%2Ftaxii%2Bjson%3Bversion%3D2.1&key=<YOUR_API_KEY>"
components:
  parameters:
    AcceptHeader:
      name: Accept
      in: header
      required: false
      description: >
        Media type used for content negotiation. Use
        `application/taxii+json;version=2.1` for TAXII requests.


        Standard method required by the TAXII specification. Use in production
        environments.
      schema:
        type: string
    AcceptQuery:
      name: accept
      in: query
      required: true
      description: >
        Media type used for content negotiation. Use
        `application/taxii+json;version=2.1` for TAXII requests.


        Specific to Pulsedive's implementation. Best for testing and debugging,
        manual API exploration, and simple curl commands. For production
        deployments, use [HTTP Accept
        Header](/taxii/versioning#http-accept-header).
      schema:
        type: string
    Pretty:
      name: pretty
      in: query
      required: false
      description: |
        Indicates whether to format returned JSON results.

        For pretty-printed output, set to 1.
        For compact output, set to 0.
      schema:
        type: integer
        enum:
          - 0
          - 1
        default: 0
      examples:
        compact:
          summary: Compact output
          value: 0
        pretty:
          summary: Pretty-printed output
          value: 1
  schemas:
    APIRootResponse:
      type: object
      properties:
        title:
          type: string
          description: Name of the server.
        description:
          type: string
          description: Description of the server.
        contact:
          type: string
          description: Contact for the server.
        default:
          type: string
          description: API root that you should query by default.
        api_roots:
          type: array
          description: List of available API roots.
          items:
            type: string
      example:
        title: Pulsedive TAXII Server
        description: This TAXII server can be used to fetch Pulsedive data in STIX format.
        contact: support@pulsedive.com
        default: https://pulsedive.com/taxii2/api/
        api_roots:
          - https://pulsedive.com/taxii2/api/
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Message describing the error that occurred, if available.
  responses:
    BadRequest:
      description: |
        Bad request. The request was malformed or missing required parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: |
        Unauthorized. Your API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: |
        Not found. The requested indicator could not be located.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: >
        Rate limit exceeded. Too many requests have been made in a short period
        of time.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: |
        Server error. An unexpected problem occurred on our end.
        These errors are automatically reported to our team.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    HTTP Basic Authorization:
      type: http
      scheme: basic
      description: >
        Encode your credentials in the format `taxii2:<YOUR_API_KEY>` using
        Base64 and include them in the `Authorization` header. An API key is
        required for all requests.


        Some tools require a username and password separately. Use `taxii2` as
        the username and your API key as the password. The client will
        automatically encode this as `taxii2:<YOUR_API_KEY>` and convert to
        Base64.


        If using **Try It**: Use the username/password method for HTTP Basic
        Authorization.
    API Key in Query String:
      type: apiKey
      in: query
      name: key
      description: >
        Include your API key as a query parameter. An API key is required for
        all requests.


        Specific to Pulsedive's implementation. Best for testing and debugging,
        manual API exploration, and simple curl commands. For production, use
        [HTTP Basic
        Authorization](/taxii/authentication#http-basic-authorization).

````