Skip to content

PHP Examples – Health Fitness API

PHP can interact with the Health Fitness API using multiple approaches. Here are examples for both synchronous and advanced methods.


1. Using cURL (most common)

GET request example:

<?php
$apiKey = "YOUR_API_KEY";
$url = "https://api.hefitapi.com/api/v1/bmi?height=178&weight=82&units=metric&lang=en";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "X-API-Key: $apiKey"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data);
?>

POST request example:

<?php
$apiKey = "YOUR_API_KEY";
$url = "https://api.hefitapi.com/api/v1/bmi/post";

$payload = json_encode([
    "height" => 178,
    "weight" => 82,
    "units" => "metric"
]);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "X-API-Key: $apiKey",
    "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data);
?>

2. Using file_get_contents (Standard PHP)

GET request example:

<?php
$apiKey = "YOUR_API_KEY";
$url = "https://api.hefitapi.com/api/v1/bmi?height=178&weight=82&units=metric&lang=en";

$options = [
    "http" => [
        "header" => "X-API-Key: $apiKey\r\n",
        "method" => "GET"
    ]
];

$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);

$data = json_decode($response, true);
print_r($data);
?>

POST request example:

<?php
$apiKey = "YOUR_API_KEY";
$url = "https://api.hefitapi.com/api/v1/bmi/post";

$payload = json_encode([
    "height" => 178,
    "weight" => 82,
    "units" => "metric"
]);

$options = [
    "http" => [
        "header" => "Content-Type: application/json\r\nX-API-Key: $apiKey\r\n",
        "method" => "POST",
        "content" => $payload
    ]
];

$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);

$data = json_decode($response, true);
print_r($data);
?>

3. Using GuzzleHttp (Composer Package)

Install via Composer:

composer require guzzlehttp/guzzle

GET request example:

<?php
require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();
$apiKey = "YOUR_API_KEY";

$response = $client->request('GET', 'https://api.hefitapi.com/api/v1/bmi', [
    'headers' => ['X-API-Key' => $apiKey],
    'query' => ['height' => 178, 'weight' => 82, 'units' => 'metric', 'lang' => 'en']
]);

$data = json_decode($response->getBody(), true);
print_r($data);
?>

POST request example:

<?php
$response = $client->request('POST', 'https://api.hefitapi.com/api/v1/bmi/post', [
    'headers' => ['X-API-Key' => $apiKey, 'Content-Type' => 'application/json'],
    'json' => ['height' => 178, 'weight' => 82, 'units' => 'metric']
]);

$data = json_decode($response->getBody(), true);
print_r($data);
?>

Install via Composer:

composer require symfony/http-client

GET request example:

<?php
require 'vendor/autoload.php';

use Symfony\Component\HttpClient\HttpClient;

$client = HttpClient::create();
$apiKey = "YOUR_API_KEY";

$response = $client->request('GET', 'https://api.hefitapi.com/api/v1/bmi', [
    'headers' => ['X-API-Key' => $apiKey],
    'query' => ['height' => 178, 'weight' => 82, 'units' => 'metric', 'lang' => 'en']
]);

$data = $response->toArray();
print_r($data);
?>

POST request example:

<?php
$response = $client->request('POST', 'https://api.hefitapi.com/api/v1/bmi/post', [
    'headers' => ['X-API-Key' => $apiKey, 'Content-Type' => 'application/json'],
    'json' => ['height' => 178, 'weight' => 82, 'units' => 'metric']
]);

$data = $response->toArray();
print_r($data);
?>

5. Notes & Best Practices

  • Replace YOUR_API_KEY with your actual key.
  • Use lang parameter to get multi-language responses (en, fr, de, es, etc.).
  • Handle HTTP errors and exceptions for production reliability.
  • Consider using Guzzle or Symfony HttpClient for advanced apps due to connection pooling, retries, and async support.
  • API responses may include risk signals, action plans, and _enterprise metadata when available.

Next Steps

Check other language-specific examples:

Start integrating Health Fitness API into your PHP apps today!


Health Fitness API Powering modern digital health infrastructure