PickupPals API Documentation

Welcome to the PickupPals API documentation. This API allows you to manage temperature-controlled food storage services.

Base URL

https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1

Authentication

All API requests require authentication using API keys. Include your API key in the request headers:

X-API-Key: your_api_key_here

Vendor Endpoints

POST /vendors/register

Register a new vendor account.

curl -X POST https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/register \
-H "Content-Type: application/json" \
-d '{
    "restaurantName": "Pizza Palace",
    "address": "123 Main St",
    "email": "contact@pizzapalace.com",
    "phone": "+1234567890",
    "tempRangeMin": 2,
    "tempRangeMax": 8,
    "password": "securepassword123"
}'
import requests

def register_vendor(vendor_data):
    url = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/register"
    headers = {"Content-Type": "application/json"}
    
    response = requests.post(url, json=vendor_data)
    return response.json()

# Example usage
vendor_data = {
    "restaurantName": "Pizza Palace",
    "address": "123 Main St",
    "email": "contact@pizzapalace.com",
    "phone": "+1234567890",
    "tempRangeMin": 2,
    "tempRangeMax": 8,
    "password": "securepassword123"
}

result = register_vendor(vendor_data)
print(f"Vendor ID: {result['vendorId']}")
async function registerVendor(vendorData) {
    const response = await fetch(
        'https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/register',
        {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(vendorData)
        }
    );
    
    return await response.json();
}

// Example usage
const vendorData = {
    restaurantName: "Pizza Palace",
    address: "123 Main St",
    email: "contact@pizzapalace.com",
    phone: "+1234567890",
    tempRangeMin: 2,
    tempRangeMax: 8,
    password: "securepassword123"
};

registerVendor(vendorData)
    .then(result => console.log('Vendor ID:', result.vendorId))
    .catch(error => console.error('Error:', error));
 [
            'method' => 'POST',
            'header' => "Content-Type: application/json\r\n",
            'content' => json_encode($vendorData)
        ]
    ];
    
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    return json_decode($response, true);
}

// Example usage
$vendorData = [
    'restaurantName' => 'Pizza Palace',
    'address' => '123 Main St',
    'email' => 'contact@pizzapalace.com',
    'phone' => '+1234567890',
    'tempRangeMin' => 2,
    'tempRangeMax' => 8,
    'password' => 'securepassword123'
];

$result = registerVendor($vendorData);
echo "Vendor ID: " . $result['vendorId'];
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;

public class VendorRegistration {
    private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
    private final HttpClient client = HttpClient.newHttpClient();
    private final ObjectMapper mapper = new ObjectMapper();
    
