Eshmere Ltd Drafting API
Winquill drafting bids, and the Library it learns from. Scope: drafting.
Winquill drafting bids, and the Library it learns from. Scope: drafting.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/eshmere-ai:eshmere-ai-drafting-api"
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.
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: 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