Make your first request



Prerequisites: for the following, you'll need a Mindee account and a live API subscription. You can go learn how to create an account and freely subscribe to an API here.



Create an API key


Go to the “credentials” section of your API. Click on “add key” to create a new token for this API.





Get your sample code


Go to the Documentation section and find the sample codes in the top right corner:





Call the API


The sample codes will help you perform the POST request to Mindee APIs in different languages, and send your inputs the right way. 


For all the sample codes, replace "mindee_api_url" and "your_token_here" placeholders with your own credentials. Everything is available in your API documentation.



Make sure you have the requests package installed. If not, you can install it in your env by running : 


pip install requests


import requests

url = "mindee_api_url"

with open("/path/to/my/file", "rb") as myfile:
    files = {"file": myfile}
    headers = {"X-Inferuser-Token": "your_token_here"}
    response =, files=files, headers=headers)





curl -X POST \
  mindee_api_url \
  -H 'X-Inferuser-Token: your_token_here' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F file=@/path/to/your/file.png




Load the following code in an html file and open it with your web browser. The page displays a button allowing you to upload an image. Once uploaded, go check your console, the response is there.


<form onsubmit="mindeeSubmit(event)" >
  <input type="file" id="my-file-input" name="file" />
  <input type="submit" />

<script type="text/javascript">
const mindeeSubmit = (evt) => {
  let myFileInput = document.getElementById('my-file-input');
  let myFile = myFileInput.files[0]
  if (!myFile) { return }
  let data = new FormData();
  data.append("file", myFile,;

  let xhr = new XMLHttpRequest();

  xhr.addEventListener("readystatechange", function () {
    if (this.readyState === 4) {
  });"POST", "mindee_api_url");
  xhr.setRequestHeader("X-Inferuser-Token", "your_token_here");


You get something like this ; 





require 'uri'
require 'net/http'
require 'net/https'
require 'mime/types'

url = URI("mindee_api_url")
file = "/path/to/your/file.png"

http =, url.port)
http.use_ssl = true
request =
request["content-type"] = 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
request["X-Inferuser-Token"] = 'your_token_here'
request.body = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; filename=\"#{File.basename(file)}\"\r\nContent-Type: #{MIME::Types.type_for(file)}\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"

response = http.request(request)
puts response.read_body



Make sure you have the request package installed before running this code. If not, you can install it in your env by running : 


npm install request


const fs = require("fs");
const request = require("request");
const options = {
	method: "POST",
	url: "mindee_api_url",
	headers: {
		"X-Inferuser-Token": "your_token_here",
	formData : {
		"file" : fs.createReadStream("/path/to/your/file.png")
request(options, function (err, res, body) {
	if(err) console.log(err);