    public Map registerVendor(Map vendorData) throws Exception {
        String requestBody = mapper.writeValueAsString(vendorData);
        
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(BASE_URL + "/vendors/register"))
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(requestBody))
            .build();
            
        HttpResponse response = client.send(request, 
            HttpResponse.BodyHandlers.ofString());
            
        return mapper.readValue(response.body(), Map.class);
    }
    
    public static void main(String[] args) {
        try {
            VendorRegistration registration = new VendorRegistration();
            
            Map vendorData = new HashMap<>();
            vendorData.put("restaurantName", "Pizza Palace");
            vendorData.put("address", "123 Main St");
            vendorData.put("email", "contact@pizzapalace.com");
            vendorData.put("phone", "+1234567890");
            vendorData.put("tempRangeMin", 2);
            vendorData.put("tempRangeMax", 8);
            vendorData.put("password", "securepassword123");
            
            Map result = registration.registerVendor(vendorData);
            System.out.println("Vendor ID: " + result.get("vendorId"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

POST /vendors/login

Authenticate a vendor and retrieve their account details including API keys. Successful login provides access to the vendor dashboard and API keys for service requests.

curl -X POST "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/login" \
-H "Content-Type: application/json" \
-d '{
    "email": "contact@pizzapalace.com",
    "password": "securepassword123"
}'
import requests

def login_vendor(email, password):
    url = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/login"
    headers = {"Content-Type": "application/json"}
    data = {
        "email": email,
        "password": password
    }
    
    response = requests.post(url, json=data)
    return response.json()

# Example usage
credentials = {
    "email": "contact@pizzapalace.com",
    "password": "securepassword123"
}

result = login_vendor(**credentials)
print(f"Vendor ID: {result['vendorId']}")
print(f"Status: {result['status']}")
print(f"API Keys: {len(result['apiKeys'])}")
async function loginVendor(email, password) {
    const response = await fetch(
        'https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/login',
        {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({ email, password })
        }
    );
    
    return await response.json();
}

// Example usage
const credentials = {
    email: "contact@pizzapalace.com",
    password: "securepassword123"
};

loginVendor(credentials.email, credentials.password)
    .then(result => {
        console.log('Vendor ID:', result.vendorId);
        console.log('Status:', result.status);
        console.log('API Keys:', result.apiKeys.length);
    })
    .catch(error => console.error('Error:', error));
 [
            'method' => 'POST',
            'header' => "Content-Type: application/json\r\n",
            'content' => json_encode([
                'email' => $email,
                'password' => $password
            ])
        ]
    ];
    
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    return json_decode($response, true);
}

// Example usage
$credentials = [
    'email' => 'contact@pizzapalace.com',
    'password' => 'securepassword123'
];

$result = loginVendor($credentials['email'], $credentials['password']);
echo "Vendor ID: " . $result['vendorId'] . "\n";
echo "Status: " . $result['status'] . "\n";
echo "API Keys: " . count($result['apiKeys']) . "\n";
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;

public class VendorAuth {
    private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
    private final HttpClient client = HttpClient.newHttpClient();
    private final ObjectMapper mapper = new ObjectMapper();
    
    public Map login(String email, String password) throws Exception {
        Map credentials = new HashMap<>();
        credentials.put("email", email);
        credentials.put("password", password);
        
        String requestBody = mapper.writeValueAsString(credentials);
        
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(BASE_URL + "/vendors/login"))
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(requestBody))
            .build();
            
        HttpResponse response = client.send(request, 
            HttpResponse.BodyHandlers.ofString());
            
        return mapper.readValue(response.body(), Map.class);
    }
    
    public static void main(String[] args) {
        try {
            VendorAuth auth = new VendorAuth();
            
            String email = "contact@pizzapalace.com";
            String password = "securepassword123";
            
            Map result = auth.login(email, password);
            System.out.println("Vendor ID: " + result.get("vendorId"));
            System.out.println("Status: " + result.get("status"));
            
            List> apiKeys = (List>) result.get("apiKeys");
            System.out.println("API Keys: " + apiKeys.size());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Response Example

{
    "vendorId": "vendor_123456789",
    "restaurantName": "Pizza Palace",
    "status": "approved",
    "email": "contact@pizzapalace.com",
    "tempRange": {
        "min": 2,
        "max": 8
    },
    "apiKeys": [
        {
            "keyId": "key_123",
            "name": "Production Key",
            "createdAt": "2024-01-20T10:30:00Z",
            "lastUsed": "2024-01-20T15:45:00Z",
            "expiresAt": "2024-02-19T15:45:00Z"
        }
    ]
}

Error Responses

{
    "error": "Invalid credentials"
}
{
    "error": "Account not approved",
    "status": "pending"
}

API Key Management

POST /vendors/{vendorId}/api-keys

Generate a new API key. Maximum of 3 active API keys per vendor.

curl -X POST "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendorId}/api-keys" \
-H "Content-Type: application/json" \
-H "X-API-Key: your_current_api_key" \
-d '{
    "name": "Production API Key",
    "expiresIn": "30d"
}'
def generate_api_key(vendor_id, current_api_key, key_data):
    url = f"https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendor_id}/api-keys"
    headers = {
        "Content-Type": "application/json",
        "X-API-Key": current_api_key
    }
    
    response = requests.post(url, json=key_data, headers=headers)
    return response.json()

# Example usage
key_data = {
    "name": "Production API Key",
    "expiresIn": "30d"
}
result = generate_api_key("vendor_123", "current_api_key", key_data)
print(f"New API Key: {result['apiKey']}")
async function generateApiKey(vendorId, currentApiKey, keyData) {
    const response = await fetch(
        `https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/${vendorId}/api-keys`,
        {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'X-API-Key': currentApiKey
            },
            body: JSON.stringify(keyData)
        }
    );
    return await response.json();
}

// Example usage
const keyData = {
    name: "Production API Key",
    expiresIn: "30d"
};

generateApiKey('vendor_123', 'current_api_key', keyData)
    .then(result => console.log('New API Key:', result.apiKey))
    .catch(error => console.error('Error:', error));
 [
            'method' => 'POST',
            'header' => "Content-Type: application/json\r\n" .
                       "X-API-Key: {$currentApiKey}\r\n",
            'content' => json_encode($keyData)
        ]
    ];
    
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    return json_decode($response, true);
}

// Example usage
$keyData = [
    'name' => 'Production API Key',
    'expiresIn' => '30d'
];

$result = generateApiKey('vendor_123', 'current_api_key', $keyData);
echo "New API Key: " . $result['apiKey'];
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;

