GenReady AI API

GenReady AI API as documented publicly: 33 operations. Contract generated from the documentation by API Evangelist (2026-11-09); not the provider's own document.

GitHub OpenAPI

Operations 33

GET / GET / #
GET /.well-known/mcp/server-card.json GET /.well-known/mcp/server-card.json #
POST /analyze Submit a URL for AI readiness analysis. #
POST /api/v1/analyze POST /api/v1/analyze #
GET /api/v1/artifacts/{kind} Get a robots.txt, llms.txt or JSON-LD block to commit. #
GET /api/v1/domains List the domains this account monitors. #
GET /api/v1/domains/{id}/fix-plan The fix plan from the domain's most recent completed analysis. #
POST /api/v1/domains/{id}/site-analyses Scan a whole verified site without a person in the loop. #
PATCH /api/v1/findings/{id} Record what you did about a finding. #
GET /api/v1/findings/robots.gptbot_blocked~a1b2c3d4e5f6a7b8 Retrieve a specific finding. #
POST /api/v1/findings/verify Check whether fixes landed, with one fetch per finding instead of a paid re-scan. #
GET /api/v1/reports/{reportid} GET /api/v1/reports/{reportId} #
GET /api/v1/reports/{reportid}/status GET /api/v1/reports/{reportId}/status #
GET /api/v1/site-analyses/{id}/fix-plan The plan for one specific run, by run id. #
POST /ask Answering Natural-Language Questions at /ask #
GET /help genready.ai sends markdown for its home page, help center and blog. #
GET /page GET /page #
GET /ping Health check endpoint. #
GET /reports List your analysis reports with pagination and filtering. #
GET /reports/{id} Retrieve a completed analysis report. #
GET /reports/{id}/status Check analysis progress for a running or completed report. #
GET /usage Check your current billing period usage. #
GET /usage/daily Daily breakdown of API calls and reports for the current month. #
GET /v1/customers Look up the customer with GET /v1/customers?email=... #
POST /v1/customers If none exists, create one with POST /v1/customers. #
POST /v1/invoices Create the invoice with POST /v1/invoices, passing customer_id and line items. #
POST /v1/invoices/{id}/send Send it with POST /v1/invoices/{id}/send. #
GET /webhooks List all your webhooks. #
POST /webhooks Create a new webhook. #
DELETE /webhooks/{id} Delete a webhook permanently. #
PATCH /webhooks/{id} Update a webhook's URL, events, or active status. #
GET /webhooks/{id}/deliveries View delivery history for a webhook (paginated). #
POST /webhooks/{id}/test Send a test webhook payload to verify your endpoint. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/genready-ai:genready-ai-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

genready-ai-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: GenReady AI API
  version: '2026-11-09'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-09: 33 operation(s) read from 7 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; GenReady AI has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 6
    documentation: 27
    pages-with-code: 6
    pages-read: 7
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-09'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://genready.ai/docs/api
  - https://genready.ai/help/genready-api-and-mcp
  - https://genready.ai/help/what-is-agent-readiness
  - https://genready.ai/help/markdown-content-negotiation
  - https://genready.ai/help/mcp-server-cards-explained
  - https://genready.ai/help/agent-skills-for-websites
  - https://genready.ai/help/what-is-nlweb
paths:
  /:
    get:
      operationId: get
      tags:
      - Api
      summary: GET /
      x-source: https://genready.ai/help/what-is-agent-readiness
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s -D - -o /dev/null -H \"Accept: text/markdown\" https://yoursite.com/ . If the content-type line says text/markdown ,\
          \ you already pass one check. If it says text/html , start with the Markdown for agents article. \n Next Markdown for agents: send a\
          \ markdown version of your pages In this section Agent readiness Agent Readiness: How GenReady Checks Whether AI Agents Can Use Your\
          \ Site Markdown fo"
  /.well-known/mcp/server-card.json:
    get:
      operationId: get_well_known_mcp_server_card_json
      tags:
      - API
      summary: GET /.well-known/mcp/server-card.json
      x-source: https://genready.ai/help/mcp-server-cards-explained
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: curl -s -D - https://yoursite.com/.well-known/mcp/server-card.json
  /analyze:
    post:
      operationId: post_analyze
      tags:
      - Analyze
      summary: Submit a URL for AI readiness analysis.
      x-source: https://genready.ai/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAnalyzeRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAnalyzeResponse'
      x-evidence:
        kind: documentation
  /api/v1/analyze:
    post:
      operationId: post_api_v1_analyze
      tags:
      - Api
      summary: POST /api/v1/analyze
      x-source: https://genready.ai/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1AnalyzeRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1AnalyzeResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://genready.ai/api/v1/analyze  -H \"Authorization: Bearer gr_live_YOUR_API_KEY\"  -H \"Content-Type: application/json\"\
          \  -d '{\"url\": \"https://example.com\", \"options\": {\"waitForCompletion\": true}}' 3 Get your results The response includes scores,\
          \ detailed metrics, and a prioritized fix checklist. json {\n \"data\": {\n \"reportId\": \"acae9782-f6aa-46d0-ae79-8aca8eb5a3bf\",\n\
          \ \"url\": \"https://e"
  /api/v1/artifacts/{kind}:
    get:
      operationId: get_api_v1_artifacts_kind
      tags:
      - Api
      summary: Get a robots.txt, llms.txt or JSON-LD block to commit.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: kind
        in: path
        required: true
        schema:
          type: string
      - name: reportId
        in: query
        required: false
        schema:
          type: string
        description: Report ID for page artifact
      - name: domainId
        in: query
        required: false
        schema:
          type: string
        description: Domain ID for site artifact
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/domains:
    get:
      operationId: get_api_v1_domains
      tags:
      - Api
      summary: List the domains this account monitors.
      x-source: https://genready.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1DomainsResponse'
      x-evidence:
        kind: documentation
  /api/v1/domains/{id}/fix-plan:
    get:
      operationId: get_api_v1_domains_id_fix_plan
      tags:
      - Api
      summary: The fix plan from the domain's most recent completed analysis.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1DomainsIdFixPlanResponse'
      x-evidence:
        kind: documentation
  /api/v1/domains/{id}/site-analyses:
    post:
      operationId: post_api_v1_domains_id_site_analyses
      tags:
      - Api
      summary: Scan a whole verified site without a person in the loop.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1DomainsIdSiteAnalysesRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1DomainsIdSiteAnalysesResponse'
      x-evidence:
        kind: documentation
  /api/v1/findings/{id}:
    patch:
      operationId: patch_api_v1_findings_id
      tags:
      - Api
      summary: Record what you did about a finding.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchApiV1FindingsIdRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/findings/robots.gptbot_blocked~a1b2c3d4e5f6a7b8:
    get:
      operationId: get_api_v1_findings_robots_gptbot_blocked_a1b2c3d4e5f6a7b8
      tags:
      - Api
      summary: Retrieve a specific finding.
      x-source: https://genready.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1FindingsRobotsGptbotBlockedA1B2C3D4E5F6A7B8Response'
      x-evidence:
        kind: documentation
  /api/v1/findings/verify:
    post:
      operationId: post_api_v1_findings_verify
      tags:
      - Api
      summary: Check whether fixes landed, with one fetch per finding instead of a paid re-scan.
      x-source: https://genready.ai/docs/api
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1FindingsVerifyRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/reports/{reportid}:
    get:
      operationId: get_api_v1_reports_reportid
      tags:
      - Api
      summary: GET /api/v1/reports/{reportId}
      x-source: https://genready.ai/docs/api
      parameters:
      - name: reportid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl https://genready.ai/api/v1/reports/REPORT_ID  -H "Authorization: Bearer gr_live_xxxxx"'
  /api/v1/reports/{reportid}/status:
    get:
      operationId: get_api_v1_reports_reportid_status
      tags:
      - Api
      summary: GET /api/v1/reports/{reportId}/status
      x-source: https://genready.ai/docs/api
      parameters:
      - name: reportid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl https://genready.ai/api/v1/reports/REPORT_ID/status  -H "Authorization: Bearer gr_live_xxxxx"'
  /api/v1/site-analyses/{id}/fix-plan:
    get:
      operationId: get_api_v1_site_analyses_id_fix_plan
      tags:
      - Api
      summary: The plan for one specific run, by run id.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1SiteAnalysesIdFixPlanResponse'
      x-evidence:
        kind: documentation
  /ask:
    post:
      operationId: post_ask
      tags:
      - Ask
      summary: Answering Natural-Language Questions at /ask
      x-source: https://genready.ai/help/what-is-agent-readiness
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /help:
    get:
      operationId: get_help
      tags:
      - Help
      summary: genready.ai sends markdown for its home page, help center and blog.
      description: Use a GET request with an Accept header of text/markdown to retrieve the markdown version of the help page.
      x-source: https://genready.ai/help/markdown-content-negotiation
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /page:
    get:
      operationId: get_page
      tags:
      - Page
      summary: GET /page
      x-source: https://genready.ai/help/markdown-content-negotiation
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s -D - -o /dev/null -H \"Accept: text/markdown, text/html;q=0.9, */*;q=0.8\" https://yoursite.com/page \n Look for content-type:\
          \ text/markdown and vary: Accept in the output. Then run the command without the Accept header. You must get text/html . \n Use a GET\
          \ request, as in this command. Some servers send markdown only for GET, so curl -I can show HTML. \n genready.ai sends markdown for\
          \ its home"
  /ping:
    get:
      operationId: get_ping
      tags:
      - Ping
      summary: Health check endpoint.
      x-source: https://genready.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPingResponse'
      x-evidence:
        kind: documentation
  /reports:
    get:
      operationId: get_reports
      tags:
      - Reports
      summary: List your analysis reports with pagination and filtering.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: status
        in: query
        required: false
        schema:
          type: string
      - name: since
        in: query
        required: false
        schema:
          type: string
      - name: url
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReportsResponse'
      x-evidence:
        kind: documentation
  /reports/{id}:
    get:
      operationId: get_reports_id
      tags:
      - Reports
      summary: Retrieve a completed analysis report.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReportsIdResponse'
      x-evidence:
        kind: documentation
  /reports/{id}/status:
    get:
      operationId: get_reports_id_status
      tags:
      - Reports
      summary: Check analysis progress for a running or completed report.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReportsIdStatusResponse'
      x-evidence:
        kind: documentation
  /usage:
    get:
      operationId: get_usage
      tags:
      - Usage
      summary: Check your current billing period usage.
      x-source: https://genready.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUsageResponse'
      x-evidence:
        kind: documentation
  /usage/daily:
    get:
      operationId: get_usage_daily
      tags:
      - Usage
      summary: Daily breakdown of API calls and reports for the current month.
      x-source: https://genready.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUsageDailyResponse'
      x-evidence:
        kind: documentation
  /v1/customers:
    get:
      operationId: get_v1_customers
      tags:
      - Customers
      summary: Look up the customer with GET /v1/customers?email=...
      x-source: https://genready.ai/help/agent-skills-for-websites
      parameters:
      - name: email
        in: query
        required: false
        schema:
          type: string
        description: Email address to search for a customer
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_v1_customers
      tags:
      - Customers
      summary: If none exists, create one with POST /v1/customers.
      x-source: https://genready.ai/help/agent-skills-for-websites
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/invoices:
    post:
      operationId: post_v1_invoices
      tags:
      - Invoices
      summary: Create the invoice with POST /v1/invoices, passing customer_id and line items.
      x-source: https://genready.ai/help/agent-skills-for-websites
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1InvoicesRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/invoices/{id}/send:
    post:
      operationId: post_v1_invoices_id_send
      tags:
      - Invoices
      summary: Send it with POST /v1/invoices/{id}/send.
      x-source: https://genready.ai/help/agent-skills-for-websites
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1InvoicesIdSendResponse'
      x-evidence:
        kind: documentation
  /webhooks:
    get:
      operationId: get_webhooks
      tags:
      - Webhooks
      summary: List all your webhooks.
      x-source: https://genready.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWebhooksResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_webhooks
      tags:
      - Webhooks
      summary: Create a new webhook.
      x-source: https://genready.ai/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostWebhooksRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostWebhooksResponse'
      x-evidence:
        kind: documentation
  /webhooks/{id}:
    delete:
      operationId: delete_webhooks_id
      tags:
      - Webhooks
      summary: Delete a webhook permanently.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteWebhooksIdResponse'
      x-evidence:
        kind: documentation
    patch:
      operationId: patch_webhooks_id
      tags:
      - Webhooks
      summary: Update a webhook's URL, events, or active status.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchWebhooksIdRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /webhooks/{id}/deliveries:
    get:
      operationId: get_webhooks_id_deliveries
      tags:
      - Webhooks
      summary: View delivery history for a webhook (paginated).
      x-source: https://genready.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: string
        description: Page number
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: Items per page
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWebhooksIdDeliveriesResponse'
      x-evidence:
        kind: documentation
  /webhooks/{id}/test:
    post:
      operationId: post_webhooks_id_test
      tags:
      - Webhooks
      summary: Send a test webhook payload to verify your endpoint.
      x-source: https://genready.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostWebhooksIdTestResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    PostAnalyzeRequest:
      type: object
      properties:
        url:
          type: string
        scope:
          type: string
        options.waitForCompletion:
          type: boolean
      required:
      - url
    PostAnalyzeResponse:
      type: object
      properties:
        reportId:
          type: string
        scope:
          type: string
        status:
          type: string
        estimatedSeconds:
          type: integer
        statusUrl:
          type: string
        reportUrl:
          type: string
    PostApiV1AnalyzeRequest:
      type: object
      properties:
        url:
          type: string
        options:
          type: object
          properties:
            waitForCompletion:
              type: boolean
    PostApiV1AnalyzeResponse:
      type: object
      properties:
        reportId:
          type: string
        url:
          type: string
        scope:
          type: string
        status:
          type: string
        scores:
          type: object
          properties:
            overall:
              type: integer
            content:
              type: integer
            crawlability:
              type: integer
            details:
              type: object
              properties:
                ? ''
                : type: string
        fixChecklist:
          type: array
          items:
            type: object
            properties:
              severity:
                type: string
              category:
                type: string
              metric:
                type: string
              problem:
                type: string
              fix:
                type: string
        recommendations:
          type: array
          items: {}
    GetApiV1DomainsResponse:
      type: object
      properties:
        domains:
          type: array
        meta:
          type: object
    GetApiV1DomainsIdFixPlanResponse:
      type: object
      properties:
        domainId:
          type: string
        siteAnalysisId:
          type: string
        generatedAt:
          type: string
        actions:
          type: array
    PostApiV1DomainsIdSiteAnalysesRequest:
      type: object
      properties:
        curation:
          type: object
          description: Curation options
        curation.mode:
          type: string
          description: Curation mode
        curation.maxPages:
          type: integer
          description: Maximum pages to scan
    PostApiV1DomainsIdSiteAnalysesResponse:
      type: object
      properties:
        data.siteAnalysisId:
          type: string
          description: Identifier of the started site analysis
    PatchApiV1FindingsIdRequest:
      type: object
      properties:
        status:
          type: string
          description: New status (e.g., fixed_pending, ignored, open)
      required:
      - status
    GetApiV1FindingsRobotsGptbotBlockedA1B2C3D4E5F6A7B8Response:
      type: object
      properties:
        data.id:
          type: string
        data.metric:
          type: string
        data.severity:
          type: string
        data.category:
          type: string
        data.problem:
          type: string
        data.fix:
          type: string
        data.status:
          type: string
    PostApiV1FindingsVerifyRequest:
      type: object
      properties:
        reportId:
          type: string
          description: Report identifier
        domainId:
          type: string
          description: Domain identifier
        siteAnalysisId:
          type: string
          description: Site analysis identifier
        findingIds:
          type: array
          description: Optional list of finding IDs to check
    GetApiV1SiteAnalysesIdFixPlanResponse:
      type: object
      properties:
        domainId:
          type: string
        siteAnalysisId:
          type: string
        generatedAt:
          type: string
        actions:
          type: array
    GetPingResponse:
      type: object
      properties:
        status:
          type: string
        version:
          type: string
        timestamp:
          type: string
    GetReportsResponse:
      type: object
      properties:
        reports:
          type: array
        pagination:
          type: object
    GetReportsIdResponse:
      type: object
      properties:
        reportId:
          type: string
        url:
          type: string
        scope:
          type: string
        status:
          type: string
        createdAt:
          type: string
        completedAt:
          type: string
        scores:
          type: object
        fixChecklist:
          type: array
        recommendations:
          type: array
    GetReportsIdStatusResponse:
      type: object
      properties:
        reportId:
          type: string
        scope:
          type: string
        status:
          type: string
        progress:
          type: integer
        steps:
          type: object
    GetUsageResponse:
      type: object
      properties:
        plan:
          type: string
        billingPeriod:
          type: object
        reports:
          type: object
        apiCredits:
          type: object
    GetUsageDailyResponse:
      type: object
      properties:
        days:
          type: array
    PostV1InvoicesRequest:
      type: object
      properties:
        customer_id:
          type: string
          description: Identifier of the customer for the invoice
        line_items:
          type: string
          description: List of line items for the invoice
      required:
      - customer_id
      - line_items
    PostV1InvoicesIdSendResponse:
      type: object
      properties:
        '409':
          type: string
          description: Invoice was already sent
    GetWebhooksResponse:
      type: object
      properties:
        data.webhooks:
          type: array
          description: Array of webhook objects
    PostWebhooksRequest:
      type: object
      properties:
        url:
          type: string
          description: Webhook endpoint URL
        events:
          type: array
          description: List of events to subscribe to
      required:
      - url
      - events
    PostWebhooksResponse:
      type: object
      properties:
        data.id:
          type: string
          description: Webhook identifier
        data.secret:
          type: string
          description: Signing secret (shown only once)
    DeleteWebhooksIdResponse:
      type: object
      properties:
        data.deleted:
          type: boolean
          description: Deletion confirmation
    PatchWebhooksIdRequest:
      type: object
      properties:
        url:
          type: string
          description: New webhook URL
        events:
          type: array
          description: New list of events
        active:
          type: boolean
          description: Activate or deactivate
    GetWebhooksIdDeliveriesResponse:
      type: object
      properties:
        data.deliveries:
          type: array
          description: Delivery records
    PostWebhooksIdTestResponse:
      type: object
      properties:
        data.success:
          type: boolean
          description: Test result
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: API
- name: Analyze
- name: Api
- name: Ask
- name: Customers
- name: Help
- name: Invoices
- name: Page
- name: Ping
- name: Reports
- name: Usage
- name: Webhooks