Bidsketch
BUSINESS · CRM & SUPPORT
Clients, proposals, fees, and reusable sections in the account they connected.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
bidsketch_delete_clients_by_client_id_jsonWRITEDelete Client via DELETE /clients/{client_id}.json. Deletes a client and answers 204 No Content. This also deletes all of the client's proposals.
bidsketch_delete_fees_by_fee_id_jsonWRITEDelete Fee via DELETE /fees/{fee_id}.json. Deletes that saved fee.
bidsketch_delete_proposals_by_proposal_id_fees_by_fee_id_jsonWRITEDelete Proposal Fee via DELETE /proposals/{proposal_id}/fees/{fee_id}.json. Deletes that proposal fee.
bidsketch_delete_proposals_by_proposal_id_jsonWRITEDelete Proposal via DELETE /proposals/{proposal_id}.json. Deletes a proposal and all its content, and answers 204 No Content.
bidsketch_delete_proposals_by_proposal_id_sections_by_section_id_jsonWRITEDelete Proposal Section via DELETE /proposals/{proposal_id}/sections/{section_id}.json. Deletes that proposal section.
bidsketch_delete_sections_by_section_id_jsonWRITEDelete Section via DELETE /sections/{section_id}.json. Deletes a saved section.
bidsketch_delete_webhooks_by_webhook_id_jsonWRITEDelete Webhook via DELETE /webhooks/{webhook_id}.json. Deletes a webhook and answers 204 No Content.
bidsketch_get_clients_by_client_id_jsonREADGet Client via GET /clients/{client_id}.json. Gets one client by id: contact details, address, notes and the secondary contact.
bidsketch_get_clients_by_client_id_proposals_jsonREADGet Client Proposals via GET /clients/{client_id}/proposals.json. Gets a collection of all the proposals for a single client.
bidsketch_get_clients_jsonREADGet Clients via GET /clients.json. Returns all the clients on the account (clients are the people or companies proposals are prepared for), 100 per page by default.
bidsketch_get_fees_by_fee_id_jsonREADGet Fee via GET /fees/{fee_id}.json. Gets a single saved fee.
bidsketch_get_fees_jsonREADGet Fees via GET /fees.json. Lists all the fees saved to the account to be reused in future proposals.
bidsketch_get_proposals_by_proposal_id_content_jsonREADGet Proposal Content via GET /proposals/{proposal_id}/content.json. Gets a proposal with all its content in one call: opening sections, then fees, then closing sections, which is the order they appear in the proposal.
bidsketch_get_proposals_by_proposal_id_feesREADGet Proposal Fees via GET /proposals/{proposal_id}/fees.json. Lists all the fees on a proposal. Proposal fees belong to that proposal; account-level reusable fees are Get Fees.
bidsketch_get_proposals_by_proposal_id_fees_by_fee_id_jsonREADGet Proposal Fee via GET /proposals/{proposal_id}/fees/{fee_id}.json. Gets a single fee on a proposal, with its amount, quantity, unit, total and formatted details.
bidsketch_get_proposals_by_proposal_id_jsonREADGet Proposal via GET /proposals/{proposal_id}.json. Gets one proposal: status, owner, currency, calculated taxes, discount and fee subtotals, settings, its client, and links to its opening sections, fees and closing sections.
bidsketch_get_proposals_by_proposal_id_sections_by_section_id_jsonREADGet Proposal Section via GET /proposals/{proposal_id}/sections/{section_id}.json. Fetches a single proposal section, including its HTML description.
bidsketch_get_proposals_by_proposal_id_sections_closing_jsonREADGet Proposal Closing Sections via GET /proposals/{proposal_id}/sections/closing.json. Lists a proposal's closing sections, which are presented last, after its fees.
bidsketch_get_proposals_by_proposal_id_sections_jsonREADGet Proposal Sections via GET /proposals/{proposal_id}/sections.json. Gets all the sections of a proposal, opening and closing. Proposal sections belong to that proposal; account-level reusable sections are Get Sections.
bidsketch_get_proposals_by_proposal_id_sections_opening_jsonREADGet Proposal Opening Sections via GET /proposals/{proposal_id}/sections/opening.json. Lists a proposal's opening sections, which are presented first, before its fees.
bidsketch_get_proposals_jsonREADGet Proposals via GET /proposals.json. Returns all the proposals for the account (name, description, status, is_draft), 100 per page by default.
bidsketch_get_proposals_stats_jsonREADGet Proposal Stats via GET /proposals/stats.json. Returns proposal statistics for the account (the total count).
bidsketch_get_sections_by_section_id_jsonREADGet Section via GET /sections/{section_id}.json. Fetches a saved section, including its HTML description.
bidsketch_get_sections_jsonREADGet Sections via GET /sections.json. Lists all the sections saved to the account to be reused in future proposals.
bidsketch_get_templates_by_template_id_jsonREADGet Template via GET /templates/{template_id}.json. Gets a single template with the account-level sections and fees it references.
bidsketch_get_templates_jsonREADGet Templates via GET /templates.json. Lists all the proposal templates saved for the account. Templates are read-only through the API.
bidsketch_post_clients_jsonWRITECreate Client via POST /clients.json. Creates a client from the provided data and answers 201 Created with it. first_name, last_name and email are required. Some plans limit the number of clients; at the limit Bidsketch answers 426 Upgrade Required.
bidsketch_post_fees_jsonWRITECreate Fee via POST /fees.json. Saves a reusable fee to the account. name, amount and feetype are required.
bidsketch_post_proposals_by_proposal_id_fees_jsonWRITECreate Proposal Fee via POST /proposals/{proposal_id}/fees.json. Creates a fee on a proposal. name, description, feetype and amount are required; optional marks it as an optional item.
bidsketch_post_proposals_by_proposal_id_sections_jsonWRITECreate Proposal Section via POST /proposals/{proposal_id}/sections.json. Creates a section on a proposal. name, sectiontype (opening or closing) and description are required.
bidsketch_post_proposals_jsonWRITECreate Proposal via POST /proposals.json. Creates a proposal from scratch. name and client_id are required, and the docs' walkthrough supplies description too; add content afterwards with Create Proposal Section and Create Proposal Fee. Some plans limit the number of proposals (426 Upgrade Required at the limit).
bidsketch_post_sections_jsonWRITECreate Section via POST /sections.json. Saves a reusable section to the account. name and sectiontype (opening or closing) are required.
bidsketch_post_templates_by_template_id_proposals_jsonWRITECreate Proposal From Template via POST /templates/{template_id}/proposals.json. Creates a proposal from an existing template, which also creates the template's proposal sections and fees. name and client_id are required, and the docs' walkthrough supplies description too. Some plans limit the number of proposals (426 Upgrade Required at the limit).
bidsketch_post_webhooks_jsonWRITECreate Webhook via POST /webhooks.json. Creates a webhook for one event; event and endpoint are required. Bidsketch POSTs {event, data} to the endpoint, which must answer 200 OK (it retries 20 times, and a 410 Gone deletes the webhook). Store the returned id to delete it later.
bidsketch_put_clients_by_client_id_jsonWRITEUpdate Client via PUT /clients/{client_id}.json. Updates a client with the provided data (the docs' example sends only the fields being changed) and returns the updated client.
bidsketch_put_fees_by_fee_id_jsonWRITEUpdate Fee via PUT /fees/{fee_id}.json. Updates a saved fee with the provided data.
bidsketch_put_proposals_by_proposal_id_fees_by_fee_id_jsonWRITEUpdate Proposal Fee via PUT /proposals/{proposal_id}/fees/{fee_id}.json. Updates a proposal fee with the provided data.
bidsketch_put_proposals_by_proposal_id_jsonWRITEUpdate Proposal via PUT /proposals/{proposal_id}.json. Updates a proposal with the provided data (the docs' example sends only description).
bidsketch_put_proposals_by_proposal_id_sections_by_section_id_jsonWRITEUpdate Proposal Section via PUT /proposals/{proposal_id}/sections/{section_id}.json. Updates a proposal section with the provided data.
bidsketch_put_sections_by_section_id_jsonWRITEUpdate Section via PUT /sections/{section_id}.json. Updates a saved section with the provided data.
Often connected alongside
Put Bidsketch behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.