public class VendorRegistration {
    private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
    private final HttpClient client = HttpClient.newHttpClient();
    private final ObjectMapper mapper = new ObjectMapper();
    
    public Map registerVendor(Map vendorData) throws Exception {
        String requestBody = mapper.writeValueAsString(vendorData);
        
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(BASE_URL + "/vendors/register"))
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(requestBody))
            .build();
            
        HttpResponse response = client.send(request, 
            HttpResponse.BodyHandlers.ofString());
            
        return mapper.readValue(response.body(), Map.class);
    }
    
    public static void main(String[] args) {
        try {
            VendorRegistration registration = new VendorRegistration();
            
            Map vendorData = new HashMap<>();
            vendorData.put("restaurantName", "Pizza Palace");
            vendorData.put("address", "123 Main St");
            vendorData.put("email", "contact@pizzapalace.com");
            vendorData.put("phone", "+1234567890");
            vendorData.put("tempRangeMin", 2);
            vendorData.put("tempRangeMax", 8);
            vendorData.put("password", "securepassword123");
            
            Map result = registration.registerVendor(vendorData);
            System.out.println("Vendor ID: " + result.get("vendorId"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

GET /vendors/{vendorId}/api-keys

List all API keys for a vendor.

curl -X GET "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendorId}/api-keys" \
-H "X-API-Key: your_api_key_here"
def list_api_keys(vendor_id, api_key):
    url = f"https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendor_id}/api-keys"
    headers = {"X-API-Key": api_key}
    
    response = requests.get(url, headers=headers)
    return response.json()

# Example usage
vendor_id = "vendor_123"
api_key = "your_api_key_here"
keys = list_api_keys(vendor_id, api_key)
print(f"Total API keys: {keys['total']}")
async function listApiKeys(vendorId, apiKey) {
    const response = await fetch(
        `https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/${vendorId}/api-keys`,
        {
            headers: {
                'X-API-Key': apiKey
            }
        }
    );
    return await response.json();
}

// Example usage
listApiKeys('vendor_123', 'your_api_key_here')
    .then(keys => console.log('Total API keys:', keys.total))
    .catch(error => console.error('Error:', error));
 [
            'method' => 'GET',
            'header' => "X-API-Key: {$apiKey}\r\n"
        ]
    ];
    
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    return json_decode($response, true);
}

// Example usage
$keys = listApiKeys('vendor_123', 'your_api_key_here');
echo "Total API keys: " . $keys['total'];
public Map listApiKeys(String vendorId, String apiKey) 
        throws Exception {
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create(BASE_URL + "/vendors/" + vendorId + "/api-keys"))
        .header("X-API-Key", apiKey)
        .GET()
        .build();
        
    HttpResponse response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
        
    return mapper.readValue(response.body(), Map.class);
}

Response Example

{
    "apiKeys": [
        {
            "keyId": "key_123",
            "name": "Production API Key",
            "createdAt": "2024-01-20T10:30:00Z",
            "lastUsed": "2024-01-20T15:45:00Z",
            "expiresAt": "2024-02-19T15:45:00Z",
            "isActive": true
        }
    ],
    "total": 1,
    "remaining": 2
}

DELETE /vendors/{vendorId}/api-keys/{keyId}

Delete an existing API key.

curl -X DELETE "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendorId}/api-keys/{keyId}" \
-H "X-API-Key: your_api_key_here"
def delete_api_key(vendor_id, key_id, api_key):
    url = f"https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/{vendor_id}/api-keys/{key_id}"
    headers = {"X-API-Key": api_key}
    
    response = requests.delete(url, headers=headers)
    return response.json()

# Example usage
vendor_id = "vendor_123"
key_id = "key_123"
api_key = "your_api_key_here"
result = delete_api_key(vendor_id, key_id, api_key)
print(f"Status: {result['status']}")
async function deleteApiKey(vendorId, keyId, apiKey) {
    const response = await fetch(
        `https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/vendors/${vendorId}/api-keys/${keyId}`,
        {
            method: 'DELETE',
            headers: {
                'X-API-Key': apiKey
            }
        }
    );
    return await response.json();
}

// Example usage
deleteApiKey('vendor_123', 'key_123', 'your_api_key_here')
    .then(result => console.log('Status:', result.status))
    .catch(error => console.error('Error:', error));
 [
            'method' => 'DELETE',
            'header' => "X-API-Key: {$apiKey}\r\n"
        ]
    ];
    
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    return json_decode($response, true);
}

