> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.omni-ward.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Redes sociais pelo rosto

> SERVICE_FACE_SOCIAL_SEARCH · Recebe a foto do rosto e devolve os perfis em redes sociais e as páginas públicas onde ele aparece, com a plataforma, o @ do perfil e o grau de semelhança. Ajuda a confirmar que a pessoa existe fora do cadastro.

> [!NOTE]
>
> Alias: `SERVICE_FACE_SOCIAL_SEARCH` · Preço: **R\$ 5,00** por consulta · Exige `purpose`

Recebe a foto do rosto e devolve os perfis em redes sociais e as páginas públicas onde ele aparece, com a plataforma, o @ do perfil e o grau de semelhança. Ajuda a confirmar que a pessoa existe fora do cadastro.

Execute pelo endpoint único [`POST /v1/services`](https://api-docs.omni-ward.com/api-reference/executar-servicos). Você pode combinar este serviço com outros na mesma chamada, enviando cada identificador uma vez.

## Campos do request

| Campo | Obrigatório | Descrição |
| - | - | - |
| `services` | sim | Inclua `"SERVICE_FACE_SOCIAL_SEARCH"` na lista. |
| `face` | sim | Foto do rosto em base64, com ou sem o prefixo `data:image/...;base64,`. |
| `purpose` | sim | Finalidade do tratamento. Este serviço trata dados pessoais. |

## Campos em `result`

| Campo | Descrição | Tipo |
| - | - | - |
| `profiles` | Perfis e páginas públicas onde o rosto aparece, do mais parecido para o menos, até 20. O `outcome` é `match` quando algum tem semelhança forte ou provável, e `not_found` quando não. | array |
| `profiles[].id` | Identificador do resultado no provedor. | string |
| `profiles[].url` | Endereço da página ou do perfil. | string |
| `profiles[].platform` | Rede social (Instagram, TikTok, Facebook, LinkedIn, X, YouTube…) ou `Web` para outros sites. | string |
| `profiles[].handle` | O @ do perfil, quando o endereço mostra; `null` em posts e outros sites. | string |
| `profiles[].domain` | Domínio da página. | string |
| `profiles[].score` | Semelhança com a foto enviada, de 50 a 100. | number |
| `profiles[].confidence` | `strong` a partir de 83, `probable` de 70 a 82, `unlikely` abaixo de 70. | string |
| `profiles[].thumbnail` | Miniatura do rosto encontrado, em data URL, ou `null`. | string |
| `total` | Quantos perfis e páginas voltaram. | number |
| `strongMatches` | Quantos têm semelhança forte. | number |
| `platforms` | Redes sociais com semelhança forte ou provável, sem repetir. | array |

Todo `result` traz também `outcome`, o resumo da consulta: `clear`, `alert`, `match`, `no_match` ou `not_found`.

```bash cURL theme={null}
curl --request POST 'https://api.omni-ward.com/v1/services' \
  --header 'Authorization: Bearer $OMNI_WARD_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: $(uuidgen)' \
  --data '{
  "services": [
    "SERVICE_FACE_SOCIAL_SEARCH"
  ],
  "face": "/9j/4AAQSkZJRgABAQ…",
  "purpose": "Abertura de conta"
}'
```

```javascript Node.js theme={null}
const res = await fetch('https://api.omni-ward.com/v1/services', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.OMNI_WARD_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': crypto.randomUUID(),
  },
  body: JSON.stringify({
    "services": [
      "SERVICE_FACE_SOCIAL_SEARCH"
    ],
    "face": "/9j/4AAQSkZJRgABAQ…",
    "purpose": "Abertura de conta"
  }),
});
const { results } = await res.json();
```

```python Python theme={null}
import os, uuid, requests

res = requests.post(
    "https://api.omni-ward.com/v1/services",
    headers={"Authorization": f"Bearer {os.environ['OMNI_WARD_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
    json={
      "services": [
        "SERVICE_FACE_SOCIAL_SEARCH"
      ],
      "face": "/9j/4AAQSkZJRgABAQ…",
      "purpose": "Abertura de conta"
    },
    timeout=90,
)
results = res.json()["results"]
```

```php PHP theme={null}
$ch = curl_init("https://api.omni-ward.com/v1/services");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer " . getenv("OMNI_WARD_API_KEY"),
    "Content-Type: application/json",
    "Idempotency-Key: " . bin2hex(random_bytes(16)),
  ],
  CURLOPT_POSTFIELDS => '{"services":["SERVICE_FACE_SOCIAL_SEARCH"],"face":"/9j/4AAQSkZJRgABAQ…","purpose":"Abertura de conta"}',
]);
$results = json_decode(curl_exec($ch), true)["results"];
```

```java Java theme={null}
var body = """
    {
      "services": [
        "SERVICE_FACE_SOCIAL_SEARCH"
      ],
      "face": "/9j/4AAQSkZJRgABAQ…",
      "purpose": "Abertura de conta"
    }
    """;
var request = HttpRequest.newBuilder(URI.create("https://api.omni-ward.com/v1/services"))
    .header("Authorization", "Bearer " + System.getenv("OMNI_WARD_API_KEY"))
    .header("Content-Type", "application/json")
    .header("Idempotency-Key", UUID.randomUUID().toString())
    .POST(HttpRequest.BodyPublishers.ofString(body))
    .build();
var response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
```

```json 200 theme={null}
{
  "results": [
    {
      "service": "SERVICE_FACE_SOCIAL_SEARCH",
      "status": {
        "code": 200,
        "message": "Success"
      },
      "result": {
        "profiles": [
          {
            "id": "d1f0a8c27b9e4f13",
            "url": "https://www.instagram.com/isa.santos_/",
            "domain": "instagram.com",
            "platform": "Instagram",
            "handle": "@isa.santos_",
            "score": 94,
            "confidence": "strong",
            "thumbnail": "data:image/webp;base64,UklGRlYCAABXRUJQVlA4IEoCAA…"
          },
          {
            "id": "7c3e19b04d2a6f88",
            "url": "https://www.tiktok.com/@isasantos.oficial/video/7301829466510245126",
            "domain": "tiktok.com",
            "platform": "TikTok",
            "handle": "@isasantos.oficial",
            "score": 89,
            "confidence": "strong",
            "thumbnail": "data:image/webp;base64,UklGRkQCAABXRUJQVlA4IDgCAA…"
          },
          {
            "id": "2b8d5e6f1a0c9473",
            "url": "https://www.linkedin.com/in/isabela-santos-rh/",
            "domain": "linkedin.com",
            "platform": "LinkedIn",
            "handle": null,
            "score": 81,
            "confidence": "probable",
            "thumbnail": "data:image/webp;base64,UklGRjACAABXRUJQVlA4ICQCAA…"
          },
          {
            "id": "a94f0e3c6b7d2185",
            "url": "https://www.facebook.com/profile.php?id=100064812734519",
            "domain": "facebook.com",
            "platform": "Facebook",
            "handle": null,
            "score": 74,
            "confidence": "probable",
            "thumbnail": "data:image/webp;base64,UklGRhwCAABXRUJQVlA4IBACAA…"
          },
          {
            "id": "5e2c7a1f8d3b0964",
            "url": "https://www.jornaldobairro.com.br/2024/03/feira-de-empreendedoras-reune-40-expositoras",
            "domain": "jornaldobairro.com.br",
            "platform": "Web",
            "handle": null,
            "score": 66,
            "confidence": "unlikely",
            "thumbnail": "data:image/webp;base64,UklGRggCAABXRUJQVlA4IPwBAA…"
          }
        ],
        "total": 5,
        "strongMatches": 2,
        "platforms": [
          "Instagram",
          "TikTok",
          "LinkedIn",
          "Facebook"
        ],
        "outcome": "match"
      },
      "simulated": false,
      "costMinor": 500
    }
  ],
  "totalCostMinor": 500
}
```

```json 422 theme={null}
{
  "error": {
    "code": "validation_failed",
    "message": "Alguns serviços não podem ser executados. Nada foi consultado nem cobrado.",
    "correlationId": "4f1c9a7e-2b1d-4c55-9a51-0d2f6f1c2a10",
    "details": {
      "results": [
        {
          "service": "SERVICE_FACE_SOCIAL_SEARCH",
          "status": {
            "code": 422,
            "message": "Validation failed"
          },
          "result": null,
          "errors": [
            {
              "field": "face",
              "code": "required",
              "message": "Informe foto do rosto (base64): este serviço exige o campo."
            }
          ]
        }
      ]
    }
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.