api
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
api [2020/08/03 17:58] – [Similarity search] flack | api [2023/06/03 07:19] – [Quote Request API] flack | ||
---|---|---|---|
Line 48: | Line 48: | ||
" | " | ||
{ | { | ||
- | "description": "All purchasable, in stock & virtual compounds", | + | "id": |
- | " | + | " |
+ | " | ||
+ | " | ||
+ | " | ||
" | " | ||
{ | { | ||
- | "download_url": | + | "size_mb": |
- | " | + | " |
- | " | + | " |
- | "size_mb": | + | "download_url": |
- | }, | + | }, |
{ | { | ||
- | "download_url": | + | "size_mb": |
- | " | + | " |
- | " | + | " |
- | "size_mb": | + | "download_url": |
} | } | ||
- | ], | + | ], |
- | "last_updated": | + | "public": |
- | "name": "Mcule Purchasable (full)", | + | "group": "default" |
- | " | + | |
}, | }, | ||
{ | { | ||
- | "description": "All purchasable, in stock compounds", | + | "id": |
- | " | + | " |
+ | " | ||
+ | " | ||
+ | " | ||
" | " | ||
{ | { | ||
- | "download_url": | + | "size_mb": |
- | " | + | " |
- | " | + | " |
- | "size_mb": | + | "download_url": |
- | }, | + | }, |
{ | { | ||
- | "download_url": | + | "size_mb": |
- | " | + | " |
- | " | + | " |
- | "size_mb": | + | "download_url": |
} | } | ||
- | ], | + | ], |
- | "last_updated": | + | "public": |
- | "name": "Mcule Purchasable (in stock)", | + | "group": "default" |
- | " | + | |
} | } | ||
] | ] | ||
Line 162: | Line 166: | ||
===== InChIKey lookup ===== | ===== InChIKey lookup ===== | ||
== Endpoint: == | == Endpoint: == | ||
- | < | + | < |
== Example API request: == | == Example API request: == | ||
Line 345: | Line 349: | ||
http ' | http ' | ||
</ | </ | ||
+ | |||
+ | |||
+ | ===== Compound list details ===== | ||
+ | |||
+ | With this endpoint you can get compound details information for multiple compound mcule IDs in a single API call. | ||
+ | |||
+ | == Endpoint: == | ||
+ | < | ||
+ | |||
+ | == Basic API request: == | ||
+ | < | ||
+ | echo ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | == Example API request: == | ||
+ | < | ||
+ | echo ' | ||
+ | </ | ||
+ | |||
+ | == Request: == | ||
+ | < | ||
+ | POST / | ||
+ | Authorization: | ||
+ | Content-Type: | ||
+ | |||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ], | ||
+ | " | ||
+ | 1, | ||
+ | 5, | ||
+ | 10 | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | == Response: == | ||
+ | < | ||
+ | HTTP/1.1 200 OK | ||
+ | Content-Type: | ||
+ | |||
+ | { | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Fields: | ||
+ | * **mcule_ids**: | ||
+ | * **availability**: | ||
+ | * **components**: | ||
+ | * **price_amounts**: | ||
+ | |||
+ | Limits: | ||
+ | * **mcule_ids**: | ||
+ | * **price_amounts**: | ||
+ | |||
===== Multiple queries exact search ===== | ===== Multiple queries exact search ===== | ||
Multiple queries exact search currently accepts the following input identifiers: | Multiple queries exact search currently accepts the following input identifiers: | ||
+ | The maximum number of queries you can send to this endpoint is 1000 currently. | ||
== Endpoint: == | == Endpoint: == | ||
Line 591: | Line 845: | ||
</ | </ | ||
- | The **threshold** accepts values between 0.7 and 1.0, the default is 0.9. | + | Mandatory fields: |
- | The **limit** | + | * **query**: string, accepted identifiers: |
+ | |||
+ | Optional fields: | ||
+ | |||
+ | * **threshold**: | ||
+ | * **limit**: integer, accepted | ||
+ | * **collection**: | ||
Line 617: | Line 877: | ||
{ | { | ||
" | " | ||
- | " | + | " |
+ | } | ||
</ | </ | ||
Line 658: | Line 919: | ||
</ | </ | ||
- | The **limit** | + | Mandatory fields: |
+ | |||
+ | * **query**: string, accepted identifiers: | ||
+ | |||
+ | Optional fields: | ||
+ | |||
+ | * **limit**: integer, accepted | ||
+ | * **collection**: | ||
Line 806: | Line 1074: | ||
* **amount**: Preferred amount per molecule (mg). (default: 1) | * **amount**: Preferred amount per molecule (mg). (default: 1) | ||
* **min_amount**: | * **min_amount**: | ||
- | * **target_volume**: | + | * **target_volume**: |
* **target_cc**: | * **target_cc**: | ||
- | * **extra_amount**: | + | * **extra_amount**: |
+ | * **min_extra_amount**: | ||
* **customer_email**: | * **customer_email**: | ||
* **delivery_time**: | * **delivery_time**: | ||
Line 814: | Line 1083: | ||
* **higher_amounts**: | * **higher_amounts**: | ||
* **item_filters**: | * **item_filters**: | ||
+ | * **scheme**: If you have access to predefined / pre-negotiated quote request schemes, you can specify here which one you want to use. You have to send the ID of the scheme which will be provided to you after negotiation. A quote query scheme is essentially a template that contains predefined quote query parameters, or even include private parameters that affect quote generation in various ways (e.g.: discounts, predefined custom prices). These parameters can be customized for your use case. The scheme might already contain mandatory fields like delivery_country. In this case you don't have to specify them again, they will be applied from the scheme. Any explicitly specified public parameter during the request will override the one that comes from the specified scheme. | ||
The **amount** or target concentration-volume pair (**target_volume** and **target_cc**) need to be specified. | The **amount** or target concentration-volume pair (**target_volume** and **target_cc**) need to be specified. | ||
Line 877: | Line 1147: | ||
" | " | ||
" | " | ||
- | " | + | " |
+ | " | ||
" | " | ||
" | " | ||
Line 947: | Line 1218: | ||
" | " | ||
" | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1124: | Line 1396: | ||
{ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1187: | Line 1462: | ||
" | " | ||
" | " | ||
+ | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1193: | Line 1470: | ||
" | " | ||
" | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1204: | Line 1482: | ||
" | " | ||
" | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
" | " | ||
" | " | ||
- | " | ||
" | " | ||
" | " | ||
" | " | ||
" | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1223: | Line 1504: | ||
" | " | ||
" | " | ||
+ | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1229: | Line 1512: | ||
" | " | ||
" | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1241: | Line 1525: | ||
" | " | ||
" | " | ||
+ | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1247: | Line 1533: | ||
" | " | ||
" | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1259: | Line 1546: | ||
" | " | ||
" | " | ||
+ | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1265: | Line 1554: | ||
" | " | ||
" | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1330: | Line 1620: | ||
" | " | ||
" | " | ||
+ | " | ||
" | " | ||
" | " | ||
Line 1421: | Line 1712: | ||
Where currency is not specified, it is always USD. | Where currency is not specified, it is always USD. | ||
+ | * **additional_document_notes**: | ||
+ | * **amount_range**: | ||
+ | * **amount_range_display**: | ||
* **analytical_services_price**: | * **analytical_services_price**: | ||
* **avg_product_price**: | * **avg_product_price**: | ||
Line 1444: | Line 1738: | ||
* **effective_price_display**: | * **effective_price_display**: | ||
* **price**: effective price | * **price**: effective price | ||
+ | * **product_available_amount**: | ||
+ | * **product_available_amount_display**: | ||
* **product_mcule_id**: | * **product_mcule_id**: | ||
* **product**: | * **product**: | ||
Line 1450: | Line 1746: | ||
* **product_price**: | * **product_price**: | ||
* **product_purity**: | * **product_purity**: | ||
+ | * **product_smiles**: | ||
* **structure_origin_mcule_id**: | * **structure_origin_mcule_id**: | ||
* **quote**: The ID of the quote this product level quote data belongs to. | * **quote**: The ID of the quote this product level quote data belongs to. | ||
* **name**: The name of the quote. Quotes created via the API don't have names. | * **name**: The name of the quote. Quotes created via the API don't have names. | ||
- | * **order_data**: | + | * **order_data**: |
+ | * **billing_address**: | ||
+ | * **billing_city**: | ||
+ | * **billing_company_name**: | ||
+ | * **billing_country**: | ||
+ | * **billing_post_code**: | ||
+ | * **billing_state**: | ||
+ | * **billing_email**: | ||
+ | * **billing_first_name**: | ||
+ | * **billing_last_name**: | ||
+ | * **billing_phone**: | ||
+ | * **billing_same**: | ||
+ | * **billing_vat**: | ||
+ | * **shipping_address**: | ||
+ | * **shipping_city**: | ||
+ | * **shipping_company_name**: | ||
+ | * **shipping_country**: | ||
+ | * **shipping_post_code**: | ||
+ | * **shipping_state**: | ||
+ | * **shipping_email**: | ||
+ | * **shipping_first_name**: | ||
+ | * **shipping_last_name**: | ||
+ | * **shipping_phone**: | ||
+ | * **notes**: notes | ||
+ | * **po_number**: | ||
+ | * **po_file_filename**: | ||
+ | * **po_option**: | ||
+ | * **po_option_display**: | ||
+ | * **created**: | ||
+ | * **updated**: | ||
+ | * **id**: ID of the purchase order data | ||
* **payment_due_days**: | * **payment_due_days**: | ||
* **price**: Total price of quote (USD) | * **price**: Total price of quote (USD) | ||
Line 1550: | Line 1877: | ||
</ | </ | ||
+ | |||
+ | ===== Quote order ===== | ||
+ | |||
+ | Submit purchase order for a quote via API. | ||
+ | |||
+ | < | ||
+ | http --form POST https:// | ||
+ | </ | ||
+ | |||
+ | == Example request: === | ||
+ | < | ||
+ | POST / | ||
+ | Accept: */* | ||
+ | Accept-Encoding: | ||
+ | Authorization: | ||
+ | Content-Type: | ||
+ | |||
+ | +-----------------------------------------+ | ||
+ | | NOTE: binary data not shown in terminal | | ||
+ | +-----------------------------------------+ | ||
+ | </ | ||
+ | |||
+ | Please note that in case you submit a file in the API request, you have to use // | ||
+ | |||
+ | If you don't submit a file in the API request, you can use // | ||
+ | |||
+ | < | ||
+ | echo ' | ||
+ | </ | ||
+ | |||
+ | == Example request: === | ||
+ | < | ||
+ | POST / | ||
+ | Accept: application/ | ||
+ | Authorization: | ||
+ | Content-Type: | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | == Example response: === | ||
+ | < | ||
+ | HTTP/1.0 201 CREATED | ||
+ | Allow: POST, OPTIONS | ||
+ | Content-Type: | ||
+ | |||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | Mandatory fields: | ||
+ | * **po_option**: | ||
+ | |||
+ | Optional fields: | ||
+ | * **billing_address**: | ||
+ | * **billing_city**: | ||
+ | * **billing_company_name**: | ||
+ | * **billing_country**: | ||
+ | * **billing_post_code**: | ||
+ | * **billing_state**: | ||
+ | * **billing_email**: | ||
+ | * **billing_first_name**: | ||
+ | * **billing_last_name**: | ||
+ | * **billing_phone**: | ||
+ | * **billing_same**: | ||
+ | * **billing_vat**: | ||
+ | * **shipping_address**: | ||
+ | * **shipping_city**: | ||
+ | * **shipping_company_name**: | ||
+ | * **shipping_country**: | ||
+ | * **shipping_post_code**: | ||
+ | * **shipping_state**: | ||
+ | * **shipping_email**: | ||
+ | * **shipping_first_name**: | ||
+ | * **shipping_last_name**: | ||
+ | * **shipping_phone**: | ||
+ | * **notes**: notes | ||
+ | * **po_number**: | ||
+ | * **po_file**: | ||
+ | |||
+ | The address and contact fields are optional if this information is included in the Purchase Order document or will be provided later to our support team. Although providing the shipping and billing address / contact information here can speed up the ordering process, if you decide to leave them empty, our support team will contact you to reconcile this information. | ||
+ | |||
+ | Subsequent calls to this same endpoint make it possible to update the purchase order information. You can also report incorrect data at order@mcule.com. Please make sure you reference the quote' | ||
api.txt · Last modified: 2024/05/10 08:12 by bkovats