← Corpus / lossless-monorepo / agent-skill
lossless-monorepo/agent-skills/decile-hub-connector/references/endpoint-inventory
- Path
- agent-skills/decile-hub-connector/references/endpoint-inventory.md
Decile Hub API v1 — Endpoint Inventory
Exhaustive list of every path in the OpenAPI spec, grouped by tags. Generated from
ai-labs/augment-it/clients/humain-vc/inputs/decilehub/202506_decilehub-docs_swagger.yaml
(OpenAPI 3.0.1, Decile Hub API v1, 11,970 lines). Format:
METHOD /path — purpose — params — request body — response.
All routes are under the per-tenant base URL https://<tenant>.decilehub.com. Auth: Authorization: <raw-token>.
Operations marked [agent-tool] carry x-agent-tool: true in the spec (expose these first in the MCP).
Authentication
GET /api/v1/whoami— identify the authenticated token (kind, user, account,account_user.roles,accessible_pipeline_ids). 403 on legacy tokens.
Admin
GET /api/v1/admin/accounts— list accounts the calling admin can access. Querysearch; requiresX-Account-Idheader; admin token only.
Accounts
GET /api/v1/accounts— current account basic info.
AccountUsers
GET /api/v1/account_users— list team members (discoverassigned_idfor ownership). Querypage(0-idx, size 100). Pattern A.
ActivityEntries
GET /api/v1/activity_entries— activity feed, newest first. Many filters (subject_type,subject_id,event,user_id,created_after/before,page_token,per_page≤100). Pattern C (next_page_token,has_more).GET /api/v1/activity_entries/{id}— single entry + full entryable body →ActivityEntryDetail.
Entities (funds, SPVs, holdings, management companies, general partnerships)
GET /api/v1/entities— list firm-admin entities. Querytype[](fund/spv/management_company/general_partnership/holding),active,page(1-idx),per_page. Pattern B.POST /api/v1/entities— create entity (+ Organization + FundDetail). BodyEntityCreateRequest. Not idempotent. Requires full-access account admin.GET /api/v1/entities/{id}— show entity + details (+ optionalinclude=calculations,window=now|lifetime).PATCH /api/v1/entities/{id}— update writable fields (kindimmutable). BodyEntityUpdateRequest. 409 if org shared with siblings.
Capital Accounts
GET /api/v1/entities/{entity_id}/capital_accounts— identity-only list. Queryactive,partner_type,page,per_page. Pattern B.GET /api/v1/capital_accounts/{id}— identity + commitments + contacts + entity (+include=transfers).GET /api/v1/capital_accounts/{id}/calculations— single-CA period figures. Queryperiod_start,period_end.GET /api/v1/entities/{entity_id}/capital_accounts/calculations— bulk calc + totals.
Journal Entries (GL)
GET /api/v1/entities/{entity_id}/journal_entries— list GL transactions (many filters). Pattern B.POST /api/v1/entities/{entity_id}/journal_entries— create one GL entry. Not idempotent.POST /api/v1/entities/{entity_id}/journal_entries/bulk— atomic batch (1–100). 422 →JournalEntryBulkErrors.GET /api/v1/journal_entries/{id}— show one.
Accounting Accounts (chart of accounts)
GET /api/v1/accounting_accounts— list GL codes (filterscode,code_prefix,is_1099_eligible,search). Pattern B.GET /api/v1/accounting_accounts/{id}— show one.
Capital Calls
GET /api/v1/capital_calls— list. Queryentity_id(required),status,period_start/end. Pattern B.GET /api/v1/capital_calls/{id}— header for one call.GET /api/v1/capital_calls/{id}/details— per-LP rows.
Financial Reports
GET /api/v1/financial_reports— list report jobs. Pattern A.POST /api/v1/financial_reports— queue async report job (202).report_typesenum orall_reports;formatxlsx/pdf.GET /api/v1/financial_reports/{id}— job status (pollstatus_url).
Events
GET /api/v1/events— list events (filterstitle,start_date,end_date,published,access_type). Pattern A.POST /api/v1/events— create event (auto-creates pipeline + questionnaire).GET /api/v1/events/{id}— show event (by id orunique_event_id;include=guests).PUT /api/v1/events/{id}— update event.DELETE /api/v1/events/{id}— delete event + associated data.POST /api/v1/events/{id}/guests— bulk-add guests (creates People). Returns{added, duplicates, errors}.GET /api/v1/events/{id}/guests— list guests w/ RSVP + stage.PATCH /api/v1/events/{id}/rsvp— update guest RSVP (email,status).
Files & Folders
GET /api/v1/files— list files (filtersname,folder_id,extension, dates). Pattern A.POST /api/v1/files— upload (multipart).file[file],file[attachable_type](Person/Organization/PipelineProspect),file[attachable_id],folder_id.GET /api/v1/files/{id}— show file.PUT /api/v1/files/{id}— update metadata or upload new version (multipart).GET /api/v1/files/{id}/download— download (binary).POST /api/v1/files/{id}/save_to_folder— save an in-message Attachment into a data-room folder (idempotent). (not [agent-tool])GET /api/v1/folders— list folders.POST /api/v1/folders— create folder (name,parent_id).GET /api/v1/folders/{id}— show folder + children (contentsfilter).GET /api/v1/folders/search— search folders by name. Queryq(required). (not [agent-tool])
Directory — People & Organizations (the CRM core) [agent-tool]
GET /api/v1/organizations— list orgs.include(notes,people,referred_by,…),fields,custom_data_points,name, dates,page(0-idx). Pattern A.POST /api/v1/organizations— bulk add orgs (first 100). →{created, duplicates, errors}.POST /api/v1/organization— upsert ONE org (natural keyname). →{status, organization_id, changes}.GET /api/v1/organizations/{id}— show org (+logo=attached_image).POST /api/v1/organizations/{id}/notes— append note (body,context).GET /api/v1/people— list people.include(notes,referred_by,organizations),fields,custom_data_points,first_name,last_name,email, dates,page. Pattern A.POST /api/v1/people— bulk add people (first 100). →{created, duplicates, errors}.POST /api/v1/person— upsert ONE person (natural keyemail). →{status, person_id, changes}.GET /api/v1/people/{id}— show person (+picture=attached_image).POST /api/v1/people/{id}/notes— append note.
Tasks
GET /api/v1/tasks— list (requires:hub_tasksflag, else 404). Filtersstatus,assignee_id,origin. Pattern A.POST /api/v1/tasks— create user-origin task (title,assignee_idrequired).GET /api/v1/tasks/{id}— get one.PATCH /api/v1/tasks/{id}— update.POST /api/v1/tasks/{id}/complete— mark completed.
PipelineProspects (CRM deal/relationship rows) [agent-tool]
GET /api/v1/pipeline_prospects— list.pipeline_id(required), many filters (stage, tags, contact dates),page. Pattern A. (x-agent-category: context)POST /api/v1/pipeline_prospects— bulk create Person/Org prospects (first 100 each).PATCH /api/v1/pipeline_prospects— batch update (resolve by id/name/email). Partial success → 200 witherrors[].PATCH /api/v1/pipeline_prospects/{id}— update one (querypipeline_idrequired). Returns bare{error: string}on failure.POST /api/v1/pipeline_prospects/{pipeline_prospect_id}/notes— append note.POST /api/v1/pipeline_prospect— upsert ONE prospect (exactly one of person|organization). →{status, pipeline_prospect_id, changes}.GET /api/v1/pipeline_prospects/{id}/action_executions— list queued/run pipeline actions (tree).POST /api/v1/pipeline_prospects/{id}/action_executions/{id}/execute— execute one action.POST /api/v1/pipeline_prospects/{id}/action_executions/{id}/preview— preview a pending send_email action.
Pipelines
GET /api/v1/pipelines— list active pipelines (filterkind). (x-agent-category: context)GET /api/v1/pipelines/{id}— pipeline + stages.GET /api/v1/pipelines/{id}/metrics— current + 7-day-ago snapshot.POST /api/v1/pipelines/{pipeline_id}/data_points— create a custom data point (Variable) for the pipeline TYPE (account-wide fan-out; account admin). Format enum: string, paragraph, url, number, date, date_us, currency_us, currency_eu, percent, percent_rounded, select, file_url.
ResearchInvestors (shared Decile Research LP roster) (not [agent-tool])
GET /api/v1/research/investors— list shared LP roster.POST /api/v1/research/investors/copy_to_pipeline— copy entries to a stage (202).
Deal Shares (network feed)
POST /api/v1/deals/share— create/update deal share (idempotent per org). Required:organization_id, company_name, the_bet, referring_manager_name, referring_manager_email.GET /api/v1/deals/shares— list own deal shares. Pattern C.GET /api/v1/deals/shares/{id}— get one.DELETE /api/v1/deals/shares/{id}— delete one.POST /api/v1/deals/shares/{id}/copy_to_pipeline— copy shared deal into a stage (202).POST /api/v1/deals/shares/ai_auto_fill— AI auto-fill enrichment (synchronous LLM).
Deal Memos
GET /api/v1/deal_memos— list (filtersorganization_id,stage). Pattern C.POST /api/v1/deal_memos— start a memo (organization_idrequired).GET /api/v1/deal_memos/{id}— full memo.PATCH /api/v1/deal_memos/{id}— update (422 if closed).POST /api/v1/deal_memos/{id}/submit_for_review— submit for review.POST /api/v1/deal_memos/{id}/close— close withclose_type(approve/pass).
PortfolioCompanies
GET /api/v1/portfolio_companies— list (each = fund×org pair). Filtersfund_id,organization_id. Pattern C.GET /api/v1/portfolio_companies/{id}— get one.GET /api/v1/portfolio_companies/{portfolio_company_id}/investments— list investment tranches.GET /api/v1/portfolio_company_investments/{id}— get one tranche.
Pacts / Lpas
POST /api/v1/pacts/send_pact— send PACT email to a Person (person_id,pipeline_id).POST /api/v1/lpas/send_lpa— send LPA email to a Person (moves to Closing, creates capital account).
Emails
GET /api/v1/email_templates— list templates. Pattern A.GET /api/v1/email_templates/{id}— full template +variables: [{name, required}]schema.POST /api/v1/emails/preview— preview templated/freeform email (exactly one recipient field).POST /api/v1/emails— send/schedule/test-send. Requiresconfirm: true(422confirmation_requiredotherwise).
Variables (merge-tag / data-point picker) (not [agent-tool])
GET /api/v1/variables— variable picker forpipeline_id(required). Pattern A.GET /api/v1/variables/{id}— show one variable (querypipeline_idrequired).
Base (Decile Base community)
GET /api/v1/base/inbox— inbox feed. Pattern D (meta).GET /api/v1/base/channels— list channels.GET /api/v1/base/channels/{id}/posts— posts in a channel.POST /api/v1/base/posts— create post (Markdown).GET /api/v1/base/posts/{id}— show post + replies.POST /api/v1/base/replies— reply to a post.POST /api/v1/base/search— full-text search posts + articles.GET /api/v1/pipeline_prospects/{pipeline_prospect_id}/attachments— list a prospect’s files; mergessource: "direct"(CRM attachments on the org/person) andsource: "questionnaire"(founder’s deal-intake uploads). 403 unless the pipeline isinvestment-type. Not in the 202506 swagger — live docs only.POST /api/v1/pipeline_prospects/{pipeline_prospect_id}/attachments— attach directly (multipart:attachment[file], optionalattachment[name]). No data-room copy. Needsedit_prospects?. Live docs only.DELETE /api/v1/pipeline_prospects/{pipeline_prospect_id}/attachments/{attachment_id}— delete adirectattachment only. Live docs only.GET /api/v1/pipeline_prospects/{pipeline_prospect_id}/attachments/{signed_id}/download— download by signed blob id. Live docs only.GET /api/v1/base/attachments/{id}— download a blob (binary / 302 if >50MB).
agent_platform (not [agent-tool])
POST /api/v1/agent_platform/file_search— semantic search over account corpus (q,limit).
Key schemas (field lists)
Full field lists for the CRM-core resources are in the SKILL.md “Pushing data” + “Mapping” sections.
The named component schemas worth knowing: PortfolioCompany, PortfolioCompanyInvestment(Detail),
Entity/EntityDetails (funds), CapitalAccountIdentity/Commitment/CapitalAccountContact,
Task, note_envelope, ActivityEntry(Detail), DealShare, variable, attached_image,
associated_person, address, ErrorResponse. Person and Organization have NO standalone
schema — their stored fields are dynamic (data / custom_data_points jsonb); the write fields
are documented inline (see SKILL.md). Read the spec for exact field-level detail.