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

# Check the health of your automations

> One verdict per active scheduled or event task you can see, from its real runs in the window: `delete` (its last 5 runs all failed or went undelivered), `consolidate` (same instructions and trigger as an earlier task, named in `duplicate_of`), `add_condition` (runs more than 6 times a day and at least 70% of runs find nothing), `run_less_often` (runs more than daily and at least half find nothing), `switch_model` (a quality-tier task that mostly finds nothing), or `keep`. Each carries the monthly credits it is projected to spend, what the verdict would save, and how many of its latest runs failed in a row with the last error, plus the integrations that need reconnecting and their reconnect links. Read-only: nothing is changed. Report the verdicts and let the owner decide.



## OpenAPI

````yaml /developer/api-reference/openapi.json get /tasks/health
openapi: 3.1.1
info:
  title: Crevio API V1
  version: 1.0.0
  description: >
    API for the Crevio creator platform — a multi-tenant SaaS for digital
    product sales.

    Uses snake_case keys following Stripe conventions. All resource IDs are
    string IDs (e.g., "prod_abc123").


    Authentication is a bearer token: `Authorization: Bearer $CREVIO_API_KEY`.

    List endpoints are cursor-paginated with `limit` and `starting_after`.

    Writes accept an `Idempotency-Key` header and are safe to retry.


    Every response carries IETF RateLimit headers (`RateLimit`,
    `RateLimit-Policy`) so a client can

    self-throttle, and `Retry-After` on a 429. The quota is 600 requests per
    minute per credential.


    The API is versioned in the URL path (`/v1`). Nothing is removed without
    in-band warning: a

    deprecated operation is marked `"deprecated": true` here and serves
    `Deprecation` (RFC 9745),

    `Sunset` (RFC 8594) and `Link; rel="deprecation"` headers for at least six
    months before it

    stops answering. See https://crevio.co/docs/developer/guides/versioning.
  contact:
    email: support@crevio.co
    name: Crevio Support
    url: https://crevio.co/docs
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: https://crevio.co/legal/terms-of-service
servers:
  - url: https://api.crevio.co/v1
    description: Production
security:
  - ApiKey: []