// Example usage
$result = deleteApiKey('vendor_123', 'key_123', 'your_api_key_here');
echo "Status: " . $result['status'];
public Map deleteApiKey(String vendorId, String keyId, String apiKey) 
        throws Exception {
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create(BASE_URL + "/vendors/" + vendorId + "/api-keys/" + keyId))
        .header("X-API-Key", apiKey)
        .DELETE()
        .build();
        
    HttpResponse response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
        
    return mapper.readValue(response.body(), Map.class);
}

Response Example

{
    "status": "success",
    "message": "API key deleted successfully"
}

Service Endpoints

POST /service/requests

Create a new temperature-controlled storage request.

curl -X POST https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{
    "orderId": "order_123",
    "temperature": 65,
    "duration": 60,
    "notes": "Handle with care"
}'
import requests

def create_service_request(api_key, request_data):
    url = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests"
    headers = {
        "Content-Type": "application/json",
        "X-API-Key": api_key
    }
    
    response = requests.post(url, json=request_data, headers=headers)
    return response.json()

# Example usage
api_key = "your_api_key_here"
request_data = {
    "orderId": "order_123",
    "temperature": 65,
    "duration": 60,
    "notes": "Handle with care"
}

result = create_service_request(api_key, request_data)
print(f"Request ID: {result['requestId']}")
async function createServiceRequest(apiKey, requestData) {
    const response = await fetch(
        'https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests',
        {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'X-API-Key': apiKey
            },
            body: JSON.stringify(requestData)
        }
    );
    
    return await response.json();
}

// Example usage
const apiKey = 'your_api_key_here';
const requestData = {
    orderId: 'order_123',
    temperature: 65,
    duration: 60,
    notes: 'Handle with care'
};

createServiceRequest(apiKey, requestData)
    .then(result => console.log('Request ID:', result.requestId))
    .catch(error => console.error('Error:', error));
 [
            'method' => 'POST',
            'header' => "Content-Type: application/json\r\n" .
                       "X-API-Key: {$apiKey}\r\n",
            'content' => json_encode($requestData)
        ]
    ];
    
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    return json_decode($response, true);
}

// Example usage
$apiKey = 'your_api_key_here';
$requestData = [
    'orderId' => 'order_123',
    'temperature' => 65,
    'duration' => 60,
    'notes' => 'Handle with care'
];

$result = createServiceRequest($apiKey, $requestData);
echo "Request ID: " . $result['requestId'];
public class ServiceRequest {
    private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
    private final HttpClient client = HttpClient.newHttpClient();
    private final ObjectMapper mapper = new ObjectMapper();
    
    public Map createRequest(String apiKey, Map requestData) 
            throws Exception {
        String requestBody = mapper.writeValueAsString(requestData);
        
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(BASE_URL + "/service/requests"))
            .header("Content-Type", "application/json")
            .header("X-API-Key", apiKey)
            .POST(HttpRequest.BodyPublishers.ofString(requestBody))
            .build();
            
        HttpResponse response = client.send(request, 
            HttpResponse.BodyHandlers.ofString());
            
