tektolo-com Feedback API

The feedback API from tektolo-com — 1 operation(s) for feedback.

Operations 1

POST /v1/feedback Send feedback about the site, a tool, or an idea for a new tool #

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/tektolo-com:tektolo-com-feedback-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 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

tektolo-com-feedback-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tektolo Capabilities Feedback API
  summary: 'Source-cited capabilities for humans, developers and agents: the same findings under the same ruleset always give the same answer.'
  description: 'Rules-based tools for the US rental move-out. Property turnover prices the make-ready work from inspection findings, scaled to the ZIP code''s labor market. Deposit settlement applies each state''s security deposit statute (and covered cities'' ordinances): the return deadline, each deduction assessed, interest, the refund and a draft itemized statement. Every result carries its citations, assumptions and the ruleset version that produced it. No account is needed. The same operations are MCP tools at /mcp/rental-property, and /catalog.json lists each one with its schemas and examples.'
  termsOfService: https://tektolo.com/terms
  contact:
    name: Tektolo
    url: https://tektolo.com/contact
    email: hello@tektolo.com
  version: 0.1.0
servers:
- url: https://tektolo.com
tags:
- name: Feedback
paths:
  /v1/feedback:
    post:
      tags:
      - Feedback
      summary: Send feedback about the site, a tool, or an idea for a new tool
      description: Free text plus a scope, from people or agents. Agents may POST directly; there is no MCP tool for this on purpose. Messages are capped at 2000 characters, links are replaced with [link] and at most 3 are accepted. Provide an email only if you want a reply. Rate limited to 5 per minute. Leave `website` empty.
      operationId: post_feedback_v1_feedback_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeedbackIn'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedbackOut'
        '422':
          description: Invalid feedback
        '429':
          description: Rate limited
        '503':
          description: Not saved (storage unavailable); nothing was kept, try again
components:
  schemas:
    FeedbackOut:
      properties:
        received:
          type: boolean
          title: Received
        id:
          type: string
          title: Id
      type: object
      required:
      - received
      - id
      title: FeedbackOut
    WtpAnswer:
      properties:
        choice:
          type: string
          enum:
          - per_move_out
          - monthly
          - not_at_all
          title: Choice
        amount_usd:
          anyOf:
          - type: string
            maxLength: 12
          - type: 'null'
          title: Amount Usd
        payment_model:
          anyOf:
          - type: string
            enum:
            - balance
            - monthly
            - no_preference
          - type: 'null'
          title: Payment Model
        minimum_topup_usd:
          anyOf:
          - type: string
            maxLength: 12
          - type: 'null'
          title: Minimum Topup Usd
      additionalProperties: false
      type: object
      required:
      - choice
      title: WtpAnswer
      description: Optional price evidence, never a quoted offer or a payment instruction.
    EstimateContext:
      properties:
        result_hash:
          anyOf:
          - type: string
            maxLength: 71
            pattern: ^sha256:[0-9a-f]{8,64}$
          - type: 'null'
          title: Result Hash
        input_hash:
          anyOf:
          - type: string
            maxLength: 71
            pattern: ^sha256:[0-9a-f]{8,64}$
          - type: 'null'
          title: Input Hash
        ruleset_version:
          anyOf:
          - type: string
            maxLength: 40
            pattern: ^[0-9A-Za-z.+-]{1,40}$
          - type: 'null'
          title: Ruleset Version
        contract_version:
          anyOf:
          - type: string
            maxLength: 40
            pattern: ^[0-9A-Za-z.+-]{1,40}$
          - type: 'null'
          title: Contract Version
        cbsa:
          anyOf:
          - type: string
            maxLength: 5
            pattern: ^\d{5}$
          - type: 'null'
          title: Cbsa
        expected:
          anyOf:
          - type: number
            maximum: 1000000000.0
            minimum: 0.0
          - type: 'null'
          title: Expected
      type: object
      title: EstimateContext
      description: 'Identifiers of the estimate being rated. Hashes, versions, region and total only.


        Every field has a strict format (security review M1): they end up in the feedback digest,

        so nothing here may carry free text.'
    FeedbackIn:
      properties:
        scope:
          type: string
          enum:
          - site
          - tool
          - idea
          title: Scope
          description: site, a specific tool, or an idea for a new tool.
        capability:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Capability
          description: Tool id when scope is tool.
        page:
          type: string
          maxLength: 200
          title: Page
          description: Path of the page the feedback is about.
          default: /
        kind:
          type: string
          enum:
          - rating
          - issue
          - idea
          - unmatched
          - wtp
          title: Kind
          default: issue
        rating:
          anyOf:
          - type: string
            enum:
            - useful
            - not_quite
          - type: 'null'
          title: Rating
        reasons:
          items:
            type: string
            enum:
            - too_high
            - too_low
            - missing_items
            - wrong_items
            - confusing
            - other
          type: array
          maxItems: 6
          title: Reasons
        message:
          type: string
          maxLength: 2000
          title: Message
          default: ''
        email:
          anyOf:
          - type: string
            maxLength: 254
          - type: 'null'
          title: Email
          description: Only if you want a reply.
        source:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Source
          description: Optional self-reported source; not verified provenance.
        reporter:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Reporter
          description: Optional reporter type, for example human or agent; self-reported.
        agent_name:
          anyOf:
          - type: string
            maxLength: 128
          - type: 'null'
          title: Agent Name
          description: Optional agent label. Do not include personal details or secrets.
        estimate:
          anyOf:
          - $ref: '#/components/schemas/EstimateContext'
          - type: 'null'
        wtp:
          anyOf:
          - $ref: '#/components/schemas/WtpAnswer'
          - type: 'null'
        finding_text:
          anyOf:
          - type: string
            maxLength: 300
          - type: 'null'
          title: Finding Text
          description: Unmatched kind only.
        website:
          type: string
          title: Website
          description: Leave empty (spam trap).
          default: ''
      type: object
      required:
      - scope
      title: FeedbackIn
      description: What the site, a tool or an idea box sends to ``POST /v1/feedback``.