Food API Documentation

A comprehensive guide to using our Food API

API Endpoints

POST /api/v1/images/analyze

Analyzes food in an uploaded image and returns nutritional information.

Request Body:

Form data with the following parameters:

  • image - The food image file to analyze (JPEG, PNG, or WebP format, max 10MB)

Request Headers:

  • Authorization - Bearer YOUR_API_KEY
  • Content-Type - Must be multipart/form-data

Example Response:

{
  "data": {
    "analysis": {
      "meal_name": "Chicken Salad",
      "proteins": 25,
      "carbohydrates": 15, 
      "fats": 8,
      "total_weight": 350
    },
    "meta": {
      "processing_time": "1.2s"
    }
  }
}

Error Responses:

  • 400 - Invalid image format or corrupted image
  • 413 - Image file too large (max 10MB)
  • 422 - No food detected in the image

Rate Limits

Rate limits depend on your subscription plan:

Plan Requests per Month Rate Limit
Free 1,000 60 per minute
Basic 5,000 120 per minute
Premium 25,000 300 per minute
Pro 100,000 600 per minute

Error Handling

The API uses standard HTTP response codes to indicate the success or failure of requests:

  • 200 OK - Request succeeded
  • 400 Bad Request - Invalid request parameters
  • 401 Unauthorized - Authentication failed or API key missing
  • 403 Forbidden - Valid API key but insufficient permissions
  • 404 Not Found - Resource not found
  • 429 Too Many Requests - Rate limit exceeded
  • 500 Server Error - Something went wrong on our end

Error Response Format:

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "You have exceeded your rate limit.",
    "details": "Request rate limited. Please try again in 60 seconds."
  }
}

API Usage Examples

cURL Example

curl -X POST \
  https://foodapi.devco.solutions/api/v1/images/analyze \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: multipart/form-data' \
  -F 'image=@/path/to/your/food-image.jpg'

JavaScript Example

const form = new FormData();
form.append('image', imageFile);

fetch('https://foodapi.devco.solutions/api/v1/images/analyze', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: form
})
.then(response => response.json())
.then(data => {
  console.log(data);
})
.catch(error => {
  console.error('Error:', error);
});

PHP Example

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://foodapi.devco.solutions/api/v1/images/analyze",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => [
    'image' => new CURLFile('/path/to/your/food-image.jpg')
  ],
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer YOUR_API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error: " . $err;
} else {
  $result = json_decode($response, true);
  print_r($result);
}

Need more help with our API?

Contact Support