Eshmere Ltd Drafting API

Winquill drafting bids, and the Library it learns from. Scope: drafting.

GitHub OpenAPI

Operations 4

POST /v1/tools/start_bid_draft Have Winquill draft the bid #
POST /v1/tools/continue_bid_draft Carry on Winquill's bid draft #
POST /v1/tools/rewrite_bid_answer Have Winquill rewrite an answer #
POST /v1/tools/add_winning_bid Share a winning bid with Winquill #

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/eshmere-ai:eshmere-ai-drafting-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

eshmere-ai-drafting-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Eshmere Ai Drafting API
  version: 0.1.0
  contact:
    name: Eshmere Ltd
    email: hello@winquill.com
    url: https://winquill.com/support
  termsOfService: https://app.winquill.com/terms
  description: 'Operations tagged drafting across 2 of this provider''s published API definitions: eshmere-ai-openapi.json, eshmere-ai-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://mcp.tenda.eshmere.ai
security:
- apiKey: []
tags:
- name: drafting
  description: 'Winquill drafting bids, and the Library it learns from. Scope: drafting.'
paths:
  /v1/tools/start_bid_draft:
    post:
      operationId: start_bid_draft
      summary: Have Winquill draft the bid
      description: 'Use this when the user wants Winquill to write a whole bid for their team: it asks a few questions, drafts every answer from the company''s evidence, then marks and revises them. Relay Winquill''s questions as they are. A whole bid uses one of the month''s full bids, so first call it without confirmed, tell the user how many are left and offer to write it here with draft_bid_response, which uses none; call again with confirmed only if they choose Winquill. notify says where to hear when it''s ready. Needs a Winquill account and workspace. Example: {"tender_reference":"012345-2026"}'
      tags:
      - drafting
      x-tenda-scope: drafting
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tender_reference:
                  type: string
                  minLength: 3
                  description: The notice ID, procurement identifier, solicitation number or the buyer's own reference, e.g. "012345-2026" on Find a Tender, "WS4851234567" on CanadaBuys or "140D0427Q0879" on SAM.gov.
                questions_text:
                  description: The buyer's questions, or the invitation to tender's text, as the user shared it, including the text of files they attached. Left out, Winquill reads the documents the buyer published with the notice, or asks for them.
                  type: string
                  maxLength: 200000
                confirmed:
                  description: true once the user, told it uses one of this month's full bids, chose Winquill's drafting over writing it here answer by answer with draft_bid_response. Leave it out the first time.
                  type: boolean
                notify:
                  description: 'Where Winquill says when the draft is ready, e.g. ["slack"]: the first of these apps where it has somewhere to say it, the conversation this call came from or else the workspace''s first connected channel there. An empty list for nowhere.'
                  maxItems: 2
                  type: array
                  items:
                    type: string
                    enum:
                    - slack
                    - teams
                workspace:
                  description: The Winquill workspace to use, by name, when the user is in more than one, e.g. "Northbridge Services".
                  type: string
              required:
              - tender_reference
      responses:
        '200':
          description: 'The tool''s answer: a summary line and its facts.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  summary:
                    type: string
                  draftId:
                    type: string
                  status:
                    type: string
                  tender:
                    type: object
                    properties:
                      reference:
                        type: string
                      title:
                        type: string
                      buyer:
                        type: string
                      url:
                        type: string
                    additionalProperties: {}
                  started:
                    type: boolean
                  confirm:
                    type: boolean
                  bidsLeft:
                    type: number
                  progress:
                    type: object
                    properties:
                      step:
                        type: string
                        description: questions, team, plan, write, mark, revise or ready; stopped when drafting stopped.
                      stepsDone:
                        type: number
                        description: 'Steps done of steps: all of them once it''s ready.'
                      steps:
                        type: number
                      answersWritten:
                        type: number
                      answers:
                        type: number
                    required:
                    - step
                    - stepsDone
                    - steps
                    - answersWritten
                    - answers
                    additionalProperties: {}
                required:
                - summary
                additionalProperties: {}
        '400':
          description: The body isn't the tool's inputs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: No API key, or one Winquill doesn't know or that was revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The key's scopes, workspace or plan don't allow this.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such tool.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: The tool couldn't do it, with the reason.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Over the key's requests a minute.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              description: Seconds until the next minute.
              schema:
                type: integer
    servers:
    - url: https://mcp.tenda.eshmere.ai
  /v1/tools/continue_bid_draft:
    post:
      operationId: continue_bid_draft
      summary: Carry on Winquill's bid draft
      description: 'Use this to carry on a bid draft Winquill started with start_bid_draft: give it the buyer''s questions it asked for, the team''s answers to the questions Winquill asked, or the go-ahead to draft now with what it has (Winquill marks the gaps [TO CONFIRM]). Drafting starts once Winquill''s questions are answered, or when draft_now is true. Pass each answer with the question''s number or words. Needs a Winquill account. Do not use for a new bid (use start_bid_draft).'
      tags:
      - drafting
      x-tenda-scope: drafting
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                draft_id:
                  description: The draft's ID, from start_bid_draft. Or give the tender's reference instead, or neither for the workspace's latest draft.
                  type: string
                tender_reference:
                  type: string
                  minLength: 3
                  description: The notice ID, procurement identifier, solicitation number or the buyer's own reference, e.g. "012345-2026" on Find a Tender, "WS4851234567" on CanadaBuys or "140D0427Q0879" on SAM.gov.
                questions_text:
                  description: The buyer's questions, when Winquill asked for them.
                  type: string
                  maxLength: 200000
                answers:
                  description: The team's answers to Winquill's questions.
                  type: array
                  items:
                    type: object
                    properties:
                      question:
                        type: string
                        description: The question Winquill asked, by its number such as "2", or its words.
                      answer:
                        type: string
                        description: The team's answer, in their words.
                    required:
                    - question
                    - answer
                notes:
                  description: Anything else the team wants Winquill to use in the bid.
                  type: string
                  maxLength: 4000
                draft_now:
                  description: true to start drafting now, with any of Winquill's questions unanswered.
                  type: boolean
                workspace:
                  description: The Winquill workspace to use, by name, when the user is in more than one, e.g. "Northbridge Services".
                  type: string
      responses:
        '200':
          description: 'The tool''s answer: a summary line and its facts.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  summary:
                    type: string
                  draftId:
                    type: string
                  status:
                    type: string
                  tender:
                    type: object
                    properties:
                      reference:
                        type: string
                      title:
                        type: string
                      buyer:
                        type: string
                      url:
                        type: string
                    additionalProperties: {}
                  progress:
                    type: object
                    properties:
                      step:
                        type: string
                        description: questions, team, plan, write, mark, revise or ready; stopped when drafting stopped.
                      stepsDone:
                        type: number
                        description: 'Steps done of steps: all of them once it''s ready.'
                      steps:
                        type: number
                      answersWritten:
                        type: number
                      answers:
                        type: number
                    required:
                    - step
                    - stepsDone
                    - steps
                    - answersWritten
                    - answers
                    additionalProperties: {}
                required:
                - summary
                additionalProperties: {}
        '400':
          description: The body isn't the tool's inputs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: No API key, or one Winquill doesn't know or that was revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The key's scopes, workspace or plan don't allow this.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such tool.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: The tool couldn't do it, with the reason.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Over the key's requests a minute.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              description: Seconds until the next minute.
              schema:
                type: integer
    servers:
    - url: https://mcp.tenda.eshmere.ai
  /v1/tools/rewrite_bid_answer:
    post:
      operationId: rewrite_bid_answer
      summary: Have Winquill rewrite an answer
      description: Use this when the user wants Winquill to rewrite one answer in a bid it drafted, e.g. "make Q3 shorter" or "use the Glasgow contract as the example in 2.1". Winquill rewrites it in the background, marks it again and says when it's done. A bid's first ten rewrites are included; after that each uses a little of the workspace's allowance. Needs a Winquill account. Do not use before the draft is ready.
      tags:
      - drafting
      x-tenda-scope: drafting
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                draft_id:
                  description: The draft's ID, from start_bid_draft. Or give the tender's reference instead, or neither for the workspace's latest draft.
                  type: string
                tender_reference:
                  type: string
                  minLength: 3
                  description: The notice ID, procurement identifier, solicitation number or the buyer's own reference, e.g. "012345-2026" on Find a Tender, "WS4851234567" on CanadaBuys or "140D0427Q0879" on SAM.gov.
                question:
                  type: string
                  description: The answer to rewrite, by the buyer's number, e.g. "Q3".
                instruction:
                  type: string
                  minLength: 3
                  maxLength: 2000
                  description: What to change, in the user's words.
                workspace:
                  description: The Winquill workspace to use, by name, when the user is in more than one, e.g. "Northbridge Services".
                  type: string
              required:
              - question
              - instruction
      responses:
        '200':
          description: 'The tool''s answer: a summary line and its facts.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  summary:
                    type: string
                  draftId:
                    type: string
                  status:
                    type: string
                  tender:
                    type: object
                    properties:
                      reference:
                        type: string
                      title:
                        type: string
                      buyer:
                        type: string
                      url:
                        type: string
                    additionalProperties: {}
                  rewriting:
                    type: boolean
                  link:
                    type: string
                  progress:
                    type: object
                    properties:
                      step:
                        type: string
                        description: questions, team, plan, write, mark, revise or ready; stopped when drafting stopped.
                      stepsDone:
                        type: number
                        description: 'Steps done of steps: all of them once it''s ready.'
                      steps:
                        type: number
                      answersWritten:
                        type: number
                      answers:
                        type: number
                    required:
                    - step
                    - stepsDone
                    - steps
                    - answersWritten
                    - answers
                    additionalProperties: {}
                required:
                - summary
                additionalProperties: {}
        '400':
          description: The body isn't the tool's inputs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: No API key, or one Winquill doesn't know or that was revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The key's scopes, workspace or plan don't allow this.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such tool.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: The tool couldn't do it, with the reason.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Over the key's requests a minute.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              description: Seconds until the next minute.
              schema:
                type: integer
    servers:
    - url: https://mcp.tenda.eshmere.ai
  /v1/tools/add_winning_bid:
    post:
      operationId: add_winning_bid
      summary: Share a winning bid with Winquill
      description: Use this when the user shares a bid their company won, for Winquill to learn from, e.g. after Winquill offers to learn from winning bids. Winquill keeps it in the workspace's Library and learns what worked in it (structure, tone, the evidence it uses) for the bids it drafts. Pass the bid's text as the user shared it, not a link. Needs a Winquill account and workspace. Do not use for the buyer's questions for a new bid (use start_bid_draft or continue_bid_draft).
      tags:
      - drafting
      x-tenda-scope: drafting
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text:
                  type: string
                  minLength: 200
                  maxLength: 150000
                  description: 'The winning bid''s text: its answers, as the user shared them.'
                title:
                  description: What it was, e.g. "Glasgow schools cleaning, 2024".
                  type: string
                  maxLength: 120
                workspace:
                  description: The Winquill workspace to use, by name, when the user is in more than one, e.g. "Northbridge Services".
                  type: string
              required:
              - text
      responses:
        '200':
          description: 'The tool''s answer: a summary line and its facts.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  summary:
                    type: string
                  saved:
                    type: boolean
                  title:
                    type: string
                  words:
                    type: number
                  link:
                    type: string
                required:
                - summary
                additionalProperties: {}
        '400':
          description: The body isn't the tool's inputs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: No API key, or one Winquill doesn't know or that was revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The key's scopes, workspace or plan don't allow this.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such tool.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: The tool couldn't do it, with the reason.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Over the key's requests a minute.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              description: Seconds until the next minute.
              schema:
                type: integer
    servers:
    - url: https://mcp.tenda.eshmere.ai
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        error_description:
          type: string
      required:
      - error
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: A Winquill API key, starting tk_live_, or the test key tk_test_sample.
x-refined-from:
- eshmere-ai-openapi.json
- eshmere-ai-openapi.json