curl --request PATCH \
--url https://www.ruddr.io/api/workspace/opportunities/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"nextSteps": "<string>",
"amount": 123,
"probability": 123,
"openDate": "2023-12-25",
"closeDate": "2023-12-25",
"currency": "<string>",
"cloudFolderUrl": "<string>",
"ownerId": "<string>",
"opportunityLeadSourceId": "<string>",
"opportunityTypeId": "<string>",
"tagIds": [
"<string>"
],
"practiceId": "<string>",
"businessUnitId": "<string>",
"companyId": "<string>",
"projects": [
{
"id": "<string>",
"amount": 123
}
],
"opportunityStageId": "<string>",
"opportunityPipelineId": "<string>"
}
'import requests
url = "https://www.ruddr.io/api/workspace/opportunities/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"nextSteps": "<string>",
"amount": 123,
"probability": 123,
"openDate": "2023-12-25",
"closeDate": "2023-12-25",
"currency": "<string>",
"cloudFolderUrl": "<string>",
"ownerId": "<string>",
"opportunityLeadSourceId": "<string>",
"opportunityTypeId": "<string>",
"tagIds": ["<string>"],
"practiceId": "<string>",
"businessUnitId": "<string>",
"companyId": "<string>",
"projects": [
{
"id": "<string>",
"amount": 123
}
],
"opportunityStageId": "<string>",
"opportunityPipelineId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
nextSteps: '<string>',
amount: 123,
probability: 123,
openDate: '2023-12-25',
closeDate: '2023-12-25',
currency: '<string>',
cloudFolderUrl: '<string>',
ownerId: '<string>',
opportunityLeadSourceId: '<string>',
opportunityTypeId: '<string>',
tagIds: ['<string>'],
practiceId: '<string>',
businessUnitId: '<string>',
companyId: '<string>',
projects: [{id: '<string>', amount: 123}],
opportunityStageId: '<string>',
opportunityPipelineId: '<string>'
})
};
fetch('https://www.ruddr.io/api/workspace/opportunities/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.ruddr.io/api/workspace/opportunities/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'nextSteps' => '<string>',
'amount' => 123,
'probability' => 123,
'openDate' => '2023-12-25',
'closeDate' => '2023-12-25',
'currency' => '<string>',
'cloudFolderUrl' => '<string>',
'ownerId' => '<string>',
'opportunityLeadSourceId' => '<string>',
'opportunityTypeId' => '<string>',
'tagIds' => [
'<string>'
],
'practiceId' => '<string>',
'businessUnitId' => '<string>',
'companyId' => '<string>',
'projects' => [
[
'id' => '<string>',
'amount' => 123
]
],
'opportunityStageId' => '<string>',
'opportunityPipelineId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://www.ruddr.io/api/workspace/opportunities/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"nextSteps\": \"<string>\",\n \"amount\": 123,\n \"probability\": 123,\n \"openDate\": \"2023-12-25\",\n \"closeDate\": \"2023-12-25\",\n \"currency\": \"<string>\",\n \"cloudFolderUrl\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"opportunityLeadSourceId\": \"<string>\",\n \"opportunityTypeId\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"practiceId\": \"<string>\",\n \"businessUnitId\": \"<string>\",\n \"companyId\": \"<string>\",\n \"projects\": [\n {\n \"id\": \"<string>\",\n \"amount\": 123\n }\n ],\n \"opportunityStageId\": \"<string>\",\n \"opportunityPipelineId\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://www.ruddr.io/api/workspace/opportunities/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"nextSteps\": \"<string>\",\n \"amount\": 123,\n \"probability\": 123,\n \"openDate\": \"2023-12-25\",\n \"closeDate\": \"2023-12-25\",\n \"currency\": \"<string>\",\n \"cloudFolderUrl\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"opportunityLeadSourceId\": \"<string>\",\n \"opportunityTypeId\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"practiceId\": \"<string>\",\n \"businessUnitId\": \"<string>\",\n \"companyId\": \"<string>\",\n \"projects\": [\n {\n \"id\": \"<string>\",\n \"amount\": 123\n }\n ],\n \"opportunityStageId\": \"<string>\",\n \"opportunityPipelineId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/opportunities/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"nextSteps\": \"<string>\",\n \"amount\": 123,\n \"probability\": 123,\n \"openDate\": \"2023-12-25\",\n \"closeDate\": \"2023-12-25\",\n \"currency\": \"<string>\",\n \"cloudFolderUrl\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"opportunityLeadSourceId\": \"<string>\",\n \"opportunityTypeId\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"practiceId\": \"<string>\",\n \"businessUnitId\": \"<string>\",\n \"companyId\": \"<string>\",\n \"projects\": [\n {\n \"id\": \"<string>\",\n \"amount\": 123\n }\n ],\n \"opportunityStageId\": \"<string>\",\n \"opportunityPipelineId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "6739fb0c-d986-4eee-a427-3fbd68f66f76",
"name": "Acme Corp - Mobile App",
"description": "Proposal for a new mobile application.",
"nextSteps": "Follow up with client on proposal.",
"amount": 50000,
"probability": 0.75,
"priorityId": "high",
"createdAt": "2025-01-15T20:47:03.284Z",
"openDate": "2025-01-15",
"closeDate": "2025-06-30",
"modifiedAt": "2025-01-15T20:47:03.284Z",
"currency": "USD",
"cloudFolderUrl": "https://drive.google.com/drive/folders/abc123",
"weightedAmount": 37500,
"owner": {
"id": "94bc043d-95cb-4f4b-8a9f-8e74cd3dd0db",
"name": "John Davis"
},
"opportunityLeadSource": {
"id": "1df022a4-0e91-463f-a88c-b6149c322abd",
"name": "Referral"
},
"opportunityType": {
"id": "8ab56d67-b2f1-40b0-be44-f99556b4aae9",
"name": "New Business"
},
"tags": [
{
"id": "dbdf3703-1fa6-419c-957e-ff427b39d1e6",
"name": "Enterprise"
}
],
"practice": {
"id": "65935388-b0a1-49ed-97e0-6f0d909af05e",
"name": "Consulting"
},
"businessUnit": {
"id": "bdf6c514-bf92-4839-8bc1-f685e264b06f",
"name": "North America"
},
"company": {
"id": "a961cced-0689-4951-9929-9760057618fd",
"name": "Acme Corp",
"client": {
"id": "aa39afdb-e168-4956-b061-41c7c62e8c2e",
"key": "acme-corp",
"name": "Acme Corp"
}
},
"projects": [
{
"id": "8274644a-2b50-46ac-b84d-ade1cefa3b4f",
"name": "Mobile App Development",
"amount": 50000
}
],
"opportunityStage": {
"id": "5fa87e8d-a60f-402e-b9dc-2fd33626cbd9",
"name": "Proposal",
"statusId": "open"
},
"opportunityPipeline": {
"id": "b9c85ac3-1a1d-4f31-a0c5-6e7d3d8ee0b2",
"name": "Sales"
},
"timeSpent": 120,
"salesforceId": "0060b00000BkFxAAAV",
"hubspotId": "12345678"
}Update an opportunity
curl --request PATCH \
--url https://www.ruddr.io/api/workspace/opportunities/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"nextSteps": "<string>",
"amount": 123,
"probability": 123,
"openDate": "2023-12-25",
"closeDate": "2023-12-25",
"currency": "<string>",
"cloudFolderUrl": "<string>",
"ownerId": "<string>",
"opportunityLeadSourceId": "<string>",
"opportunityTypeId": "<string>",
"tagIds": [
"<string>"
],
"practiceId": "<string>",
"businessUnitId": "<string>",
"companyId": "<string>",
"projects": [
{
"id": "<string>",
"amount": 123
}
],
"opportunityStageId": "<string>",
"opportunityPipelineId": "<string>"
}
'import requests
url = "https://www.ruddr.io/api/workspace/opportunities/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"nextSteps": "<string>",
"amount": 123,
"probability": 123,
"openDate": "2023-12-25",
"closeDate": "2023-12-25",
"currency": "<string>",
"cloudFolderUrl": "<string>",
"ownerId": "<string>",
"opportunityLeadSourceId": "<string>",
"opportunityTypeId": "<string>",
"tagIds": ["<string>"],
"practiceId": "<string>",
"businessUnitId": "<string>",
"companyId": "<string>",
"projects": [
{
"id": "<string>",
"amount": 123
}
],
"opportunityStageId": "<string>",
"opportunityPipelineId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
nextSteps: '<string>',
amount: 123,
probability: 123,
openDate: '2023-12-25',
closeDate: '2023-12-25',
currency: '<string>',
cloudFolderUrl: '<string>',
ownerId: '<string>',
opportunityLeadSourceId: '<string>',
opportunityTypeId: '<string>',
tagIds: ['<string>'],
practiceId: '<string>',
businessUnitId: '<string>',
companyId: '<string>',
projects: [{id: '<string>', amount: 123}],
opportunityStageId: '<string>',
opportunityPipelineId: '<string>'
})
};
fetch('https://www.ruddr.io/api/workspace/opportunities/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.ruddr.io/api/workspace/opportunities/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'nextSteps' => '<string>',
'amount' => 123,
'probability' => 123,
'openDate' => '2023-12-25',
'closeDate' => '2023-12-25',
'currency' => '<string>',
'cloudFolderUrl' => '<string>',
'ownerId' => '<string>',
'opportunityLeadSourceId' => '<string>',
'opportunityTypeId' => '<string>',
'tagIds' => [
'<string>'
],
'practiceId' => '<string>',
'businessUnitId' => '<string>',
'companyId' => '<string>',
'projects' => [
[
'id' => '<string>',
'amount' => 123
]
],
'opportunityStageId' => '<string>',
'opportunityPipelineId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://www.ruddr.io/api/workspace/opportunities/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"nextSteps\": \"<string>\",\n \"amount\": 123,\n \"probability\": 123,\n \"openDate\": \"2023-12-25\",\n \"closeDate\": \"2023-12-25\",\n \"currency\": \"<string>\",\n \"cloudFolderUrl\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"opportunityLeadSourceId\": \"<string>\",\n \"opportunityTypeId\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"practiceId\": \"<string>\",\n \"businessUnitId\": \"<string>\",\n \"companyId\": \"<string>\",\n \"projects\": [\n {\n \"id\": \"<string>\",\n \"amount\": 123\n }\n ],\n \"opportunityStageId\": \"<string>\",\n \"opportunityPipelineId\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://www.ruddr.io/api/workspace/opportunities/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"nextSteps\": \"<string>\",\n \"amount\": 123,\n \"probability\": 123,\n \"openDate\": \"2023-12-25\",\n \"closeDate\": \"2023-12-25\",\n \"currency\": \"<string>\",\n \"cloudFolderUrl\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"opportunityLeadSourceId\": \"<string>\",\n \"opportunityTypeId\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"practiceId\": \"<string>\",\n \"businessUnitId\": \"<string>\",\n \"companyId\": \"<string>\",\n \"projects\": [\n {\n \"id\": \"<string>\",\n \"amount\": 123\n }\n ],\n \"opportunityStageId\": \"<string>\",\n \"opportunityPipelineId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/opportunities/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"nextSteps\": \"<string>\",\n \"amount\": 123,\n \"probability\": 123,\n \"openDate\": \"2023-12-25\",\n \"closeDate\": \"2023-12-25\",\n \"currency\": \"<string>\",\n \"cloudFolderUrl\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"opportunityLeadSourceId\": \"<string>\",\n \"opportunityTypeId\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"practiceId\": \"<string>\",\n \"businessUnitId\": \"<string>\",\n \"companyId\": \"<string>\",\n \"projects\": [\n {\n \"id\": \"<string>\",\n \"amount\": 123\n }\n ],\n \"opportunityStageId\": \"<string>\",\n \"opportunityPipelineId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "6739fb0c-d986-4eee-a427-3fbd68f66f76",
"name": "Acme Corp - Mobile App",
"description": "Proposal for a new mobile application.",
"nextSteps": "Follow up with client on proposal.",
"amount": 50000,
"probability": 0.75,
"priorityId": "high",
"createdAt": "2025-01-15T20:47:03.284Z",
"openDate": "2025-01-15",
"closeDate": "2025-06-30",
"modifiedAt": "2025-01-15T20:47:03.284Z",
"currency": "USD",
"cloudFolderUrl": "https://drive.google.com/drive/folders/abc123",
"weightedAmount": 37500,
"owner": {
"id": "94bc043d-95cb-4f4b-8a9f-8e74cd3dd0db",
"name": "John Davis"
},
"opportunityLeadSource": {
"id": "1df022a4-0e91-463f-a88c-b6149c322abd",
"name": "Referral"
},
"opportunityType": {
"id": "8ab56d67-b2f1-40b0-be44-f99556b4aae9",
"name": "New Business"
},
"tags": [
{
"id": "dbdf3703-1fa6-419c-957e-ff427b39d1e6",
"name": "Enterprise"
}
],
"practice": {
"id": "65935388-b0a1-49ed-97e0-6f0d909af05e",
"name": "Consulting"
},
"businessUnit": {
"id": "bdf6c514-bf92-4839-8bc1-f685e264b06f",
"name": "North America"
},
"company": {
"id": "a961cced-0689-4951-9929-9760057618fd",
"name": "Acme Corp",
"client": {
"id": "aa39afdb-e168-4956-b061-41c7c62e8c2e",
"key": "acme-corp",
"name": "Acme Corp"
}
},
"projects": [
{
"id": "8274644a-2b50-46ac-b84d-ade1cefa3b4f",
"name": "Mobile App Development",
"amount": 50000
}
],
"opportunityStage": {
"id": "5fa87e8d-a60f-402e-b9dc-2fd33626cbd9",
"name": "Proposal",
"statusId": "open"
},
"opportunityPipeline": {
"id": "b9c85ac3-1a1d-4f31-a0c5-6e7d3d8ee0b2",
"name": "Sales"
},
"timeSpent": 120,
"salesforceId": "0060b00000BkFxAAAV",
"hubspotId": "12345678"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The opportunity uuid
Body
The name of the opportunity. Max 255 characters.
A description of the opportunity. Max 5000 characters.
The next steps for the opportunity. Max 255 characters.
The monetary amount of the opportunity.
The probability of the opportunity closing successfully. Accepts a value of 0 to 1 using a maximum of four decimals.
The priority of the opportunity.
high, medium, low The open date of the opportunity in YYYY-MM-DD format.
The expected close date of the opportunity in YYYY-MM-DD format.
The 3-letter currency code for the opportunity.
A URL to a cloud folder associated with the opportunity. Max 1024 characters.
The member ID (uuid) of the owner of the opportunity.
The ID (uuid) of the lead source for the opportunity.
The ID (uuid) of the opportunity type.
A list of opportunity tag IDs (uuid) to associate with the opportunity.
The ID (uuid) of the practice associated with the opportunity.
The ID (uuid) of the business unit associated with the opportunity.
The ID (uuid) of the company associated with the opportunity.
A list of projects to associate with the opportunity.
Show child attributes
Show child attributes
The ID (uuid) of the opportunity stage.
The ID (uuid) of the opportunity pipeline.
Response
200
The unique identifier for the object.
The name of the opportunity.
A description of the opportunity.
The next steps for the opportunity.
The monetary amount of the opportunity.
The probability of the opportunity closing successfully, expressed as a decimal between 0 and 1.
The priority level of the opportunity.
high, medium, low The timestamp when the object was created.
The date the opportunity was opened. Will be in the form YYYY-MM-DD.
The expected close date for the opportunity. Will be in the form YYYY-MM-DD.
The timestamp when the object was last modified.
The 3-letter currency code for the opportunity.
A URL to a cloud folder associated with the opportunity.
The probability-weighted amount, calculated as amount multiplied by probability.
The owner of the opportunity.
Show child attributes
Show child attributes
The lead source for the opportunity.
Show child attributes
Show child attributes
The type of the opportunity.
Show child attributes
Show child attributes
The tags associated with the opportunity.
Show child attributes
Show child attributes
The practice associated with the opportunity.
Show child attributes
Show child attributes
The business unit associated with the opportunity.
Show child attributes
Show child attributes
The company associated with the opportunity.
Show child attributes
Show child attributes
The projects associated with the opportunity.
Show child attributes
Show child attributes
The current stage of the opportunity.
Show child attributes
Show child attributes
The pipeline the opportunity belongs to.
Show child attributes
Show child attributes
Total time spent in minutes across all pipeline activities.
The Salesforce opportunity ID. Will be null unless synced via the Salesforce integration.
The HubSpot deal ID. Will be null unless synced via the HubSpot integration.