AMBIT REST web services [eNanoMapper profile] with free text & faceted search
This is a community listing. If you own this API, you can request ownership.
npm install omnistream-sdkimport { OmniClient } from "omnistream-sdk";
const omni = new OmniClient({ token: process.env.OMNI_KEY! });
// One key reaches every API on the marketplace.
const data = await omni.call("ideaconsult/getInvestigationResults");One install, one key - the same client calls every API on the marketplace.
Database ID
query type
Search parameter, UUID of the investigation or a substance
Search parameter, InChI key(s) of the substance component(s), comma delimited
Search parameter, chemical structure or substance identifier(s), comma delimited
Starting page
Page size
Details of multiple studies
Exact chemical structure search
Exact similarity search
/**
* eNanoMapperdatabase - generated by OmniStream from eNanoMapper database's OpenAPI spec.
* One typed method per endpoint. A single Omni key reaches the API.
*/
const DEFAULT_BASE = "https://grid.skinvaults.online/v1/proxy/ideaconsult";
export class eNanoMapperdatabaseError extends Error {
status: number;
code?: string;
constructor(status: number, code: string | undefined, message?: string) {
super(message || `eNanoMapperdatabase error ${status}`);
this.name = "eNanoMapperdatabaseError";
this.status = status;
this.code = code;
}
}
export interface eNanoMapperdatabaseOptions {
baseUrl?: string;
fetch?: typeof fetch;
timeoutMs?: number;
}
export class eNanoMapperdatabase {
/** @param token Your OmniStream key (one key for every API). */
constructor(private token: string, private opts: eNanoMapperdatabaseOptions = {}) {
if (!token) throw new Error("eNanoMapperdatabase: token is required");
}
rateLimit: { remainingMinute?: number; remainingDay?: number } | null = null;
private async _request(method: string, path: string, { params, body }: { params?: Record<string, unknown>; body?: unknown } = {}): Promise<any> {
const f = this.opts.fetch ?? globalThis.fetch;
const url = new URL((this.opts.baseUrl ?? DEFAULT_BASE).replace(/\/+$/, "") + path);
if (params) for (const [k, v] of Object.entries(params)) if (v != null) url.searchParams.set(k, String(v));
const headers: Record<string, string> = { "x-omni-key": this.token };
if (body !== undefined) headers["content-type"] = "application/json";
const res = await f(url, { method, headers, body: body !== undefined ? JSON.stringify(body) : undefined });
this.rateLimit = {
remainingMinute: Number(res.headers.get("x-ratelimit-remaining-minute")) || undefined,
remainingDay: Number(res.headers.get("x-ratelimit-remaining-day")) || undefined,
};
const data = await res.json().catch(() => ({}));
if (!res.ok) throw new eNanoMapperdatabaseError(res.status, data?.error?.code, data?.error?.message);
return data.data ?? data;
}
/** Details of multiple studies */
getInvestigationResults(params: { "db": string; "type": string; "search": string; "inchikey"?: string; "id"?: string; "page"?: number; "pagesize"?: number }): Promise<any> {
return this._request("GET", "/enm/{db}/investigation", { params });
}
/** Exact chemical structure search */
searchByIdentifier(params: { "db": string; "term": string; "representation": string; "search"?: string; "b64search"?: string; "casesens"?: boolean; "bundle_uri"?: string; "sameas"?: string; "page"?: number; "pagesize"?: number }): Promise<any> {
return this._request("GET", "/enm/{db}/query/compound/{term}/{representation}", { params });
}
/** Exact similarity search */
searchBySimilarity(params: { "db": string; "search"?: string; "b64search"?: string; "type"?: string; "threshold"?: number; "dataset_uri"?: string; "filterBySubstance"?: boolean; "bundle_uri"?: string; "sameas"?: string; "mol"?: boolean; "page"?: number; "pagesize"?: number }): Promise<any> {
return this._request("GET", "/enm/{db}/query/similarity", { params });
}
/** Substructure search */
searchBySmarts(params: { "db": string; "search"?: string; "b64search"?: string; "type"?: string; "dataset_uri"?: string; "filterBySubstance"?: boolean; "bundle_uri"?: string; "sameas"?: string; "mol"?: boolean; "page"?: number; "pagesize"?: number }): Promise<any> {
return this._request("GET", "/enm/{db}/query/smarts", { params });
}
/** Search endpoint summary */
getEndpointSummary(params: { "db": string; "top"?: string; "category"?: string }): Promise<any> {
return this._request("GET", "/enm/{db}/query/study", { params });
}
/** List substances */
getSubstances(params: { "db": string; "search"?: string; "type"?: string; "compound_uri"?: string; "bundle_uri"?: string; "addDummySubstance"?: boolean; "studysummary"?: boolean; "page"?: number; "pagesize"?: number }): Promise<any> {
return this._request("GET", "/enm/{db}/substance", { params });
}
/** Get a substance */
getSubstanceByUUID(params: { "db": string; "uuid": string; "property_uris[]"?: string; "page"?: number; "pagesize"?: number }): Promise<any> {
return this._request("GET", "/enm/{db}/substance/{uuid}", { params });
}
/** Substance composition */
getSubstanceComposition(params: { "db": string; "uuid": string; "all"?: boolean; "page"?: number; "pagesize"?: number }): Promise<any> {
return this._request("GET", "/enm/{db}/substance/{uuid}/composition", { params });
}
/** Get substance composition as a dataset */
getSubstanceStructures(params: { "db": string; "uuid": string; "page"?: number; "pagesize"?: number }): Promise<any> {
return this._request("GET", "/enm/{db}/substance/{uuid}/structures", { params });
}
/** get substance study */
getSubstanceStudy(params: { "db": string; "uuid": string; "top"?: string; "category"?: string; "property_uri"?: string; "property"?: string; "investigation_uuid"?: string; "page"?: number; "pagesize"?: number }): Promise<any> {
return this._request("GET", "/enm/{db}/substance/{uuid}/study", { params });
}
/** Get study summary for the substance */
getSubstanceStudySummary(params: { "db": string; "uuid": string; "top"?: string; "category"?: string; "property_uri"?: string; "property"?: string; "result"?: boolean; "page"?: number; "pagesize"?: number }): Promise<any> {
return this._request("GET", "/enm/{db}/substance/{uuid}/studySummary", { params });
}
/** Apache Solr powered search */
solrqueryGet(params: { "q"?: string; "fq"?: string; "fl"?: string; "start"?: number; "rows"?: number; "wt"?: string }): Promise<any> {
return this._request("GET", "/select", { params });
}
/** Apache Solr powered search */
solrqueryPost(params: { "wt"?: string }): Promise<any> {
return this._request("POST", "/select", { params });
}
}
export default eNanoMapperdatabase;
No reviews yet. Be the first to rate this API.
No. eNanoMapper database is included with your Omni key, so a single OmniStream key is enough to start calling it. There is no separate signup with the provider and no second key to manage.
AMBIT REST web services [eNanoMapper profile] with free text & faceted search It exposes 13 endpoints over GET, POST, including GET /enm/{db}/investigation, GET /enm/{db}/query/compound/{term}/{representation}, GET /enm/{db}/query/similarity.
Install the OmniStream SDK for your language and call eNanoMapper database through it. The client is generated from this API's OpenAPI spec, so parameters and responses are fully typed, and the same client also calls every other API in the marketplace.
You can start on the free plan. OmniStream charges for the unified SDK, key storage and proxy rather than for eNanoMapper database itself.
GraphHopper Directions: Routing, geocoding, isochrones, matrix, and route optimization from the GraphHopper Directions API.
Substructure search
Search endpoint summary
List substances
Get a substance
Substance composition
Get substance composition as a dataset
get substance study
Get study summary for the substance
Apache Solr powered search
Apache Solr powered search