tags:
  - name: Account
    description: Current account information
  - name: Bots
    description: >-
      Named bot identities (persona, skills, toolsets) chats and tasks can run
      as
  - name: Analytics
    description: Account-wide business analytics
  - name: BlogCategories
    description: Blog post categories
  - name: BlogPosts
    description: Blog content management
  - name: Broadcasts
    description: One-to-many email sending
  - name: Sequences
    description: Timed email series people move through one step at a time
  - name: CheckoutLinks
    description: Shareable checkout links
  - name: CheckoutConfiguration
    description: Account-wide checkout settings
  - name: Checkouts
    description: Checkout session management
  - name: Customers
    description: Customer relationship management
  - name: Discounts
    description: Discount code management
  - name: Experiences
    description: Digital experiences (courses, communities, downloads)
  - name: Files
    description: File uploads and external media management
  - name: FormSubmissions
    description: Form submission management
  - name: FormationDocuments
    description: Documents generated for a formation
  - name: Formations
    description: Whitelabel business formation via doola Partner API
  - name: Forms
    description: Hosted forms that capture leads and submissions
  - name: Invoices
    description: Invoice creation, payment, and lifecycle management
  - name: LegalPages
    description: Terms, privacy and refund pages for the storefront
  - name: Me
    description: Current user profile
  - name: OrderItems
    description: Order line items
  - name: Orders
    description: Order history and details
  - name: PriceVariants
    description: Product pricing tiers
  - name: Products
    description: Digital product catalog
  - name: Refunds
    description: Refund management
  - name: Reviews
    description: Product reviews
  - name: Socials
    description: Social media management (accounts, posts, media).
  - name: Subscriptions
    description: Subscription lifecycle management (cancel, pause, resume)
  - name: Tags
    description: Customer tags
  - name: TaskRuns
    description: Individual execution records for AI tasks.
  - name: Tasks
    description: >-
      AI tasks — scheduled or event-triggered agentic work (cron, interval,
      once, immediate, event).
  - name: WebhookEndpoints
    description: Webhook endpoint management
  - name: WebhookEvents
    description: Webhook event delivery history
  - name: Leads
    description: Find, verify and enrich business leads (Hunter.io-backed).
  - name: Ads
    description: >-
      Paid advertising — campaigns, ad groups, ads, audiences, targeting, leads,
      conversions, and reports across Meta, Google, TikTok, LinkedIn, Pinterest,
      and X.
  - name: Domains
    description: Custom web domains for your sites.
  - name: Web
    description: >-
      Web search & scraping (search, read, map, crawl, extract, research),
      backed by Firecrawl.
  - name: Skills
    description: >-
      AI skills marketplace — search the catalog and install or uninstall skills
      for your account's agent.
  - name: Schedules
    description: Reusable availability schedules that back event types.
  - name: EventTypes
    x-displayName: Event Types
    description: Bookable services customers can schedule time on.
  - name: Bookings
    description: Reservations made against event types.
  - name: Waitlist Entries
    description: Buyers waiting for approval on price variants that require it.
  - name: Connections
    description: Third-party app connections (connect, list, execute)
  - name: Approvals
    description: Human-in-the-loop approvals for gated actions
  - name: Logs
    description: Account activity log
  - name: Access
    description: Per-user access checks for gated resources
  - name: ApiKeys
    description: API key management
  - name: Audio
    description: AI audio generation
  - name: Calls
    description: Outbound phone calls placed by the account's agent
  - name: Chapters
    description: Course chapters
  - name: Deployments
    description: Site deployments and build logs
  - name: Email
    description: Inboxes, threads, messages, drafts and delivery events
  - name: Email Suppressions
    description: Addresses no send path will deliver to
  - name: EventSessions
    description: Scheduled sessions of an event experience
  - name: EventSources
    description: Third-party event sources that trigger tasks
  - name: Events
    description: Events an account can subscribe to
  - name: ForumPosts
    description: Posts inside a forum experience
  - name: Images
    description: AI image generation, editing and stock search
  - name: Jobs
    description: Long-running asynchronous jobs
  - name: Lessons
    description: Lessons inside a course chapter
  - name: LinkItems
    description: Links inside a link-in-bio experience
  - name: Phone Consents
    description: Recorded consent to place calls to a number
  - name: Phone Numbers
    description: Phone numbers provisioned for the account
  - name: Phone Suppressions
    description: Do-not-call entries
  - name: Sites
    description: AI-built sites — storefronts and web apps
  - name: Status
    description: API and account status
  - name: Topics
    description: Discussion topics inside a forum experience
  - name: Plans
    description: The plans Crevio sells, their credit tiers, prices and limits.
  - name: Usage
    description: Credit usage and transaction history
  - name: Users
    description: Users of the account
  - name: Video
    description: AI video generation
  - name: Secrets
    description: Account-level environment variables shared across the account's sites
  - name: Billing Portal
    description: Hosted billing pages for your customers
  - name: Data
    description: >-
      Included business data: search the tool catalog, then run a tool
      (website/SEO, people, companies, local businesses, social, e-commerce,
      finance, jobs, reviews, ads, real estate, news, apps, travel, weather,
      legal).
  - name: Chats
    description: Delegate work to the Crevio agent and read its replies
  - name: ScriptRuns
    description: Run JavaScript on the account's computer, without an agent turn
  - name: Artifacts
    description: Download files that runs and scripts produced
  - name: Pages
    description: Self-contained HTML pages hosted at a stable link
  - name: Team
    description: Members, roles, credit limits and invitations
  - name: Allowed Senders
    description: Who the agent's inbox answers
  - name: SMS messages
    description: Texts on business phone lines.
  - name: SMS follow-ups
    description: >-
      Texting new leads and past customers until they answer. The email
      counterpart is Sequences.
externalDocs:
  description: Crevio developer documentation
  url: https://crevio.co/docs/developer
