WritersLogic Verifiable AI Agent Hub Pipelines API

The Pipelines API from WritersLogic Verifiable AI Agent Hub — 3 operation(s) for pipelines.

GitHub OpenAPI

Operations 3

POST /api/v1/pipelines/cra-readiness EU CRA Readiness Check #
POST /api/v1/pipelines/citation-audit Citation Audit #
POST /api/v1/pipelines/token-vault-ladder Token and Vault Exit Ladder #

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/writerslogic-com:writerslogic-com-pipelines-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

writerslogic-com-pipelines-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: WritersLogic Verifiable AI Agent Hub Pipelines API
  version: 2.0.0
  description: Pay-per-call agents settled in USDC on Base via x402. Every response carries a signed provenance envelope.
  contact:
    name: WritersLogic
    url: https://writerslogic.com/agents
    email: agents@writerslogic.com
servers:
- url: https://agents.writerslogic.com
tags:
- name: Pipelines
paths:
  /api/v1/pipelines/cra-readiness:
    post:
      operationId: cra_readiness
      summary: EU CRA Readiness Check
      description: 'Repository or manifests in, EU Cyber Resilience Act Art. 14 position out: dependency-advisor resolves every declared package to its locked version (deterministic, no model), those versions go to cra-exploit-clock as package URLs (OSV, CISA KEV, EPSS, EUVD), and each actively exploited component is joined back to the manifest that declares it with the fixed versions and the advisor''s findings. Reports the 24 h / 72 h / 14 day reporting deadlines from the awareness time. Charged once, dependency-advisor + cra-exploit-clock at 20% below their combined list price; not charged when a required step fails.


        Price: 1.92 USDC on Base (x402).'
      x-x402-price-usdc: '1.92'
      x-x402-amount: '1920000'
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '1.92'
      x-audience: developer
      x-sample-url: https://agents.writerslogic.com/api/v1/samples/cra-readiness
      security:
      - x402: []
      - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                repo:
                  type: string
                  minLength: 3
                  maxLength: 200
                  description: 'Public GitHub repository: owner/repo, https://github.com/owner/repo[/tree/ref], a commit URL, or a pull request URL (analyzed at the PR head).'
                ref:
                  type: string
                  maxLength: 200
                  description: Branch, tag or commit; defaults to the default branch.
                files:
                  type: array
                  maxItems: 600
                  description: 'Alternative to repo: manifests (package.json, lockfile, pyproject.toml, requirements.txt, Cargo.toml) and source files with repository-relative paths.'
                  items:
                    type: object
                    additionalProperties: false
                    required:
                    - path
                    - content
                    properties:
                      path:
                        type: string
                        minLength: 1
                        maxLength: 300
                      content:
                        type: string
                        maxLength: 400000
                ecosystems:
                  type: array
                  maxItems: 3
                  items:
                    type: string
                    enum:
                    - npm
                    - pypi
                    - cargo
                  description: Restrict the analysis; default all detected.
                repoLicense:
                  type: string
                  maxLength: 100
                  description: SPDX id of the repository's license, for alternative ranking; detected from manifests or LICENSE when absent.
                product:
                  type: object
                  additionalProperties: false
                  required:
                  - name
                  description: Your product with digital elements; used only to fill the draft fields (defaults to the SBOM's own product name).
                  properties:
                    name:
                      type: string
                      minLength: 1
                      maxLength: 200
                    version:
                      type: string
                      maxLength: 100
                awareness_time:
                  type: string
                  maxLength: 40
                  description: When the manufacturer became aware, ISO 8601 with UTC offset (e.g. 2026-11-04T09:30:00Z). Defaults to now. Taken as given; this agent cannot verify it.
                fix_available_at:
                  type: string
                  maxLength: 40
                  description: When a corrective or mitigating measure became available, ISO 8601 with UTC offset; sets the Art. 14(2)(c) final-report date.
            example:
              repo: star7th/htq
              product:
                name: htq
      responses:
        '200':
          description: Paid result with provenance
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      readiness:
                        type: string
                        enum:
                        - REPORTABLE_CANDIDATES
                        - NO_EXPLOITED_EVIDENCE
                        - INSUFFICIENT_EVIDENCE
                        - NO_RESOLVED_VERSIONS
                        description: REPORTABLE_CANDIDATES when an exploited vulnerability affects a resolved dependency; NO_EXPLOITED_EVIDENCE only when every resolved dependency was fully checked and none was unresolved.
                      fixPlan:
                        type: array
                        items:
                          type: object
                          description: 'Per exploited component: purl, package, manifest, range, usageFiles, kevDateAdded, cves, fixedVersions, advisorFindings.'
                      deadlines:
                        anyOf:
                        - type: object
                          description: cra-exploit-clock's Art. 14(2) deadlines, or null when it did not run.
                        - type: 'null'
                      nextStep:
                        description: cra-exploit-clock's next_step, or null.
                      unresolved:
                        type: array
                        items:
                          type: object
                          description: Declared packages with no resolved version (no lockfile entry); not checked for exploitation.
                      results:
                        type: object
                        description: 'Each executed member step''s full result, keyed by step id (forEach steps: one entry per item).'
                      steps:
                        type: object
                        description: 'Per step: status (ok | skipped | failed), reason, attempts, ms, inputSha256, outputSha256, and the output hashes of the upstream steps its input was derived from.'
                      partial:
                        type: boolean
                        description: True when an optional step was missing or a member returned its own partial result.
                      missing:
                        type: array
                        items:
                          type: object
                          description: '{step, reason, impact}'
                      deterministic:
                        type: boolean
                        description: True only when every executed member answered without a model.
                    required:
                    - results
                    - steps
                    - partial
                    - missing
                    - deterministic
                  _provenance:
                    type: object
                    description: C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance
                required:
                - data
                - _provenance
        '400':
          description: Invalid request (no payment consumed)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
        '401':
          description: Invalid X-API-KEY
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
        '402':
          description: Payment required or invalid
          content:
            application/json:
              schema:
                type: object
                description: x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)
                properties:
                  x402Version:
                    type: integer
                  error:
                    type: string
                  code:
                    type: string
                  resource:
                    type: object
                  accepts:
                    type: array
                    items:
                      type: object
                  extensions:
                    type: object
        '502':
          description: Upstream failure; the payment is released or not settled
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
      tags:
      - Pipelines
  /api/v1/pipelines/citation-audit:
    post:
      operationId: citation_audit
      summary: Citation Audit
      description: 'Bibliography in, evidence audit out: reference-verifier checks every reference (fabricated, mis-cited, retracted, corrected); the top DOI-bearing references (corrections first, then the most cited in the manuscript) get a replication-auditor pass on the sentence that cites them; when a target is contested, paper-contradictions compares it with the studies against it. The contradiction check is optional: if it cannot finish the call still answers, marked partial. Charged once, reference-verifier + replication-auditor + paperContradictions at 20% below their combined list price; not charged when a required step fails.


        Price: 2.40 USDC on Base (x402).'
      x-x402-price-usdc: '2.40'
      x-x402-amount: '2400000'
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '2.40'
      x-audience: research
      x-sample-url: https://agents.writerslogic.com/api/v1/samples/citation-audit
      security:
      - x402: []
      - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                bibtex:
                  type: string
                  minLength: 10
                  maxLength: 400000
                  description: BibTeX/BibLaTeX text (the contents of a .bib file).
                latex:
                  type: string
                  minLength: 10
                  maxLength: 400000
                  description: LaTeX source with a thebibliography environment (\bibitem) or embedded filecontents .bib; \cite commands supply citation contexts and are checked against the entries.
                references:
                  type: string
                  minLength: 10
                  maxLength: 200000
                  description: Plain-text reference list (numbered, blank-line separated, or one per line; APA, IEEE, Vancouver, Chicago).
                arxivId:
                  type: string
                  minLength: 4
                  maxLength: 80
                  description: arXiv id or URL; references are read from the ar5iv HTML (.ltx_bibitem), falling back to the PDF.
                pdfUrl:
                  type: string
                  minLength: 8
                  maxLength: 2000
                  description: Public PDF URL. Text extraction is best-effort (Word and Google Docs exports work best).
                identifiers:
                  type: array
                  minItems: 1
                  maxItems: 150
                  items:
                    type: string
                    minLength: 3
                    maxLength: 300
                  description: 'Bare identifiers instead of a bibliography: up to 150 DOIs (bare, doi: or doi.org URL), arXiv ids or URLs, or PMIDs (bare, PMID: or PubMed URL), mixed freely. Each is resolved and checked for retraction, correction and a published version of record.'
                manuscript:
                  type: string
                  minLength: 10
                  maxLength: 400000
                  description: 'Optional manuscript text (LaTeX or plain) that supplies citation contexts: \cite keys, [n] numbers or Author (year) citations.'
                claim:
                  type: string
                  minLength: 10
                  maxLength: 2000
                  description: The claim the bibliography supports; used for the replication and contradiction checks instead of the citing sentence.
                topK:
                  type: integer
                  minimum: 1
                  maximum: 2
                  description: References to audit for replication (default 2).
            example:
              references: '[1] Wakefield AJ, Murch SH, Anthony A, et al. Ileal-lymphoid-nodular hyperplasia, non-specific colitis, and pervasive developmental disorder in children. Lancet. 1998;351(9103):637-41.

                [2] Abbott BP, et al. Observation of gravitational waves from a binary black hole merger. arXiv:1602.03837'
      responses:
        '200':
          description: Paid result with provenance
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      verdict:
                        type: string
                        description: reference-verifier's verdict on the bibliography.
                      audited:
                        type: array
                        items:
                          type: object
                          description: 'Per audited reference: index, doi, title, status, replication verdict and risk score (or the error).'
                      contradictions:
                        description: paper-contradictions' headline and top findings, or null when it did not run.
                      results:
                        type: object
                        description: 'Each executed member step''s full result, keyed by step id (forEach steps: one entry per item).'
                      steps:
                        type: object
                        description: 'Per step: status (ok | skipped | failed), reason, attempts, ms, inputSha256, outputSha256, and the output hashes of the upstream steps its input was derived from.'
                      partial:
                        type: boolean
                        description: True when an optional step was missing or a member returned its own partial result.
                      missing:
                        type: array
                        items:
                          type: object
                          description: '{step, reason, impact}'
                      deterministic:
                        type: boolean
                        description: True only when every executed member answered without a model.
                    required:
                    - results
                    - steps
                    - partial
                    - missing
                    - deterministic
                  _provenance:
                    type: object
                    description: C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance
                required:
                - data
                - _provenance
        '400':
          description: Invalid request (no payment consumed)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
        '401':
          description: Invalid X-API-KEY
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
        '402':
          description: Payment required or invalid
          content:
            application/json:
              schema:
                type: object
                description: x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)
                properties:
                  x402Version:
                    type: integer
                  error:
                    type: string
                  code:
                    type: string
                  resource:
                    type: object
                  accepts:
                    type: array
                    items:
                      type: object
                  extensions:
                    type: object
        '502':
          description: Upstream failure; the payment is released or not settled
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
      tags:
      - Pipelines
  /api/v1/pipelines/token-vault-ladder:
    post:
      operationId: token_vault_ladder
      summary: Token and Vault Exit Ladder
      description: 'One decision on holding a Base token and a vault position: token-trap-detector (live bytecode, proxy slots, honeypot simulation) and vault-exit-lawyer (redeem limits, queue, admin powers, eth_call simulation) run in parallel; contract-auditor then audits the token''s verified source at the proxy implementation the trap step read, and is skipped on a honeypot or unverified source. Returns the worst of the three verdicts as block | review | proceed and which leg set it. Charged once, token-trap-detector + contract-auditor + vault-exit-lawyer at 20% below their combined list price; not charged when a required step fails.


        Price: 1.20 USDC on Base (x402).'
      x-x402-price-usdc: '1.20'
      x-x402-amount: '1200000'
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '1.20'
      x-audience: crypto
      x-sample-url: https://agents.writerslogic.com/api/v1/samples/token-vault-ladder
      security:
      - x402: []
      - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - tokenAddress
              - chain
              - vault
              - exit
              properties:
                tokenAddress:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: Token contract address on Base.
                chain:
                  type: string
                  enum:
                  - ethereum
                  - base
                  - polygon
                  - arbitrum
                  - optimism
                  description: Chain the vault lives on.
                vault:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: ERC-4626 or ERC-7540 vault address.
                exit:
                  type: object
                  additionalProperties: false
                  description: Exactly one of shares or assets, as base-unit integer strings. shares may be "max" (needs holder).
                  properties:
                    shares:
                      type: string
                      pattern: ^([0-9]{1,78}|max)$
                      description: Vault shares to redeem (base units), or "max" for the holder's whole balance.
                    assets:
                      type: string
                      pattern: ^[0-9]{1,78}$
                      description: Underlying assets to receive (base units).
                holder:
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: Address that holds the shares. Enables an exact eth_call redeem simulation and per-holder limits.
                docsUrls:
                  type: array
                  maxItems: 4
                  items:
                    type: string
                    maxLength: 2000
                  description: Public documentation pages whose redemption claims are checked against the contract.
            example:
              tokenAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
              chain: ethereum
              vault: '0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB'
              exit:
                shares: '1000000000000000000000'
      responses:
        '200':
          description: Paid result with provenance
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      decision:
                        type: string
                        enum:
                        - block
                        - review
                        - proceed
                        description: Worst of the trap, audit and vault verdicts.
                      decidedBy:
                        type: array
                        items:
                          type: string
                        description: Legs whose verdict set the decision (empty when it is proceed).
                      votes:
                        type: array
                        items:
                          type: object
                          description: '{leg, verdict, decision} per leg that ran.'
                      results:
                        type: object
                        description: 'Each executed member step''s full result, keyed by step id (forEach steps: one entry per item).'
                      steps:
                        type: object
                        description: 'Per step: status (ok | skipped | failed), reason, attempts, ms, inputSha256, outputSha256, and the output hashes of the upstream steps its input was derived from.'
                      partial:
                        type: boolean
                        description: True when an optional step was missing or a member returned its own partial result.
                      missing:
                        type: array
                        items:
                          type: object
                          description: '{step, reason, impact}'
                      deterministic:
                        type: boolean
                        description: True only when every executed member answered without a model.
                    required:
                    - results
                    - steps
                    - partial
                    - missing
                    - deterministic
                  _provenance:
                    type: object
                    description: C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance
                required:
                - data
                - _provenance
        '400':
          description: Invalid request (no payment consumed)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
        '401':
          description: Invalid X-API-KEY
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
        '402':
          description: Payment required or invalid
          content:
            application/json:
              schema:
                type: object
                description: x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)
                properties:
                  x402Version:
                    type: integer
                  error:
                    type: string
                  code:
                    type: string
                  resource:
                    type: object
                  accepts:
                    type: array
                    items:
                      type: object
                  extensions:
                    type: object
        '502':
          description: Upstream failure; the payment is released or not settled
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
      tags:
      - Pipelines
components:
  securitySchemes:
    x402:
      type: apiKey
      in: header
      name: PAYMENT-SIGNATURE
      description: x402 v2 payment payload (base64) sent after a 402 challenge
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY