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

# List Provider connection freshness

> Lists the Provider connections of this Workspace with how current their data is: connectionStatus, lastSyncAt, lastSyncStatus, and lastDataReceivedAt for a push connection. connectorSlug is the {connector} in providers.{connector}.{table}. A page holds at most limit connections, newest first: 50 by default, 100 at most. It stops before 40,000 characters, but it always holds one connection. To read the next page, send nextOffset as offset. The last page has no nextOffset.

> **[List Provider connection freshness](https://docs.parable.work/protocols/_generated/mcp/web-api/vendors#tool-list_connection_freshness)**
>
> `list_connection_freshness`


## OpenAPI

````yaml /protocols/_generated/openapi/web-api.json get /api/vendors/tenant-connector-freshness
openapi: 3.0.3
info:
  description: >-
    Use the Workspace API to work with artifacts, connectors, Parables, and
    account resources.
  title: Workspace API
  version: v2026.10.29.1
servers: []
security: []
paths:
  /api/vendors/tenant-connector-freshness:
    get:
      tags:
        - Vendors
      summary: List Provider connection freshness
      description: >-
        Lists the Provider connections of this Workspace with how current their
        data is: connectionStatus, lastSyncAt, lastSyncStatus, and
        lastDataReceivedAt for a push connection. connectorSlug is the
        {connector} in providers.{connector}.{table}. A page holds at most limit
        connections, newest first: 50 by default, 100 at most. It stops before
        40,000 characters, but it always holds one connection. To read the next
        page, send nextOffset as offset. The last page has no nextOffset.
      operationId: VendorsTenantConnectorFreshnessHandler
      parameters:
        - description: >-
            Workspace slug. Overrides subdomain-based workspace resolution when
            provided.
          in: header
          name: X-Tenant
          required: false
          schema:
            example: acme
            type: string
        - description: Optional request correlation ID echoed back in the response.
          in: header
          name: X-Request-ID
          required: false
          schema:
            example: 550e8400-e29b-41d4-a716-446655440000
            format: uuid
            type: string
        - in: query
          name: limit
          required: false
          schema:
            format: double
            maximum: 100
            minimum: 1
            type: number
        - in: query
          name: offset
          required: false
          schema:
            format: double
            minimum: 0
            type: number
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/TenantConnectorFreshnessPage'
                  links:
                    $ref: '#/components/schemas/ResponseLinks'
                  meta:
                    $ref: '#/components/schemas/ResponseMeta'
                required:
                  - data
                  - meta
                type: object
          description: Successful response
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: >-
            The request is not valid. `detail` says why. A value that breaks a
            field rule gives the code `WA-VL-001` and an `errors` member that
            names each field.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: The token is missing, malformed, revoked, or expired.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: >-
            The token cannot make this request. For example, the roles of its
            owner do not allow the operation.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '429':
          content:
            text/plain:
              schema:
                example: Too Many Requests
                type: string
          description: >-
            More than 100 requests a minute came from your address. Wait for the
            number of seconds in `Retry-After`, then try again.
          headers:
            Retry-After:
              description: The number of seconds to wait before you try again.
              schema:
                type: integer
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: The request failed on the server.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '504':
          content:
            text/plain:
              schema:
                example: Gateway Timeout
                type: string
          description: The operation did not finish in 30 seconds.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
      security:
        - bearerAuth: []
      x-codeSamples:
        - label: TypeScript SDK
          lang: typescript
          source: |-
            import { WebApiSDK } from "@parable-platform/web-api-sdk";

            const sdk = new WebApiSDK({
              baseUrl: process.env.PARABLE_API_URL!,
              auth: { token: process.env.PARABLE_API_TOKEN! },
              requestInterceptor: (config) => ({
                ...config,
                headers: { ...config.headers, "X-Tenant": process.env.PARABLE_WORKSPACE! },
              }),
            });

            const query = {};
            const result = await sdk.vendors.tenantConnectorFreshness(
              query
            );
        - label: Python SDK
          lang: python
          source: >-
            import os


            from parable_web_api_sdk import ClientConfig, WebApiSDK


            sdk = WebApiSDK(
                ClientConfig(
                    base_url=os.environ["PARABLE_API_URL"],
                    auth_token=os.environ["PARABLE_API_TOKEN"],
                    default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
                )
            )


            result = sdk.vendors.tenant_connector_freshness(limit=None,
            offset=None)
        - label: Rust SDK
          lang: rust
          source: >-
            use parable_web_api_sdk::{namespaces, ClientConfig, RequestOptions,
            WebApiSdk};


            let sdk = WebApiSdk::new(ClientConfig::with_base_url(
                std::env::var("PARABLE_API_URL")?,
                Some(std::env::var("PARABLE_API_TOKEN")?),
                None,
            ))?;

            let options = RequestOptions::with_header("X-Tenant",
            std::env::var("PARABLE_WORKSPACE")?, None, None);


            let query = namespaces::vendors::TenantConnectorFreshnessQueryParams
            {
                limit: None,
                offset: None,
            };

            let result = sdk.vendors.tenant_connector_freshness(
                Some(&query),
                Some(&options)
            ).await?;
        - label: Go SDK
          lang: go
          source: "sdk, err := webapisdk.New(webapisdk.SDKConfig{\n\tBaseURL: os.Getenv(\"PARABLE_API_URL\"),\n\tAuth:    &webapisdk.AuthConfig{Token: os.Getenv(\"PARABLE_API_TOKEN\")},\n\tRequestInterceptor: func(ctx context.Context, req *http.Request) error {\n\t\treq.Header.Set(\"X-Tenant\", os.Getenv(\"PARABLE_WORKSPACE\"))\n\t\treturn nil\n\t},\n})\nif err != nil {\n\treturn err\n}\n\nquery := &namespaces.VendorsTenantConnectorFreshnessQueryParams{}\nresult, err := sdk.VendorsNamespace.TenantConnectorFreshness(ctx, query)"
components:
  schemas:
    TenantConnectorFreshnessPage:
      description: One page of TenantConnectorFreshness.
      properties:
        connections:
          description: The connections of this page, newest first.
          items:
            $ref: '#/components/schemas/TenantConnectorFreshness'
          type: array
        nextOffset:
          description: The offset of the next page, or null when this page is the last.
          format: double
          nullable: true
          type: number
      required:
        - connections
      type: object
    ResponseLinks:
      properties:
        first:
          nullable: true
          type: string
        last:
          nullable: true
          type: string
        next:
          nullable: true
          type: string
        prev:
          nullable: true
          type: string
      type: object
    ResponseMeta:
      properties:
        requestId:
          description: Unique identifier for the request
          type: string
        totalCount:
          description: Total count of items for paginated responses
          nullable: true
          type: integer
      required:
        - requestId
      type: object
    ProblemDetails:
      description: An error response in the Problem Details format (RFC 9457).
      properties:
        code:
          description: The stable error code, when the problem has one.
          example: WA-VL-001
          type: string
        detail:
          description: What went wrong with this request.
          type: string
        details:
          description: >-
            Structured facts about the refusal, such as the entity or the path
            it concerns. Only some refusals have it.
        errors:
          description: >-
            The fields or filters that failed validation. Only a validation or
            filter error has it.
        requestId:
          description: >-
            The ID of the request, when the problem has one. The `X-Request-ID`
            response header always has it.
          type: string
        status:
          description: The HTTP status code.
          example: 400
          type: integer
        title:
          description: A short summary, usually the text of the HTTP status.
          example: Bad Request
          type: string
        type:
          description: >-
            The problem type. It is `about:blank`: the status and `code`
            identify the problem.
          example: about:blank
          type: string
      required:
        - type
        - title
        - status
        - detail
      type: object
    TenantConnectorFreshness:
      description: |-
        How current the data of one Provider connection is. It
        carries the status fields of TenantConnectorInstance and no Provider
        definition, grouping or authentication strategy, so a page of them stays
        small enough for an MCP host to read in one result.
      properties:
        connectionStatus:
          $ref: '#/components/schemas/TenantConnectorStatusEnum'
          description: >-
            Current status of the connection, as TenantConnectorInstance reports
            it.
        connectionStatusMessage:
          description: Human-readable message for connectionStatus.
          type: string
        connectorName:
          description: The Provider's display name.
          maxLength: 80
          minLength: 2
          type: string
        connectorSlug:
          description: >-
            The Provider's slug: the {connector} in
            providers.{connector}.{table}.
          maxLength: 32
          minLength: 1
          pattern: ^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$
          type: string
        id:
          description: The connection's id. read_why_sync_failed takes it.
          pattern: >-
            ^([0-9A-Za-z]{1,22}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
          type: string
        lastDataReceivedAt:
          description: >-
            When a push connection last received data. A push connection does
            not

            sync, so this is its freshness. Null for a pull connection, and for
            a

            push connection that no sender delivered to yet.
          format: date-time
          nullable: true
          type: string
        lastSyncAt:
          description: >-
            When the most recent sync ended. Null when the connection never
            synced.
          format: date-time
          nullable: true
          type: string
        lastSyncStatus:
          description: >-
            How the most recent sync ended. Null when the connection never
            synced.
          oneOf:
            - $ref: '#/components/schemas/SyncJobStatus'
            - enum:
                - null
              nullable: true
              type: string
        name:
          description: Label the Workspace gave the connection, when set.
          maxLength: 80
          minLength: 2
          nullable: true
          type: string
      required:
        - id
        - connectorSlug
        - connectorName
        - connectionStatus
        - connectionStatusMessage
      type: object
    TenantConnectorStatusEnum:
      description: Operational status of a workspace connector instance.
      enum:
        - disabled
        - sync_failed
        - manual_validation_required
        - validation_pending
        - initial_syncing
        - update_syncing
        - sync_queued
        - idle
        - sync_partial_success
        - transform_quality_degraded
        - schedule_paused
        - config_invalid
        - credential_error
        - internal_error
        - ingestion_stale
      type: string
    SyncJobStatus:
      description: Status of a sync job.
      enum:
        - pending
        - running
        - completed
        - failed
        - cancelled
        - partial_success
      type: string
  headers:
    X-Request-ID:
      description: >-
        The ID of the request. It is the `X-Request-ID` value that you sent, or
        an ID that the server made. Give it when you report a problem.
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      description: >-
        A personal access token, which starts with `pat_`. A Parable token can
        call each operation that the roles of its owner allow. An MCP token can
        call only the read operations that are open to agents. A SQL token does
        not work on this API.
      scheme: bearer
      type: http

````

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