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

# List functions

> Returns the functions available to an integration, including Nango catalog tools when available. Requires an API key with the `environment:functions:list` scope.

> [!NOTE]
>
> Requires an API key with the `environment:functions:list` scope. [Learn more about API key scopes](https://nango.dev/docs/reference/backend/http-api/api-keys.md#scopes).

Returns the functions available to an integration.

Catalog tool entries have `source: "tools-catalog"`, `enabled: true`, `id: null`, and `last_deployed: null`.


## OpenAPI

````yaml GET /integrations/{uniqueKey}/functions
openapi: 3.1.0
info:
  title: Nango API
  description: Nango API specs used to authorize & sync data with external APIs.
  version: 1.0.0
servers:
  - url: https://api.nango.dev
    description: Production server
  - url: http://localhost:3003
    description: Local server
security:
  - bearerAuth: []
externalDocs:
  url: https://nango.dev/docs/reference/backend/http-api/authentication
paths:
  /integrations/{uniqueKey}/functions:
    get:
      summary: List functions
      description: >-
        Returns the functions available to an integration, including Nango
        catalog tools when available. Requires an API key with the
        `environment:functions:list` scope.
      parameters:
        - name: uniqueKey
          in: path
          required: true
          schema:
            type: string
          description: The integration ID (unique_key) that you created in Nango.
        - name: type
          in: query
          required: false
          schema:
            type: string
            enum:
              - sync
              - on-event
              - tool
          description: Filter by function type.
        - name: search
          in: query
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 255
          description: Case-insensitive filter on the function name.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            default: 0
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
      responses:
        '200':
          description: Successfully returned the integration's functions
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - pagination
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ListedNangoFunction'
                  pagination:
                    type: object
                    required:
                      - total
                      - page
                      - limit
                    properties:
                      total:
                        type: integer
                      page:
                        type: integer
                      limit:
                        type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    ListedNangoFunction:
      description: >-
        A listed function (sync, deprecated action, on-event, or tool) merged
        with its availability metadata.
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/NangoSyncFunction'
            - $ref: '#/components/schemas/FunctionAvailability'
        - allOf:
            - $ref: '#/components/schemas/NangoActionFunction'
            - $ref: '#/components/schemas/FunctionAvailability'
        - allOf:
            - $ref: '#/components/schemas/NangoOnEventFunction'
            - $ref: '#/components/schemas/FunctionAvailability'
        - allOf:
            - $ref: '#/components/schemas/NangoToolFunction'
            - $ref: '#/components/schemas/FunctionAvailability'
    NangoSyncFunction:
      type: object
      required:
        - name
        - type
        - returns
        - json_schema
        - runs
        - auto_start
        - track_deletes
      properties:
        name:
          type: string
        description:
          type: string
        scopes:
          type: array
          items:
            type: string
        type:
          type: string
          enum:
            - sync
        input:
          type: string
        returns:
          type: array
          items:
            type: string
        json_schema:
          type:
            - object
            - 'null'
        runs:
          type:
            - string
            - 'null'
          description: Schedule expression, e.g. `every day`.
        auto_start:
          type: boolean
        track_deletes:
          type: boolean
    FunctionAvailability:
      type: object
      description: >-
        Availability metadata attached to a listed function. Catalog tools have
        `id: null`, `last_deployed: null`, `enabled: true`, and `source:
        tools-catalog`. Deployed functions have an id and a `last_deployed`
        timestamp.
      required:
        - id
        - enabled
        - last_deployed
        - source
      properties:
        id:
          type:
            - number
            - 'null'
          description: >-
            Deployed function id. `null` for a Nango catalog tool and for a
            tool, which is identified by its `uuid`.
        enabled:
          type: boolean
          description: >-
            Whether the function is enabled. Always `true` for deprecated action
            definitions, including a deployed action whose stored configuration
            is disabled. Syncs, on-event functions, and tools report the stored
            value.
        last_deployed:
          type:
            - string
            - 'null'
          format: date-time
          description: ISO-8601 timestamp. `null` for a Nango catalog tool.
        source:
          type: string
          enum:
            - catalog
            - standalone
            - repo
            - tools-catalog
          description: >-
            `tools-catalog` is a Nango catalog tool that has not been deployed.
            `catalog`, `standalone`, and `repo` are deployed functions.
    NangoActionFunction:
      type: object
      deprecated: true
      description: >-
        Deprecated action definition format, also used by some catalog tools.
        Use createTool for new custom implementations.
      required:
        - name
        - type
        - returns
        - json_schema
      properties:
        name:
          type: string
        description:
          type: string
        scopes:
          type: array
          items:
            type: string
        type:
          type: string
          enum:
            - action
        input:
          type: string
        returns:
          type: array
          items:
            type: string
        json_schema:
          type:
            - object
            - 'null'
    NangoOnEventFunction:
      type: object
      required:
        - name
        - type
        - event
      properties:
        name:
          type: string
        description:
          type: string
        scopes:
          type: array
          items:
            type: string
        type:
          type: string
          enum:
            - on-event
        event:
          type: string
          enum:
            - post-connection-creation
            - pre-connection-deletion
            - validate-connection
    NangoToolFunction:
      type: object
      description: An HTTP-triggered function with resolved input and output schemas.
      required:
        - name
        - type
        - uuid
        - integration_id
        - provider
        - description
        - input_json_schema
        - output_json_schema
        - meta
      properties:
        name:
          type: string
        type:
          type: string
          enum:
            - tool
        uuid:
          type: string
          format: uuid
        integration_id:
          type: string
        provider:
          type: string
        description:
          type: string
        input_json_schema:
          type:
            - object
            - 'null'
          description: >-
            Input JSON Schema with its referenced definitions, or null when
            absent or unresolved.
        output_json_schema:
          type:
            - object
            - 'null'
          description: >-
            Output JSON Schema with its referenced definitions, or null when
            absent or unresolved.
        meta:
          type: object
          required:
            - tags
          properties:
            instructions:
              type: string
            required_scopes:
              description: Provider scopes the tool needs. Absent when unknown.
              oneOf:
                - type: object
                  description: Every listed scope is required.
                  required:
                    - all
                  additionalProperties: false
                  properties:
                    all:
                      type: array
                      minItems: 1
                      items:
                        type: string
                - type: object
                  description: At least one listed scope is required.
                  required:
                    - any
                  additionalProperties: false
                  properties:
                    any:
                      type: array
                      minItems: 1
                      items:
                        type: string
                - type: object
                  description: No scopes are required.
                  required:
                    - none
                  additionalProperties: false
                  properties:
                    none:
                      type: boolean
                      enum:
                        - true
            tags:
              type: object
              additionalProperties:
                oneOf:
                  - type: string
                  - type: array
                    items:
                      type: string
    StdError:
      type: object
      additionalProperties: false
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
          properties:
            code:
              type: string
            message:
              type: string
            errors:
              type: array
              items:
                type: object
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StdError'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StdError'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StdError'
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StdError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An Environment API key from your Nango environment, or an Account API
        key for account-level endpoints.

````

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