        return mapper.readValue(response.body(), Map.class);
    }
    
    public static void main(String[] args) {
        try {
            ServiceRequest service = new ServiceRequest();
            
            Map requestData = new HashMap<>();
            requestData.put("orderId", "order_123");
            requestData.put("temperature", 65);
            requestData.put("duration", 60);
            requestData.put("notes", "Handle with care");
            
            String apiKey = "your_api_key_here";
            
            Map result = service.createRequest(apiKey, requestData);
            System.out.println("Request ID: " + result.get("requestId"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Response Example

{
    "requestId": "req_123456789",
    "status": "pending",
    "temperature": {
        "target": 65,
       
    },
    "duration": {
        "minutes": 60,
        "startTime": null
    },
    "orderId": "order_123",
    "notes": "Handle with care"
}

GET /service/requests/{requestId}

Get the status and details of a specific service request.

curl -X GET "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests/{requestId}" \
-H "X-API-Key: your_api_key_here"
def get_service_status(request_id, api_key):
    url = f"https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests/{request_id}"
    headers = {"X-API-Key": api_key}
    
    response = requests.get(url, headers=headers)
    return response.json()

# Example usage
request_id = "req_123456789"
api_key = "your_api_key_here"
status = get_service_status(request_id, api_key)
print(f"Status: {status['status']}")
async function getServiceStatus(requestId, apiKey) {
    const response = await fetch(
        `https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/service/requests/${requestId}`,
        {
            headers: {
                'X-API-Key': apiKey
            }
        }
    );
    return await response.json();
}

// Example usage
getServiceStatus('req_123456789', 'your_api_key_here')
    .then(status => console.log('Status:', status))
    .catch(error => console.error('Error:', error));
 [
            'method' => 'GET',
            'header' => "X-API-Key: {$apiKey}\r\n"
        ]
    ];
    
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    return json_decode($response, true);
}

// Example usage
$status = getServiceStatus('req_123456789', 'your_api_key_here');
echo "Status: " . $status['status'];
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;

public class TemperatureMonitor {
    private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
    private final HttpClient client = HttpClient.newHttpClient();
    private final ObjectMapper mapper = new ObjectMapper();
    
    public Map getTemperature(String requestId, String apiKey) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(BASE_URL + "/temperature/" + requestId))
            .header("X-API-Key", apiKey)
            .GET()
            .build();
            
        HttpResponse response = client.send(request, 
            HttpResponse.BodyHandlers.ofString());
            
        return mapper.readValue(response.body(), Map.class);
    }
    
    public static void main(String[] args) {
        try {
            TemperatureMonitor monitor = new TemperatureMonitor();
            Map data = monitor.getTemperature(
                "req_123456789", 
                "your_api_key_here"
            );
            System.out.printf("Current temperature: %f°C%n", data.get("temperature"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Response Example

{
    "temperature": 65.5,
    "timestamp": "2024-01-20T15:45:00Z",
    "status": "active",
    
}

Error Handling

Error Codes

Status Code Description Example
400 Bad Request - Invalid input parameters
{
    "error": "Invalid temperature range"
}
401 Unauthorized - Invalid or missing API key
{
    "error": "Invalid API key"
}
403 Forbidden - Insufficient permissions
{
    "error": "Account not approved"
}
404 Not Found - Resource doesn't exist
{
    "error": "Request not found"
}
429 Too Many Requests - Rate limit exceeded
{
    "error": "Rate limit exceeded",
    "retry_after": 60
}
500 Internal Server Error
{
    "error": "Internal server error"
}

Rate Limiting

The API implements rate limiting to ensure fair usage. Limits are applied per API key.

Endpoint Rate Limit Window
Temperature Monitoring 60 requests per minute
All Other Endpoints 100 requests per minute

Rate Limit Headers

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1516131012

Temperature Endpoints

GET /temperature/{requestId}

Get the current temperature for a specific request.

Required: API Key in X-API-Key header

curl -X GET "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/temperature/{requestId}" \
-H "X-API-Key: your_api_key_here"
import requests

def get_temperature(request_id, api_key):
    url = f"https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/temperature/{request_id}"
    headers = {
        "X-API-Key": api_key
    }
    
    response = requests.get(url, headers=headers)
    return response.json()

# Example usage
request_id = "req_123456789"
api_key = "your_api_key_here"
temperature_data = get_temperature(request_id, api_key)
print(f"Current temperature: {temperature_data['temperature']}°C")
async function getTemperature(requestId, apiKey) {
    const response = await fetch(
        `https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1/temperature/${requestId}`,
        {
            headers: {
                'X-API-Key': apiKey
            }
        }
    );
    
    const data = await response.json();
    return data;
}

// Example usage
const requestId = 'req_123456789';
const apiKey = 'your_api_key_here';

getTemperature(requestId, apiKey)
    .then(data => console.log(`Current temperature: ${data.temperature}°C`))
    .catch(error => console.error('Error:', error));
 [
            'method' => 'GET',
            'header' => "X-API-Key: {$apiKey}\r\n"
        ]
    ];
    
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    return json_decode($response, true);
}

// Example usage
$requestId = 'req_123456789';
$apiKey = 'your_api_key_here';
$data = getTemperature($requestId, $apiKey);
echo "Current temperature: " . $data['temperature'] . "°C";
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;

public class TemperatureMonitor {
    private static final String BASE_URL = "https://irawhjin6p.eu-west-1.awsapprunner.com/api/v1";
    private final HttpClient client = HttpClient.newHttpClient();
    private final ObjectMapper mapper = new ObjectMapper();
    
    public Map getTemperature(String requestId, String apiKey) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(BASE_URL + "/temperature/" + requestId))
            .header("X-API-Key", apiKey)
            .GET()
            .build();
            
        HttpResponse response = client.send(request, 
            HttpResponse.BodyHandlers.ofString());
            
        return mapper.readValue(response.body(), Map.class);
    }
    
    public static void main(String[] args) {
        try {
            TemperatureMonitor monitor = new TemperatureMonitor();
            Map data = monitor.getTemperature(
                "req_123456789", 
                "your_api_key_here"
            );
            System.out.printf("Current temperature: %f°C%n", data.get("temperature"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Response Example

{
    "temperature": 65.5,
    "timestamp": "2024-01-20T15:45:00Z",
    "status": "active",
    
}