Express.js icon

Express.js Quick Start Guide

Get started with FacePing's face recognition API using Express.js

Prerequisites

Installation

First, create a new Express project and install the required dependencies:

mkdir faceping-express
cd faceping-express
npm init -y
npm install express dotenv multer node-fetch form-data

Step 1: Create Face Group

Create a new file create-group.js:

require('dotenv').config();
const fetch = require('node-fetch');

async function createGroup(groupName) {
  try {
    const response = await fetch(
      `https://api.faceping.ai/groups/${groupName}`,
      {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${process.env.FACEPING_API_KEY}`
        }
      }
    );
    
    const data = await response.json();
    console.log('Group created successfully');
    return data;
  } catch (error) {
    console.error('Error creating group:', error);
    return null;
  }
}

// Usage
createGroup('my-group')
  .then(result => console.log(result))
  .catch(error => console.error(error));

Step 2: Upload Face Image

Create a new file upload-face.js:

require('dotenv').config();
const fetch = require('node-fetch');
const FormData = require('form-data');
const fs = require('fs');

async function uploadFace(groupName, imagePath) {
  try {
    const formData = new FormData();
    formData.append('image', fs.createReadStream(imagePath));

    const response = await fetch(
      `https://api.faceping.ai/groups/${groupName}/faces`,
      {
        method: 'POST',
        body: formData,
        headers: {
          'Authorization': `Bearer ${process.env.FACEPING_API_KEY}`,
          ...formData.getHeaders()
        }
      }
    );

    const data = await response.json();
    console.log('Face uploaded successfully');
    return data;
  } catch (error) {
    console.error('Error uploading face:', error);
    return null;
  }
}

// Usage
uploadFace('my-group', './face.jpg')
  .then(result => console.log(result))
  .catch(error => console.error(error));

Step 3: Search for Faces

Create a new file search-faces.js:

require('dotenv').config();
const fetch = require('node-fetch');
const FormData = require('form-data');
const fs = require('fs');

async function searchFaces(groupName, imagePath) {
  try {
    const formData = new FormData();
    formData.append('image', fs.createReadStream(imagePath));

    const response = await fetch(
      `https://api.faceping.ai/groups/${groupName}/search`,
      {
        method: 'POST',
        body: formData,
        headers: {
          'Authorization': `Bearer ${process.env.FACEPING_API_KEY}`,
          ...formData.getHeaders()
        }
      }
    );

    const data = await response.json();
    const matches = data.matches || [];
    console.log(`Found ${matches.length} matches`);
    return matches;
  } catch (error) {
    console.error('Error searching faces:', error);
    return [];
  }
}

// Usage
searchFaces('my-group', './search-face.jpg')
  .then(matches => {
    matches.forEach(match => {
      console.log(`Match Score: ${match.score}`);
    });
  })
  .catch(error => console.error(error));

Security Notes

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

Ready to get started?

Take a look at the API documentation
API docs