Tako tako API

The tako API from Tako — 7 operation(s) for tako.

Operations 7

POST /v1/answer Answer #
GET /beta/graph/search Search the data graph #
GET /beta/graph/related Get a graph node's related nodes #
GET /beta/graph/node/{id} Get a graph node by id #
POST /v1/contents Download content #
POST /v1/thin_viz/create/ #

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/tako-tako-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

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

OpenAPI Specification

tako-tako-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Knowledge Search agent Tako API
  version: 1.0.0
servers:
- url: https://tako.com/api/
  description: Tako Production API Server
tags:
- name: tako
paths:
  /v3/search:
    post:
      tags:
      - tako
      summary: Search
      description: Fast-pipeline knowledge search. Returns Tako cards (and web results when requested) with no LLM synthesis.
      operationId: search
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
      responses:
        '200':
          description: Fast-pipeline search results (Tako cards + web results)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
        '400':
          description: Invalid request data (validation or malformed body).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '408':
          description: The request exceeded the processing time limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
      security:
      - apiKey: []
  /v1/answer:
    post:
      tags:
      - tako
      summary: Answer
      description: Fast-pipeline retrieval plus an LLM-synthesized answer with confidence. Replaces the grounding endpoint.
      operationId: answer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
      responses:
        '200':
          description: Synthesized answer grounded in Tako results, web results, or both
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnswerResponse'
        '400':
          description: Invalid request data (validation or malformed body).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '408':
          description: The request exceeded the processing time limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
      security:
      - apiKey: []
  /beta/graph/search:
    get:
      tags:
      - tako
      summary: Search the data graph
      description: 'Resolve a metric or entity in Tako''s data graph by name. Use this to discover and confirm what data exists before you query. For example, resolve the metric and the entity here, then ask /v3/search or /v1/answer for that entity + metric combination. Public and unauthenticated. Note: Tako does not yet filter results to the production-ready inventory. A returned metric or entity without a production fact table can 404 when you pass it to /beta/graph/related. Pass label to prefer a NER label (a ranking boost, not a filter); by default Tako infers the label from q.'
      operationId: graphSearch
      parameters:
      - description: Search text (min 2 chars).
        required: true
        schema:
          type: string
        name: q
        in: query
      - description: 'Comma-separated facets: metric,entity.'
        required: false
        schema:
          type: string
        name: types
        in: query
      - description: Max results (default 20, max 50).
        required: false
        schema:
          type: integer
        name: limit
        in: query
      - description: Prefer results with this NER label (boost, not a filter — matching nodes rank higher; others still return). Supplying label disables inference.
        required: false
        schema:
          type: string
          enum:
          - PERSON
          - ORG
          - GPE
          - LOC
          - PRODUCT
          - EVENT
          - LANGUAGE
          - MONEY
          - METRIC
          - STOCK_TICKER
          - WEBSITE
        name: label
        in: query
      - description: When true, Tako NER infers the label and grounded-node boosts from q. Set false to disable. Tako ignores this parameter when you supply label. Default true.
        required: false
        schema:
          type: boolean
        name: infer_label
        in: query
      responses:
        '200':
          description: Matching metrics and entities
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphSearchResponse'
        '400':
          description: Invalid request data (validation or malformed body).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '503':
          description: A backing data store is temporarily unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
  /beta/graph/related:
    get:
      tags:
      - tako
      summary: Get a graph node's related nodes
      description: 'Explore what a node connects to. The overview returns an ordered `relations` list: named relationships (for example `rel:competes_with`, `rel:in_industry`) first, then a node''s metrics and entities, then similar nodes and membership (part_of, members). The metrics and entities are the entity + metric combinations Tako covers — query /v3/search or /v1/answer for one. Each group carries a stable `key`. Pass `relation`=<key> plus cursor to paginate that one group. Pass the optional q to narrow by a case-insensitive substring on names and aliases (for example, the metrics of an entity that match ''gdp''). Public and unauthenticated.'
      operationId: graphRelated
      parameters:
      - description: Opaque public id of the node.
        required: true
        schema:
          type: string
        name: node_id
        in: query
      - description: Relation key to paginate, for example `rel:competes_with`, `metrics`, `entities`, `siblings`, or `members`.
        required: false
        schema:
          type: string
        name: relation
        in: query
      - description: 'Deprecated: use `relation`. A legacy facet name (metric, entity, sibling, or member) that maps to a key.'
        required: false
        deprecated: true
        schema:
          type: string
        name: relation_type
        in: query
      - description: Optional case-insensitive substring filter on the related nodes' names and aliases. It filters every group of the overview, or the single paginated group when you set `relation`.
        required: false
        schema:
          type: string
        name: q
        in: query
      - description: Opaque pagination cursor.
        required: false
        schema:
          type: string
        name: cursor
        in: query
      - description: Page size (default 50, max 100).
        required: false
        schema:
          type: integer
        name: limit
        in: query
      - description: 'Prefer related nodes with this NER label. This is a boost, not a filter: matching nodes rank higher within each relation, and totals do not change. Supplying label disables inference.'
        required: false
        schema:
          type: string
          enum:
          - PERSON
          - ORG
          - GPE
          - LOC
          - PRODUCT
          - EVENT
          - LANGUAGE
          - MONEY
          - METRIC
          - STOCK_TICKER
          - WEBSITE
        name: label
        in: query
      - description: When true, Tako NER infers the label and grounded-node boosts from q. Set false to disable. Tako ignores this parameter when you supply label. It applies only when q is present. Default true.
        required: false
        schema:
          type: boolean
        name: infer_label
        in: query
      responses:
        '200':
          description: A node's details plus related nodes by facet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphRelatedResponse'
        '400':
          description: Invalid request data (validation or malformed body).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '404':
          description: The requested resource does not exist or has no exportable data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '503':
          description: A backing data store is temporarily unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
  /beta/graph/node/{id}:
    get:
      tags:
      - tako
      summary: Get a graph node by id
      description: Resolve a single node by its opaque public id. Search cards, /beta/graph/search, and /beta/graph/related return these ids. Returns the node's name, type, aliases, and description. Public and unauthenticated.
      operationId: graphNode
      parameters:
      - description: Opaque public id of the node.
        required: true
        schema:
          type: string
        name: id
        in: path
      responses:
        '200':
          description: A single graph node
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphNode'
        '404':
          description: The requested resource does not exist or has no exportable data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '503':
          description: A backing data store is temporarily unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
  /v1/contents:
    post:
      tags:
      - tako
      summary: Download content
      description: 'Download the content behind a search result: a CSV of a Tako card''s underlying data, or the full text of a web page. Returns a short-lived presigned download URL. Protected-source cards (data export not available) return 403. Send `quote_only: true` to get only the export''s price (`cost` + `export_pricing`) with an empty payload. A quote is free: Tako fetches nothing and charges nothing.'
      operationId: contents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContentsRequest'
      responses:
        '200':
          description: 'Downloadable content for a result: a presigned URL plus format and cost metadata. For a `quote_only` request the item instead carries only the price (`cost` + `export_pricing`) with all payload and url fields null.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentsResponse'
        '400':
          description: Invalid request data (validation or malformed body).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '403':
          description: Action not permitted for this resource (for example, a protected-source export).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '404':
          description: The requested resource does not exist or has no exportable data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
      security:
      - apiKey: []
  /v1/thin_viz/create/:
    post:
      tags:
      - tako
      description: 'Create a visualization card directly from component configurations. Supported component types: header, generic_timeseries, categorical_bar, stock_boxes, financial_boxes, table.'
      operationId: createCard
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCardRequest'
      responses:
        '200':
          description: Card created successfully from schema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThinVizCard'
        '400':
          description: Bad request - validation error or component mismatch
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                type: object
                required:
                - error
        '404':
          description: Schema not found
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                type: object
                required:
                - error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                type: object
                required:
                - error
      security:
      - apiKey: []