paths:
  /tasks/health:
    get:
      tags:
        - Tasks
      summary: Check the health of your automations
      description: >-
        One verdict per active scheduled or event task you can see, from its
        real runs in the window: `delete` (its last 5 runs all failed or went
        undelivered), `consolidate` (same instructions and trigger as an earlier
        task, named in `duplicate_of`), `add_condition` (runs more than 6 times
        a day and at least 70% of runs find nothing), `run_less_often` (runs
        more than daily and at least half find nothing), `switch_model` (a
        quality-tier task that mostly finds nothing), or `keep`. Each carries
        the monthly credits it is projected to spend, what the verdict would
        save, and how many of its latest runs failed in a row with the last
        error, plus the integrations that need reconnecting and their reconnect
        links. Read-only: nothing is changed. Report the verdicts and let the
        owner decide.
      operationId: getTaskHealth
      parameters:
        - name: window_days
          in: query
          description: How many days of runs to judge from, 7 to 90. Defaults to 30.
          schema:
            type: integer
            minimum: 7
            maximum: 90
      responses:
        '200':
          description: The checkup report.
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                      - task_health
                  window_days:
                    type: integer
                  generated_at:
                    type: string
                    format: date-time
                  tasks:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Task id (task_...)
                        name:
                          type: string
                        trigger_type:
                          type: string
                        cron_expression:
                          type:
                            - string
                            - 'null'
                        event_type:
                          type:
                            - string
                            - 'null'
                        model_id:
                          type:
                            - string
                            - 'null'
                        runs:
                          type: object
                          description: >-
                            Real runs in the window: executed (not skipped),
                            completed, silent (completed and delivered nothing
                            on a task that delivers), and skipped occurrences.
                          properties:
                            executed:
                              type: integer
                            completed:
                              type: integer
                            silent:
                              type: integer
                            skipped:
                              type: integer
                          required:
                            - executed
                            - completed
                            - silent
                            - skipped
                        credits_in_window:
                          type: integer
                          description: Credits the task's runs consumed in the window.
                        runs_per_day:
                          type: number
                          description: >-
                            Executed runs a day at the current schedule and skip
                            rate (observed rate for event tasks).
                        projected_monthly_credits:
                          type:
                            - integer
                            - 'null'
                          description: >-
                            Credits the task will spend in 30 days at its
                            observed cost per run. Null when no run in the
                            account has a cost to project from.
                        estimated:
                          type: boolean
                          description: >-
                            True when the task had no runs in the window and its
                            projection uses the account's average cost per run.
                        verdict:
                          type: string
                          enum:
                            - delete
                            - consolidate
                            - add_condition
                            - run_less_often
                            - switch_model
                            - keep
                        reason:
                          type: string
                          description: >-
                            One sentence explaining the verdict from the
                            observed runs.
                        saving_low:
                          type:
                            - integer
                            - 'null'
                          description: >-
                            Conservative monthly credit saving if the verdict is
                            applied. Null when it cannot be estimated
                            (switch_model).
                        saving_high:
                          type:
                            - integer
                            - 'null'
                          description: >-
                            Optimistic monthly credit saving if the verdict is
                            applied. Null when it cannot be estimated
                            (switch_model).
                        duplicate_of:
                          type:
                            - string
                            - 'null'
                          description: >-
                            For `consolidate`: the earlier task (task_...) with
                            the same instructions and trigger.
                        consecutive_failures:
                          type: integer
                          description: >-
                            How many of its latest runs failed in a row; 0 once
                            a run succeeds.
                        last_error:
                          type:
                            - string
                            - 'null'
                          description: >-
                            The error of its latest failed run, while it is
                            still failing (`consecutive_failures` above 0). Null
                            otherwise.
                      required:
                        - id
                        - name
                        - trigger_type
                        - cron_expression
                        - event_type
                        - model_id
                        - runs
                        - credits_in_window
                        - runs_per_day
                        - projected_monthly_credits
                        - estimated
                        - verdict
                        - reason
                        - saving_low
                        - saving_high
                        - duplicate_of
                        - consecutive_failures
                        - last_error
                  totals:
                    type: object
                    properties:
                      projected_monthly_credits:
                        type: integer
                      saving_low:
                        type: integer
                      saving_high:
                        type: integer
                    required:
                      - projected_monthly_credits
                      - saving_low
                      - saving_high
                  broken_integrations:
                    type: array
                    description: >-
                      Connections that stopped working; every task using them
                      fails until they are reconnected.
                    items:
                      type: object
                      properties:
                        app:
                          type: string
                        label:
                          type: string
                        status:
                          type: string
                          enum:
                            - error
                            - reconnect_required
                        reconnect_url:
                          type: string
                          format: uri
                          description: >-
                            Opens the reconnect flow for this connection in one
                            click.
                      required:
                        - app
                        - label
                        - status
                        - reconnect_url
                required:
                  - object
                  - window_days
                  - generated_at
                  - tasks
                  - totals
                  - broken_integrations
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - ApiKey: []
      x-codeSamples:
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            import { Crevio } from "@crevio/sdk";

            const crevio = new Crevio({
              apiKey: process.env["CREVIO_API_KEY"] ?? "",
            });

            async function run() {
              const result = await crevio.tasks.health();

              console.log(result);
            }

            run();
components:
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: invalid_request_error
              code: bad_request
              message: The request was malformed or contained invalid parameters
      headers:
        RateLimit:
          $ref: '#/components/headers/RateLimit'
        RateLimit-Policy:
          $ref: '#/components/headers/RateLimitPolicy'
        Request-Id:
          $ref: '#/components/headers/RequestId'
        Deprecation:
          $ref: '#/components/headers/Deprecation'
        Sunset:
          $ref: '#/components/headers/Sunset'
        Link:
          $ref: '#/components/headers/DeprecationLink'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: invalid_request_error
              code: authentication_required
              message: You did not provide an API key.
      headers:
        RateLimit:
          $ref: '#/components/headers/RateLimit'
        RateLimit-Policy:
          $ref: '#/components/headers/RateLimitPolicy'
        Request-Id:
          $ref: '#/components/headers/RequestId'
        Deprecation:
          $ref: '#/components/headers/Deprecation'
        Sunset:
          $ref: '#/components/headers/Sunset'
        Link:
          $ref: '#/components/headers/DeprecationLink'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: invalid_request_error
              code: forbidden
              message: You do not have permission to perform this action
      headers:
        RateLimit:
          $ref: '#/components/headers/RateLimit'
        RateLimit-Policy:
          $ref: '#/components/headers/RateLimitPolicy'
        Request-Id:
          $ref: '#/components/headers/RequestId'
        Deprecation:
          $ref: '#/components/headers/Deprecation'
        Sunset:
          $ref: '#/components/headers/Sunset'
        Link:
          $ref: '#/components/headers/DeprecationLink'
    TooManyRequests:
      description: >-
        Rate limit exceeded — 600 requests per minute per owner on the free
        tier: every API key and OAuth token one person holds on an account
        shares one budget, and the account's team keys share another. Retry
        after the number of seconds in `Retry-After`.
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        RateLimit:
          $ref: '#/components/headers/RateLimit'
        RateLimit-Policy:
          $ref: '#/components/headers/RateLimitPolicy'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: invalid_request_error
              code: rate_limit_exceeded
              message: Too many requests. Please retry later.
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: api_error
              code: internal_error
              message: An unexpected error occurred
      headers:
        RateLimit:
          $ref: '#/components/headers/RateLimit'
        RateLimit-Policy:
          $ref: '#/components/headers/RateLimitPolicy'
        Request-Id:
          $ref: '#/components/headers/RequestId'
        Deprecation:
          $ref: '#/components/headers/Deprecation'
        Sunset:
          $ref: '#/components/headers/Sunset'
        Link:
          $ref: '#/components/headers/DeprecationLink'
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - api_error
                - invalid_request_error
                - validation_error
            code:
              type: string
            message:
              type: string
            param:
              type: string
            errors:
              type: object
            doc_url:
              type: string
          required:
            - type
            - message
      required:
        - error
  headers:
    RateLimit:
      description: >-
        Remaining quota for the current window, as an IETF structured field:
        `"default";r=<remaining>;t=<seconds until reset>`.
      schema:
        type: string
        examples:
          - '"default";r=596;t=11'
    RateLimitPolicy:
      description: >-
        The quota this credential is subject to:
        `"default";q=<requests>;w=<window seconds>`.
      schema:
        type: string
        examples:
          - '"default";q=600;w=60'
    RequestId:
      description: Unique id for this request. Quote it when reporting a problem.
      schema:
        type: string
        examples:
          - 8fe045fe-cb8a-4407-a44d-5df60385e522
    Deprecation:
      description: >-
        Present only on a deprecated operation. Structured-field date (RFC 9745)
        — `@` followed by the Unix timestamp at which the operation became
        deprecated.
      schema:
        type: string
        examples:
          - '@1775001600'
    Sunset:
      description: >-
        Present only on a deprecated operation. HTTP-date (RFC 8594) after which
        the operation stops responding. Always at least six months after
        `Deprecation`.
      schema:
        type: string
        examples:
          - Thu, 01 Oct 2026 00:00:00 GMT
    DeprecationLink:
      description: >-
        Present only on a deprecated operation. `<url>; rel="deprecation"`
        pointing at the migration notes.
      schema:
        type: string
        examples:
          - >-
            <https://crevio.co/docs/developer/guides/versioning>;
            rel="deprecation"
    RetryAfter:
      description: Seconds to wait before retrying.
      schema:
        type: integer
        examples:
          - 11
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: Authorization
      description: 'API key in the format: Bearer {api_token}'

````

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