curl --request POST \
--url https://cloud.memsource.com/web/api2/v2/quotes \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"analyse": {
"id": "<string>"
},
"name": "<string>",
"priceList": {
"id": "<string>"
},
"project": {
"uid": "3HYnHHLkTPJfMxBCDbPXFe"
},
"additionalSteps": [
"<string>"
],
"units": [
{
"analyseLanguagePart": {
"id": "<string>"
},
"value": 1
}
],
"workflowSettings": [
{
"workflowStep": {
"id": "<string>"
},
"units": [
{
"analyseLanguagePart": {
"id": "<string>"
},
"value": 1
}
]
}
]
}
'import requests
url = "https://cloud.memsource.com/web/api2/v2/quotes"
payload = {
"analyse": { "id": "<string>" },
"name": "<string>",
"priceList": { "id": "<string>" },
"project": { "uid": "3HYnHHLkTPJfMxBCDbPXFe" },
"additionalSteps": ["<string>"],
"units": [
{
"analyseLanguagePart": { "id": "<string>" },
"value": 1
}
],
"workflowSettings": [
{
"workflowStep": { "id": "<string>" },
"units": [
{
"analyseLanguagePart": { "id": "<string>" },
"value": 1
}
]
}
]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
analyse: {id: '<string>'},
name: '<string>',
priceList: {id: '<string>'},
project: {uid: '3HYnHHLkTPJfMxBCDbPXFe'},
additionalSteps: ['<string>'],
units: [{analyseLanguagePart: {id: '<string>'}, value: 1}],
workflowSettings: [
{
workflowStep: {id: '<string>'},
units: [{analyseLanguagePart: {id: '<string>'}, value: 1}]
}
]
})
};
fetch('https://cloud.memsource.com/web/api2/v2/quotes', 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://cloud.memsource.com/web/api2/v2/quotes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'analyse' => [
'id' => '<string>'
],
'name' => '<string>',
'priceList' => [
'id' => '<string>'
],
'project' => [
'uid' => '3HYnHHLkTPJfMxBCDbPXFe'
],
'additionalSteps' => [
'<string>'
],
'units' => [
[
'analyseLanguagePart' => [
'id' => '<string>'
],
'value' => 1
]
],
'workflowSettings' => [
[
'workflowStep' => [
'id' => '<string>'
],
'units' => [
[
'analyseLanguagePart' => [
'id' => '<string>'
],
'value' => 1
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://cloud.memsource.com/web/api2/v2/quotes"
payload := strings.NewReader("{\n \"analyse\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"priceList\": {\n \"id\": \"<string>\"\n },\n \"project\": {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n },\n \"additionalSteps\": [\n \"<string>\"\n ],\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ],\n \"workflowSettings\": [\n {\n \"workflowStep\": {\n \"id\": \"<string>\"\n },\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.post("https://cloud.memsource.com/web/api2/v2/quotes")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"analyse\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"priceList\": {\n \"id\": \"<string>\"\n },\n \"project\": {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n },\n \"additionalSteps\": [\n \"<string>\"\n ],\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ],\n \"workflowSettings\": [\n {\n \"workflowStep\": {\n \"id\": \"<string>\"\n },\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cloud.memsource.com/web/api2/v2/quotes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"analyse\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"priceList\": {\n \"id\": \"<string>\"\n },\n \"project\": {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n },\n \"additionalSteps\": [\n \"<string>\"\n ],\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ],\n \"workflowSettings\": [\n {\n \"workflowStep\": {\n \"id\": \"<string>\"\n },\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"additionalSteps": [
{
"id": "<string>",
"name": "<string>"
}
],
"createdBy": {
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
},
"currency": "<string>",
"customerEmail": "<string>",
"dateCreated": "2023-11-07T05:31:56Z",
"editable": true,
"id": 123,
"name": "<string>",
"netRateScheme": {
"createdBy": {
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
},
"dateCreated": "2023-11-07T05:31:56Z",
"id": "<string>",
"isDefault": true,
"name": "<string>",
"uid": "<string>"
},
"outdated": true,
"priceList": {
"id": "<string>",
"name": "<string>",
"uid": "<string>"
},
"provider": {
"type": "<string>",
"id": "<string>",
"uid": "<string>"
},
"totalPrice": 123,
"uid": "<string>",
"workflowStepList": [
{
"id": "<string>",
"lqaEnabled": true,
"name": "<string>",
"order": 123,
"uid": "<string>"
}
]
}Create quote
For billingUnit “Hour”, provide either workflowSettings or units, but not both. Additional workflow steps listed in additionalSteps are added to the quote by name.
curl --request POST \
--url https://cloud.memsource.com/web/api2/v2/quotes \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"analyse": {
"id": "<string>"
},
"name": "<string>",
"priceList": {
"id": "<string>"
},
"project": {
"uid": "3HYnHHLkTPJfMxBCDbPXFe"
},
"additionalSteps": [
"<string>"
],
"units": [
{
"analyseLanguagePart": {
"id": "<string>"
},
"value": 1
}
],
"workflowSettings": [
{
"workflowStep": {
"id": "<string>"
},
"units": [
{
"analyseLanguagePart": {
"id": "<string>"
},
"value": 1
}
]
}
]
}
'import requests
url = "https://cloud.memsource.com/web/api2/v2/quotes"
payload = {
"analyse": { "id": "<string>" },
"name": "<string>",
"priceList": { "id": "<string>" },
"project": { "uid": "3HYnHHLkTPJfMxBCDbPXFe" },
"additionalSteps": ["<string>"],
"units": [
{
"analyseLanguagePart": { "id": "<string>" },
"value": 1
}
],
"workflowSettings": [
{
"workflowStep": { "id": "<string>" },
"units": [
{
"analyseLanguagePart": { "id": "<string>" },
"value": 1
}
]
}
]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
analyse: {id: '<string>'},
name: '<string>',
priceList: {id: '<string>'},
project: {uid: '3HYnHHLkTPJfMxBCDbPXFe'},
additionalSteps: ['<string>'],
units: [{analyseLanguagePart: {id: '<string>'}, value: 1}],
workflowSettings: [
{
workflowStep: {id: '<string>'},
units: [{analyseLanguagePart: {id: '<string>'}, value: 1}]
}
]
})
};
fetch('https://cloud.memsource.com/web/api2/v2/quotes', 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://cloud.memsource.com/web/api2/v2/quotes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'analyse' => [
'id' => '<string>'
],
'name' => '<string>',
'priceList' => [
'id' => '<string>'
],
'project' => [
'uid' => '3HYnHHLkTPJfMxBCDbPXFe'
],
'additionalSteps' => [
'<string>'
],
'units' => [
[
'analyseLanguagePart' => [
'id' => '<string>'
],
'value' => 1
]
],
'workflowSettings' => [
[
'workflowStep' => [
'id' => '<string>'
],
'units' => [
[
'analyseLanguagePart' => [
'id' => '<string>'
],
'value' => 1
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://cloud.memsource.com/web/api2/v2/quotes"
payload := strings.NewReader("{\n \"analyse\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"priceList\": {\n \"id\": \"<string>\"\n },\n \"project\": {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n },\n \"additionalSteps\": [\n \"<string>\"\n ],\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ],\n \"workflowSettings\": [\n {\n \"workflowStep\": {\n \"id\": \"<string>\"\n },\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.post("https://cloud.memsource.com/web/api2/v2/quotes")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"analyse\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"priceList\": {\n \"id\": \"<string>\"\n },\n \"project\": {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n },\n \"additionalSteps\": [\n \"<string>\"\n ],\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ],\n \"workflowSettings\": [\n {\n \"workflowStep\": {\n \"id\": \"<string>\"\n },\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cloud.memsource.com/web/api2/v2/quotes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"analyse\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"priceList\": {\n \"id\": \"<string>\"\n },\n \"project\": {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n },\n \"additionalSteps\": [\n \"<string>\"\n ],\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ],\n \"workflowSettings\": [\n {\n \"workflowStep\": {\n \"id\": \"<string>\"\n },\n \"units\": [\n {\n \"analyseLanguagePart\": {\n \"id\": \"<string>\"\n },\n \"value\": 1\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"additionalSteps": [
{
"id": "<string>",
"name": "<string>"
}
],
"createdBy": {
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
},
"currency": "<string>",
"customerEmail": "<string>",
"dateCreated": "2023-11-07T05:31:56Z",
"editable": true,
"id": 123,
"name": "<string>",
"netRateScheme": {
"createdBy": {
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
},
"dateCreated": "2023-11-07T05:31:56Z",
"id": "<string>",
"isDefault": true,
"name": "<string>",
"uid": "<string>"
},
"outdated": true,
"priceList": {
"id": "<string>",
"name": "<string>",
"uid": "<string>"
},
"provider": {
"type": "<string>",
"id": "<string>",
"uid": "<string>"
},
"totalPrice": 123,
"uid": "<string>",
"workflowStepList": [
{
"id": "<string>",
"lqaEnabled": true,
"name": "<string>",
"order": 123,
"uid": "<string>"
}
]
}Authorizations
Get a token from auth/login endpoint and then pass it in the Authorization HTTP header in every subsequent API call. For more information visit our help center.
Body
Create quote request
Show child attributes
Show child attributes
255Show child attributes
Show child attributes
Reference to an object by its unique identifier
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Created
Additional workflow steps added to the quote by name
Show child attributes
Show child attributes
Billing unit used for pricing
Character, Word, Page, Hour Show child attributes
Show child attributes
Currency code (ISO 4217) of the quote
Customer email address for the quote; null if not set
Date and time the quote was created
When true, the calling user may edit this quote
Internal numeric identifier
Quote name
Show child attributes
Show child attributes
When true, the quote is outdated and should be recalculated
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Type of the quote
BUYER, PROVIDER Current status of the quote
APPROVED, DECLINED, DRAFT, FOR_APPROVAL, NEW Total price of the quote; null if not yet calculated
Unique identifier used in API paths
Workflow steps included in the quote
Show child attributes
Show child attributes
Was this page helpful?