{"openapi":"3.1.0","info":{"title":"Pipedrive Reports (BYOK) API","version":"0.1.0","description":"Pipedrive Reports (BYOK) lets an AI assistant read your own Pipedrive Reports data through the Pipedrive Reports API with a key you supply (personal API token). Read-only: 5 tools (get_deals_summary, get_pipeline_conversion_statistics, get_pipeline_movement_statistics, find_goals, get_goal_results). The BYOK key travels with each request, is used for that one call only and is never stored, logged...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-pipedrive-reports.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-pipedrive-reports/docs"},"termsOfService":"https://connectorbay.com/byok-pipedrive-reports/terms"},"servers":[{"url":"https://byok-pipedrive-reports.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-pipedrive-reports/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_deals_summary":{"post":{"operationId":"get_deals_summary","summary":"Get the number and total value of deals (plain and weighted) filtered by status, pipeline, stage or user. Totals only, n","description":"Get the number and total value of deals (plain and weighted) filtered by status, pipeline, stage or user. Totals only, no deal details. Use for \"What is the total value of our open deals in Pipedrive\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["open","won","lost"],"type":"string"},{"type":"null"}],"default":null,"description":"Deal status: open, won or lost. Leave out for all.","title":"Status"},"pipeline_id":{"anyOf":[{"maximum":100000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only deals in this pipeline (a number).","title":"Pipeline Id"},"stage_id":{"anyOf":[{"maximum":100000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only deals in this stage (a number).","title":"Stage Id"},"user_id":{"anyOf":[{"maximum":100000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only deals owned by this user id.","title":"User Id"}},"title":"get_deals_summaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_pipeline_conversion_statistics":{"post":{"operationId":"get_pipeline_conversion_statistics","summary":"Get stage-to-stage conversion rates and the won and lost conversion rates of a pipeline for a period. Use for \"What is t","description":"Get stage-to-stage conversion rates and the won and lost conversion rates of a pipeline for a period. Use for \"What is the win rate of Pipedrive pipeline 1 in October\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pipeline_id":{"description":"Id of the pipeline (a number such as 1; see list_pipelines in the Pipedrive connector).","maxLength":200,"title":"Pipeline Id","type":"string"},"start_date":{"description":"Start of the period as YYYY-MM-DD.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"description":"End of the period as YYYY-MM-DD.","maxLength":10,"title":"End Date","type":"string"},"user_id":{"anyOf":[{"maximum":100000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Id of the user whose figures to use. Leave out for the token's own user.","title":"User Id"}},"required":["pipeline_id","start_date","end_date"],"title":"get_pipeline_conversion_statisticsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_pipeline_movement_statistics":{"post":{"operationId":"get_pipeline_movement_statistics","summary":"Get how deals moved through a pipeline in a period: new, still open, won and lost deal counts and values, movements betw","description":"Get how deals moved through a pipeline in a period: new, still open, won and lost deal counts and values, movements between stages and average age. Use for \"How many deals did Pipedrive pipeline 1 win and lose last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pipeline_id":{"description":"Id of the pipeline (a number such as 1; see list_pipelines in the Pipedrive connector).","maxLength":200,"title":"Pipeline Id","type":"string"},"start_date":{"description":"Start of the period as YYYY-MM-DD.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"description":"End of the period as YYYY-MM-DD.","maxLength":10,"title":"End Date","type":"string"},"user_id":{"anyOf":[{"maximum":100000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Id of the user whose figures to use. Leave out for the token's own user.","title":"User Id"}},"required":["pipeline_id","start_date","end_date"],"title":"get_pipeline_movement_statisticsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/find_goals":{"post":{"operationId":"find_goals","summary":"Find sales goals with title, type, assignee, interval, period and target. By default only the token user's goals; filter","description":"Find sales goals with title, type, assignee, interval, period and target. By default only the token user's goals; filters widen it. Use for \"What sales goals are active in Pipedrive\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type_name":{"anyOf":[{"enum":["deals_won","deals_progressed","activities_completed","activities_added","deals_started"],"type":"string"},{"type":"null"}],"default":null,"description":"Goal type: deals_won, deals_progressed, activities_completed, activities_added or deals_started.","title":"Type Name"},"title":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the goal title.","title":"Title"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True for active goals only (default), false for inactive.","title":"Is Active"},"assignee_id":{"anyOf":[{"maximum":100000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Id of the user (or team) the goal belongs to.","title":"Assignee Id"},"assignee_type":{"anyOf":[{"enum":["person","company","team"],"type":"string"},{"type":"null"}],"default":null,"description":"Type of the assignee: person, company or team.","title":"Assignee Type"},"period_start":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the period to look in, YYYY-MM-DD.","title":"Period Start"},"period_end":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End of the period to look in, YYYY-MM-DD.","title":"Period End"}},"title":"find_goalsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_goal_results":{"post":{"operationId":"get_goal_results","summary":"Get the progress made on one goal within a period, with the goal's definition. Use for \"How far along is Pipedrive goal ","description":"Get the progress made on one goal within a period, with the goal's definition. Use for \"How far along is Pipedrive goal 9b1a2c3d this quarter\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"goal_id":{"description":"Id of the goal (a string such as '9b1a2c3d...' from find_goals).","maxLength":200,"title":"Goal Id","type":"string"},"period_start":{"description":"Start of the period, YYYY-MM-DD.","maxLength":10,"title":"Period Start","type":"string"},"period_end":{"description":"End of the period, YYYY-MM-DD.","maxLength":10,"title":"Period End","type":"string"}},"required":["goal_id","period_start","period_end"],"title":"get_goal_resultsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}