Skip to main content

Market Radar API (1.0.0)

Download OpenAPI specification:Download

This API provides programmatic access to Kemiex's market intelligence data. Whether you're building internal dashboards, integrating with procurement systems, or developing custom market analysis tools, this API provides the structured data you need to leverage Kemiex's market intelligence.

Response headers

In addition to standard headers that you would expect, each response contains the following specific headers:

Header Description
X-Trace-Id Trace identifier used to track each request against internal logs
X-Server-Version Version of the server that responded

When asking for support, please provide them as reference if possible.

Error handling

Kemiex uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided. Codes in the 5xx range indicate an error with Kemiex’s servers.

Unsuccessful responses contain 2 parts: an error code, and user-friendly message describing the issue. You can expect the following errors, though more may be added in the future:

Error Code
Description
BAD_REQUEST_RESOURCE_NOT_FOUND Client-side error: the URL address is wrong
BAD_REQUEST_METHOD_NOT_SUPPORTED Client-side error: the HTTP method used in the request is not supported by the endpoint
BAD_REQUEST_MISSING_REQUIRED_PARAMETER Client-side error: at least one of the required parameters is not provided
BAD_REQUEST_PARAMETER_TYPE_MISMATCH Client-side error: a parameter value does not match its expected type
BAD_REQUEST_PARAMETER_VALUE_ILLEGAL Client-side error: a parameter value is outside the range of values allowed
BAD_REQUEST General client-side error: The request cannot be processed. This is a catch-all error thrown when the errors above do not apply
FORBIDDEN The API key is not provided, or the provided value is incorrect, or the associated account does not have access to the requested resource
INTERNAL_SERVER_ERROR An unexpected condition was encountered on the server

Rate limits

A rate limit of 100 quota units per minute is enforced. Exceeding this limit returns HTTP code 429. The table below lists the corresponding quota units consumed per api endpoint.

Endpoint Quota units
/price-benchmarks 1 unit

Market News

Operations related to market news

Retrieve Market News

Returns Market News that were published in the specified time interval and matching optional search criteria. The time interval boundaries are inclusive.

Authorizations:
bearerAuth
query Parameters
publishFrom
required
string <date-time>
Examples:
  • publishFrom=2024-11-23T20:15:30Z - Specify the timestamp directly in Zulu timezone
  • publishFrom=2024-11-23T21:15:30+01:00 - In some cases, if the + sign is being used, it will be encoded as a space, but the server will put back the + instead of space. It is a convenient way to specify the desired timestamp in a local timezone, however, the timestamps in the results will be in Zulu timezone
  • publishFrom=2024-11-23T21:15:30%2B01:00 - Explicitly encode the + sign. It is a convenient way to specify the desired timestamp in a local timezone, however, the timestamps in the results will be in Zulu timezone

The published start date in ISO 8601-1:2019 combined date and time standard

publishTo
string <date-time>
Examples:
  • publishTo=2024-11-23T20:15:30Z - Specify the timestamp directly in Zulu timezone
  • publishTo=2024-11-23T21:15:30+01:00 - In some cases, if the + sign is being used, it will be encoded as a space, but the server will put back the + instead of space. It is a convenient way to specify the desired timestamp in a local timezone, however, the timestamps in the results will be in Zulu timezone
  • publishTo=2024-11-23T21:15:30%2B01:00 - Explicitly encode the + sign. It is a convenient way to specify the desired timestamp in a local timezone, however, the timestamps in the results will be in Zulu timezone

The published end date in ISO 8601-1:2019 combined date and time standard. If it is not provided, it is automatically set to the current date time

categories
Array of strings
Items Enum: "Accident" "Agriculture" "Americas" "Amino acids" "Analysis" "APIs" "Asia" "Commentary" "Company news" "Europe" "Expansion" "Featured" "Feed additives" "Financial reports" "Food additives" "Kemiex report" "Legal and compliance" "Logistics" "Strategic transactions" "Vitamins"

An additional filter for searching market news related only to specific categories. In case multiple values are provided, we consider an AND operation between them (market news that have all values from the given list as categories will be considered matched).

textSearch
string
Examples:
  • textSearch=United States - By specifying quotes around words, phrase search is being triggered. As before, the last word in the phrase will be considered a search prefix
  • textSearch=-grow - Just put a dash in front of the word to mark the negation. Since it is a single word in this example, it will be considered as a search prefix (in this example, search criteria is 'NOT grow*', thus market news with title or summary containing also words 'growth', 'growing' or other derivative words will be excluded from search results)
  • textSearch=grow - This is the simplest case, just provide the searched word. Note that in this case the given word will be considered as a search prefix (thus in this example, 'growth', 'growing' or other derivative words will be matched)
  • textSearch=grow or pharma - It is easy to search for one word or another, by specifying the 'or' between them. Again, the last word will be considered as a search prefix (in this example, search criteria is 'grow OR pharma*', thus 'pharmaceutical' will also be a match. Same as before, if we change the order of the words the search results may be different)
  • textSearch=grow pharma - When two or multiple regular words are provided, AND between them is considered implicitly. Note that in this case the last word will be considered as a search prefix (in this example, search criteria is 'grow AND pharma*', thus 'pharmaceutical' will also be a match. But if we change the order of the words the search results may be different)
  • textSearch="United States" or (grow -pharma) - AND, OR, NOT and phrase searches can be combined, in order to create powerful search criteria

An additional filter for searching market news with title or summary complying the given full text search criteria. It can be constructed using the rules of websearch_to_tsquery postgresql function, in English language

page
integer <int32> >= 1
Default: 1
Example: page=1

List results on a specific page. Starting page is 1

pageSize
integer <int32> [ 1 .. 100 ]
Default: 50
Example: pageSize=50

Maximum number of results that should be returned per page. Please keep it constant for requests across multiple pages, in order to correctly receive all results.

Responses

Response samples

Content type
application/json
{}

Price Benchmarks

Operations related to reported prices

Retrieve price points

Returns weekly price points that include average, minimum, maximum, and own company submission values for the specified products and date range. Price Benchmark data is published every Wednesday.

Authorizations:
bearerAuth
query Parameters
products
required
Array of strings

A comma-separated list of product-region codes to query.

Available products:

Code Product
BIO Biotin (2%)
DLM Dl-Methionine (99%)
LYH L-Lysine Hcl (98%)
LYS L-Lysine Sulfate (70%)
THR L-Threonine
TRP L-Tryptophan
VAL L-Valine
VTA Vitamin A (1'000)
V12 Vitamin B12 (1% HPLC)
VB1 Vitamin B1 (Mono)
VB2 Vitamin B2 (80%)
VB3 Vitamin B3
VB5 Vitamin B5 (Calcium Pantothenate)
VB6 Vitamin B6 Hcl
VB9 Vitamin B9 (>96%)
VTC Vitamin C (99% powder)
VCP Vitamin C phosphate 35%
VTD Vitamin D3 (500)
VTE Vitamin E (50% Feed)
VTK Vitamin K3 MNB

Available regions:

Code Region
CN FOB China
EU FCA Europe
USE CFR US East
USW CFR US West
startDate
required
string

The start date for the price points series

Responses

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}