API Documentation

Run Inference with a Finetuned Model

POST/api/submit-job

Run a finetuned model by submitting its inference tool to /submit-job (or /submit-batch) with the model named by modelId. There is no separate inference endpoint. List your models with GET /finetuned-models: each row's inferenceType is the tool to send as type, and its id is the modelId. The model must be Available. A model you cannot access, or one that is still training, is refused with a 400 Model not found.

Sign in to pick one of your finetuned models; until then the example uses a placeholder model id.

Parameters:

jobName

(string, required)

Name for the inference job, exactly as on /submit-job.

type

(string, required)

The model's inference tool: the "inferenceType" of its row in GET /finetuned-models (for a chemprop-finetune model, "chemprop-inference"). Not the finetuning tool that trained it.

modelId

(string)

The "id" of your finetuned model, from GET /finetuned-models. Preferred: when both are sent, modelId is used.

modelName

(string)

Or the model's "name" from GET /finetuned-models. Names are not unique, so a name several teammates share is refused.

settings

(object, required)

The inference tool's own inputs. Fetch its schema from GET /tools/{name}/schema, with the inference tool's name.

projectTag, ...

(optional)

Every other field /submit-job accepts is accepted here with the same meaning. /submit-batch takes modelId and modelName the same way, for every row.

HTTP Response Status Codes
Status codeDescription
200Job successfully submitted
400Bad request
403Forbidden - organization or team budget exceeded
500Internal server error
1import requests
2
3api_key = "***************"
4headers = {'x-api-key': api_key}
5base_url = "https://app.tamarind.bio/api/"
6
7params = {
8    "jobName": "my-solubility-model-inference",
9    "type": "chemprop-inference",
10    "modelId": "YOUR_MODEL_ID",
11    "modelName": "my-solubility-model",
12    "settings": {
13        "smiles": [
14            "CCO"
15        ]
16    }
17}
18response = requests.post(base_url + "submit-job", headers=headers, json=params)
19print(response.text)
Response Format
myJobName submitted to queue.