components:
  schemas:
    ResultContent:
      properties:
        content_format:
          anyOf:
          - $ref: '#/components/schemas/ContentsFormat'
          - type: 'null'
          description: 'Serialization of the returned card data: ''csv'', ''json_records'', or ''json_compact''. Null for web text (always returned as raw text) and for a quote-only response (nothing was serialized).'
        cost:
          type: number
          title: Cost
          description: Price of this item in USD. On a /contents response this is the amount actually billed; on a quote_only response or a search/answer downloadable card it is a prospective /contents export price (nothing was fetched or billed). Pair with export_pricing to compute a larger export's cost before fetching.
          default: 0.0
        data:
          anyOf:
          - type: string
          - type: 'null'
          title: Data
          description: 'Inline payload as text: card data serialized to CSV, or a web page''s extracted text. Set only for the ''csv'' card format and for web text; null otherwise.'
        records:
          anyOf:
          - items:
              additionalProperties:
                anyOf:
                - type: string
                - type: number
                - type: integer
                - type: boolean
                - type: 'null'
              type: object
            type: array
          - type: 'null'
          title: Records
          description: 'Inline card data as verbose JSON: a list of row objects keyed by column name. Set only when content_format is ''json_records''.'
        dataset:
          anyOf:
          - $ref: '#/components/schemas/TakoDataset'
          - type: 'null'
          description: Inline card data as a compact TakoDataset (typed column headers plus positional row arrays). Set only when content_format is 'json_compact'.
        url:
          anyOf:
          - type: string
          - type: 'null'
          title: Url
          description: Presigned download URL for the content, returned in 'url' delivery mode. Null for inline delivery and for quotes; pair with expires_at.
        expires_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Expires At
          description: ISO-8601 timestamp after which the presigned url stops working. Null whenever url is null.
        total_rows:
          anyOf:
          - type: integer
          - type: 'null'
          title: Total Rows
          description: True total number of rows in the card's data, independent of how many rows were returned. Compare with truncated to tell whether more rows are available via a larger max_rows. Null for web text.
        truncated:
          type: boolean
          title: Truncated
          description: True when the returned rows were capped (by the request's max_rows or the 2,000-row system ceiling) and total_rows exceeds the number returned.
          default: false
        export_pricing:
          anyOf:
          - $ref: '#/components/schemas/ExportPricing'
          - type: 'null'
          description: Rate card for a downloadable card CSV, so a caller can compute a full export's cost before fetching. Null for web text and other non-downloadable content.
      type: object
      title: ResultContent
      description: 'Describes the downloadable content behind a result.


        Pricing: for a Tako card CSV export, the charge is a flat per-export

        baseline plus a per-source, per-row CPM on the rows returned beyond the

        free-row allowance. Web text bills at the standard Contents rate.


        The meaning of `cost` depends on the surface. On `/contents` responses,

        `cost` is the actual charge, and it reconciles with what that response

        billed. The exception is a `quote_only` response, where `cost` is a

        prospective price: Tako neither fetched nor billed the export, and the

        payload and url fields are null. On search and answer downloadable

        cards, `cost` is a prospective `/contents` quote (the per-export

        baseline floor), not what this response billed. On a metered

        `include_contents` request, the per-card `cost` therefore diverges from

        `usage.total_cost_usd` (the inline preview bills about $0), and the sum

        of per-card `cost` will not reconcile with `usage`. Treat `cost` plus

        `export_pricing` as the price of a `/contents` export of this card.


        `export_pricing` carries the rate so that a caller can compute the full

        charge before fetching: baseline_usd + row_cpm_usd * max(0, rows -

        free_rows) / 1000, with rows <= max_rows_ceiling. `export_pricing` is

        null for web text and non-downloadable content.


        Tako populates exactly one payload group once it delivers contents:

        `data` (CSV or web text), `records` (verbose JSON), `dataset` (compact

        TakoDataset), or `url` plus `expires_at` (presigned download).

        `content_format` names the serialization; it is null for web text and

        for an undelivered quote. When every payload field is unset, this is

        just the quote (`cost`); fetch the content later via the Contents

        endpoint.'
    RelationKind:
      type: string
      enum:
      - related
      - data
      - sibling
      - membership
      title: RelationKind
      description: How Tako derived a relation group.
    TakoDatasetColumnType:
      type: string
      enum:
      - string
      - number
      - boolean
      - date
      - datetime
      title: TakoDatasetColumnType
      description: 'Logical column type declared in a TakoDataset header. Temporal cells

        are ISO-8601 strings. Each column declares ''date'' or ''datetime'' on its

        own: a temporal column whose non-null values are all timezone-naive

        midnights declares ''date''.'
    BaseAPIError:
      properties:
        error_message:
          type: string
          title: Error Message
        error_type:
          $ref: '#/components/schemas/APIErrorType'
      type: object
      required:
      - error_message
      - error_type
      title: BaseAPIError
    OutputSettings:
      properties:
        image_dark_mode:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Image Dark Mode
          description: Whether to render card preview images in dark mode.
        force_refresh:
          type: boolean
          title: Force Refresh
          description: 'Instant mode only, and currently informational: on these endpoints, instant (effort=''instant'') always operates in build-and-refresh mode regardless of this flag. Instant retrieves data for embeds that are missing or stale, then creates or refreshes their static embeds. Embeds that are already fresh (within the refresh cadence) return as-is; Tako does not re-retrieve them. Identical queries therefore reuse the same content-addressed embed and return a stable embed URL.'
          default: false
      additionalProperties: false
      type: object
      title: OutputSettings
    CreateCardRequest:
      properties:
        components:
          items:
            $ref: '#/components/schemas/ComponentConfig'
          type: array
          title: Components
          description: Full component configurations
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
          description: Card title (falls back to header component title)
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Card description
        source:
          anyOf:
          - type: string
          - type: 'null'
          title: Source
          description: Data source attribution (displayed in footer)
        height:
          anyOf:
          - type: integer
            maximum: 2000.0
            minimum: 100.0
          - type: 'null'
          title: Height
          description: Chart height in pixels. When set, overrides the default aspect-ratio-based height for all chart components in this card. Must be between 100 and 2000.
        postmessage_embed:
          type: boolean
          title: Postmessage Embed
          description: When True, the embed iframe operates in postMessage mode. The parent page injects visualization_data via window.postMessage after the iframe loads; the embed URL carries no inline data. The response includes embed_mode='postmessage' when this is True, and embed_mode='post' otherwise.
          default: false
        normalize_currencies:
          anyOf:
          - type: string
          - type: 'null'
          title: Normalize Currencies
          description: Target ISO 4217 currency code (for example, 'USD' or 'EUR'). When set, Tako converts datasets with recognized currency units to this currency with historical exchange rates. Tako also adds a methodology section that explains the conversion.
        image_ttl_minutes:
          anyOf:
          - type: integer
            maximum: 1440.0
            minimum: 1.0
          - type: 'null'
          title: Image Ttl Minutes
          description: Minutes to keep the preview image available for download (zero-data-retention (ZDR) cards only). Min 1, max 1440 (24 hours). When set on a ZDR card, Tako generates a temporary preview image and keeps it available for download until the TTL expires. Non-ZDR cards ignore this field.
      type: object
      required:
      - components
      title: CreateCardRequest
      description: Request model for creating a card directly with components.
    SourceSettings:
      properties:
        count:
          type: integer
          maximum: 20.0
          minimum: 1.0
          title: Count
          description: Maximum number of results to return for this source. 1-20.
          default: 5
        include_contents:
          type: boolean
          title: Include Contents
          description: Inline this source's underlying data directly in the response. For the Tako data source, that is serialized card data (see content_format). For web results, that is the extracted text.
          default: false
      additionalProperties: false
      type: object
      title: SourceSettings
    ContentsDeliveryMode:
      type: string
      enum:
      - url
      - inline
      title: ContentsDeliveryMode
      description: 'How contents reach the caller. URL returns a short-lived presigned file

        download; INLINE returns the content in the response body.'
    WebResult:
      properties:
        title:
          type: string
          title: Title
          description: Title of the web page.
        url:
          type: string
          title: Url
          description: URL of the web page.
        snippet:
          anyOf:
          - type: string
          - type: 'null'
          title: Snippet
          description: Excerpt(s) from the page that matched the query.
        source_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Source Name
          description: Publisher or domain name, when Tako can extract it from the URL.
        publish_date:
          anyOf:
          - type: string
          - type: 'null'
          title: Publish Date
          description: Publication date of the page, when available.
        content:
          anyOf:
          - $ref: '#/components/schemas/ResultContent'
          - type: 'null'
          description: Downloadable content descriptor for this result, fetched via the Contents endpoint. Web results are always downloadable as text. None for callers that do not populate it.
        citation_number:
          anyOf:
          - type: integer
          - type: 'null'
          title: Citation Number
          description: 1-based citation number that the answer's inline [N] markers reference. Set only when the answer inline-cites this result (the Agent API); None on raw-retrieval surfaces.
      type: object
      required:
      - title
      - url
      title: WebResult
      description: 'A single raw web search result from the WEB source index.


        Distinct from `KnowledgeCardSource` (a citation inside a synthesized

        answer) and `KnowledgeCard` (a Tako visualization). Web results are

        raw retrieval output — title, URL, optional snippet. They do not depend

        on any LLM synthesis that may also happen over them.'
    ContentsResponse:
      properties:
        contents:
          items:
            $ref: '#/components/schemas/ContentItem'
          type: array
          title: Contents
          description: Downloadable artifacts for the requested URL.
        request_id:
          type: string
          title: Request Id
          description: Unique identifier for this request.
        usage:
          anyOf:
          - $ref: '#/components/schemas/Usage'
          - type: 'null'
      type: object
      required:
      - request_id
      title: ContentsResponse
      description: 'Response for POST /api/v1/contents.


        `contents` is a list so that the contract stays stable if a single result

        ever yields multiple artifacts. Today it always carries exactly one

        item.'
    TakoDataset:
      properties:
        columns:
          items:
            $ref: '#/components/schemas/TakoDatasetColumn'
          type: array
          title: Columns
          description: Ordered column headers (name + type), one per position in every row.
        rows:
          items:
            items:
              anyOf:
              - type: string
              - type: number
              - type: integer
              - type: boolean
              - type: 'null'
            type: array
          type: array
          title: Rows
          description: Row data as positional cell arrays aligned to `columns` order. Cells are string/number/boolean/null; nulls are preserved, never coerced.
        total_rows:
          type: integer
          title: Total Rows
          description: True total number of rows in the underlying data, before any truncation.
        truncated:
          type: boolean
          title: Truncated
          description: True when `rows` was capped and total_rows exceeds the number returned.
        ref:
          type: string
          title: Ref
          description: Source URL the dataset was derived from (e.g. the Tako card URL).
        sources:
          items:
            $ref: '#/components/schemas/TakoDatasetSource'
          type: array
          title: Sources
          description: 'Provenance for the dataset: the sources the rows were drawn from.'
        provenance:
          type: string
          enum:
          - query
          - web_extraction
          title: Provenance
          description: 'How the rows were produced: ''query'' (Tako data) or ''web_extraction''.'
          default: query
      type: object
      required:
      - columns
      - rows
      - total_rows
      - truncated
      - ref
      - sources
      title: TakoDataset
      description: 'The dataset-slot envelope: exact retrieved rows as positional arrays

        in `columns` order. The rows come directly from the data source; the LLM

        never transcribes them.'
    MetricDefinition:
      properties:
        name:
          type: string
          title: Name
          description: The metric's display name
          examples:
          - Gross Domestic Product (current US$)
        definition:
          type: string
          title: Definition
          description: Human-readable definition of the metric
      type: object
      required:
      - name
      - definition
      title: MetricDefinition
      description: 'Definition of a metric shown on a card. Sourced from the metric''s

        ValueType definition — the same text as the in-app methodology ''Metrics''

        tab.'
    SearchResponse:
      properties:
        cards:
          items:
            $ref: '#/components/schemas/TakoCard'
          type: array
          title: Cards
        web_results:
          items:
            $ref: '#/components/schemas/WebResult'
          type: array
          title: Web Results
        request_id:
          type: string
          title: Request Id
        usage:
          anyOf:
          - $ref: '#/components/schemas/Usage'
          - type: 'null'
      type: object
      required:
      - request_id
      title: SearchResponse
    ExportPricing:
      properties:
        baseline_usd:
          type: number
          title: Baseline Usd
          description: Flat USD charged once per card export, independent of row count.
        row_cpm_usd:
          type: number
          title: Row Cpm Usd
          description: USD charged per 1,000 rows on rows beyond the free allowance (free_rows). Card-level total across the card's priced sources; no per-source breakdown.
        free_rows:
          type: integer
          title: Free Rows
          description: Rows included at the baseline price before the per-1,000-row rate (row_cpm_usd) begins to apply.
        max_rows_ceiling:
          type: integer
          title: Max Rows Ceiling
          description: Hard cap on rows a single export can return and bill; a larger requested max_rows is clamped to this.
      type: object
      required:
      - baseline_usd
      - row_cpm_usd
      - free_rows
      - max_rows_ceiling
      title: ExportPricing
      description: 'Card-CSV export pricing RATE, published so a caller can compute an export''s

        cost before fetching. Full charge =

        baseline_usd + row_cpm_usd * max(0, rows - free_rows) / 1000, rows <= max_rows_ceiling.

        row_cpm_usd is the card-level total (sum of the card''s distinct priced sources''

        per-1,000-row rate); no per-source breakdown.'
    ContentItem:
      properties:
        content_format:
          anyOf:
          - $ref: '#/components/schemas/ContentsFormat'
          - type: 'null'
          description: 'Serialization of the returned card data: ''csv'', ''json_records'', or ''json_compact''. Null for web text (always returned as raw text) and for a quote-only response (nothing was serialized).'
        cost:
          type: number
          title: Cost
          description: Price of this item in USD. On a /contents response this is the amount actually billed; on a quote_only response or a search/answer downloadable card it is a prospective /contents export price (nothing was fetched or billed). Pair with export_pricing to compute a larger export's cost before fetching.
          default: 0.0
        data:
          anyOf:
          - type: string
          - type: 'null'
          title: Data
   

# --- truncated at 32 KB (67 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tako/refs/heads/main/openapi/tako-tako-api-openapi.yml