Laravel icon

Laravel Quick Start Guide

Get started with FacePing's face recognition API using Laravel

Prerequisites

Installation

First, create a new Laravel project:

composer create-project laravel/laravel faceping-demo
cd faceping-demo

Add your API key to .env:

FACEPING_API_KEY=your_api_key_here

Step 1: Create Face Group

Create a new controller app/Http/Controllers/FaceController.php:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;

class FaceController extends Controller
{
    public function createGroup($groupName)
    {
        try {
            $response = Http::withHeaders([
                'Authorization' => 'Bearer ' . env('FACEPING_API_KEY')
            ])->post("https://api.faceping.ai/groups/{$groupName}");

            if ($response->successful()) {
                return response()->json(['message' => 'Group created successfully']);
            }

            return response()->json(['error' => 'Failed to create group'], 500);
        } catch (\Exception $e) {
            return response()->json(['error' => $e->getMessage()], 500);
        }
    }

Step 2: Upload Face Image

Add to FaceController.php:

<?php

    public function uploadFace(Request $request, $groupName)
    {
        if (!$request->hasFile('image')) {
            return response()->json(['error' => 'No image file provided'], 400);
        }

        try {
            $response = Http::withHeaders([
                'Authorization' => 'Bearer ' . env('FACEPING_API_KEY')
            ])->attach(
                'image', 
                file_get_contents($request->file('image')), 
                $request->file('image')->getClientOriginalName()
            )->post("https://api.faceping.ai/groups/{$groupName}/faces");

            if ($response->successful()) {
                return response()->json(['message' => 'Face uploaded successfully']);
            }

            return response()->json(['error' => 'Failed to upload face'], 500);
        } catch (\Exception $e) {
            return response()->json(['error' => $e->getMessage()], 500);
        }
    }

Step 3: Search for Faces

Add to FaceController.php:

<?php

    public function searchFaces(Request $request, $groupName)
    {
        if (!$request->hasFile('image')) {
            return response()->json(['error' => 'No image file provided'], 400);
        }

        try {
            $response = Http::withHeaders([
                'Authorization' => 'Bearer ' . env('FACEPING_API_KEY')
            ])->attach(
                'image', 
                file_get_contents($request->file('image')), 
                $request->file('image')->getClientOriginalName()
            )->post("https://api.faceping.ai/groups/{$groupName}/search");

            if ($response->successful()) {
                return response()->json($response->json());
            }

            return response()->json(['error' => 'Failed to search faces'], 500);
        } catch (\Exception $e) {
            return response()->json(['error' => $e->getMessage()], 500);
        }
    }

Create routes file routes/api.php:

<?php

use App\Http\Controllers\FaceController;

Route::post('/groups/{groupName}', [FaceController::class, 'createGroup']);
Route::post('/groups/{groupName}/faces', [FaceController::class, 'uploadFace']);
Route::post('/groups/{groupName}/search', [FaceController::class, 'searchFaces']);

Security Notes

  • Images are immediately discarded after vector conversion
  • Face vectors cannot be reverse-engineered into images
  • Always use HTTPS in production
  • Store your API keys in environment variables (.env file)

Ready to get started?

Take a look at the API documentation
API docs