Illustration of verifying a Colombian public servant: profile card with a check, government building, map and database

Colombia SIGEP Public Servant Lookup API: Verify Officials by Cédula, NIT or Name

Table of Contents
Share this article

Short answer: To look up a Colombian public servant in SIGEP with Verifik, send a GET request to /v2/co/sigep/number with documentType (CC or NIT) and documentNumber. The API returns the name and, when published, the position, entity, email, phone, location and official profile link. If you only have the name, use /v2/co/sigep/name.

Government ties can play an important role in due diligence, regulatory compliance and risk assessment. Whether you are onboarding a customer, assessing a supplier or running background checks, confirming whether a person appears in Colombia’s official public employment directory helps you make better-informed decisions.

In Colombia, public servant information is available through SIGEP (Sistema de Información y Gestión del Empleo Público), the country’s official public employment and contracting information system, which Función Pública publishes in its public servant directory. Searching every record by hand, however, is slow and impractical, especially for organisations that process high verification volumes.

This guide shows how Verifik’s SIGEP API automates public servant verification by document number or by name, with real code examples, the response fields and the errors you need to handle. For the full set of checks behind a Colombian onboarding flow, start with the Colombia KYC API guide.

Why public servant verification matters in Colombia

Organisations often need to know whether a person has a tie to Colombia’s public sector. This information supports due diligence, regulatory compliance, supplier assessment and conflict-of-interest reviews before a business relationship begins.

Public servant verification helps you:

  • Check whether a person appears in the SIGEP directory.
  • Support compliance and due diligence processes.
  • Strengthen supplier and third-party risk assessments.
  • Improve transparency when onboarding customers or partners.
  • Make better-informed business and compliance decisions.

Reliable public employment data makes background checks stronger and reduces reliance on manual review. Directory data is public, but use it only for a defined due-diligence purpose and in line with Colombia’s personal data protection law (Ley 1581 of 2012).

Want to try it? Create your Verifik account and make your first call today.

What SIGEP is and what the directory shows

SIGEP holds published information about people who work for government entities or hold public-sector positions. When you look a person up by document number, you can see whether directory records exist and get the information the official source returns.

Depending on the available records, you can get:

  • Position as a public servant or contractor.
  • Government entity.
  • Official contact email and phone number.
  • Office location.
  • Link to the official SIGEP profile.

The public employment directory is separate from the asset and income declarations required by Ley 2013 of 2019, which Función Pública publishes in its citizen declarations search. Verifik’s SIGEP endpoints query the directory, not those declarations.

Why manual SIGEP searches slow down due diligence

Many organisations still search the SIGEP directory by hand. That works for the odd check, but it becomes inefficient when you have many requests to process every day.

  • Longer verification times.
  • Heavier administrative workload.
  • Repetitive searches across public records.
  • Higher risk of inconsistent checks.
  • Slower onboarding and compliance processes.

Automating the lookup gets you the official information faster and applies the same criteria to every case.

How Verifik’s SIGEP API works

With a person’s document type and number, the API queries the official SIGEP directory and returns the available records in a structured response: name, position, entity, contact details, office location and official profile link, depending on what the source publishes.

Diagram of the 6 steps of a SIGEP API lookup: document or name, endpoint, records, legend, PEP check and stored evidence

Because the response is structured JSON, you can plug the check straight into compliance platforms, onboarding systems, supplier assessment tools or your own applications. Verifik offers two endpoints: one by document (cédula or NIT) and one by full name.

SIGEP lookup by cédula or NIT (GET /v2/co/sigep/number)

This is the most precise flow: the API first resolves the person’s identity and then returns the matching directory rows. These are the parameters, per the lookup-by-document documentation:

ParameterTypeRequiredDescription
documentTypestringYesCC or NIT (the API only accepts these two values).
documentNumberstringYesNumber without spaces or punctuation.

cURL request (fictitious example data):

curl -G "https://api.verifik.co/v2/co/sigep/number" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $VERIFIK_TOKEN" \
  --data-urlencode "documentType=CC" \
  --data-urlencode "documentNumber=1020304050"

The same request in JavaScript with axios:

import axios from "axios";

const { data } = await axios.get("https://api.verifik.co/v2/co/sigep/number", {
  params: { documentType: "CC", documentNumber: "1020304050" },
  headers: {
    Accept: "application/json",
    Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
  },
});
console.log(data);

And in Python with requests:

import os
import requests

r = requests.get(
    "https://api.verifik.co/v2/co/sigep/number",
    params={"documentType": "CC", "documentNumber": "1020304050"},
    headers={
        "Accept": "application/json",
        "Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}",
    },
    timeout=30,
)
print(r.json())

Example 200 response (fictitious values, real field names):

{
  "data": {
    "arrayName": [
      "MARIA",
      "FERNANDA",
      "GOMEZ",
      "RUIZ"
    ],
    "documentNumber": "1020304050",
    "documentType": "CC",
    "firstName": "MARIA FERNANDA",
    "fullName": "MARIA FERNANDA GOMEZ RUIZ",
    "lastName": "GOMEZ RUIZ",
    "legend": "",
    "records": [
      {
        "name": "MARIA FERNANDA GOMEZ RUIZ",
        "linkProfile": "https://www.funcionpublica.gov.co/dafpIndexerBHV/hvSigep/detallarHV/EJEMPLO-0000-0",
        "position": "Servidor Público",
        "entity": "ALCALDÍA DE MUNICIPIO EJEMPLO",
        "email": "[email protected]",
        "phone": "6010000000",
        "location": "MUNICIPIO EJEMPLO - DEPARTAMENTO EJEMPLO"
      }
    ]
  },
  "signature": {
    "dateTime": "November 11, 2026 8:15 AM",
    "message": "Certified by Verifik.co"
  },
  "id": "EJ149"
}

SIGEP lookup by name (GET /v2/co/sigep/name)

Sometimes all you have is a person’s full name: a supplier contact, a representative named in a bid or a name on a contract. For those cases, the by-name endpoint searches the directory with the fullName parameter, as it appears in official records. If you have the document type and number, prefer the by-document lookup, which is more precise.

cURL request (encode the spaces in the name; --data-urlencode does it for you):

curl -G "https://api.verifik.co/v2/co/sigep/name" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $VERIFIK_TOKEN" \
  --data-urlencode "fullName=MARIA FERNANDA GOMEZ RUIZ"

Example 200 response:

{
  "data": {
    "fullName": "MARIA FERNANDA GOMEZ RUIZ",
    "legend": "",
    "records": [
      {
        "name": "MARIA FERNANDA GOMEZ RUIZ",
        "linkProfile": "https://www.funcionpublica.gov.co/dafpIndexerBHV/hvSigep/detallarHV/EJEMPLO-0000-0",
        "position": "Servidor Público",
        "entity": "ALCALDÍA DE MUNICIPIO EJEMPLO",
        "email": "[email protected]",
        "phone": "6010000000",
        "location": "MUNICIPIO EJEMPLO - DEPARTAMENTO EJEMPLO"
      }
    ]
  },
  "signature": {
    "dateTime": "November 11, 2026 8:16 AM",
    "message": "Certified by Verifik.co"
  },
  "id": "EJ150"
}

A name search can return several rows when people share a name. Before you act on a result, confirm the match against the entity, position or document. Details are in the lookup-by-name documentation.

Response fields and errors

Each row in records has the same fields in both endpoints. Some may be empty when the source does not publish them.

FieldWhat it holds
fullName, firstName, lastName, arrayNameThe person’s name (the split name fields come only with the by-document lookup).
records[].positionPosition, for example public servant or contractor.
records[].entityGovernment entity.
records[].email, records[].phonePublished official contact details.
records[].locationOffice city and department.
records[].linkProfileLink to the official Función Pública profile.
legendMessage that may explain why there are no directory rows.
signature, id“Certified by Verifik.co” signature with date and time, plus a lookup ID for your audit trail.

These are the documented outcomes and errors your integration should cover:

ResponseMeaningWhat to do
200 with empty recordsThe person exists but has no directory rows; the legend may explain why.Log the result and the legend; do not treat it as a negative finding.
404 NotFound“Record not found.”Mark “no record” and carry on with your other checks.
409 MissingParameterA parameter is missing or documentType is not CC or NIT.Fix the request; do not retry it unchanged.
409 Endpoint_out_of_serviceThe SIGEP service is unavailable at that moment.Retry with growing backoff or queue the case.

A JavaScript handler that applies that table:

import axios from "axios";

async function lookupSigep(documentNumber, documentType = "CC", tries = 3) {
  for (let i = 1; i <= tries; i++) {
    try {
      const { data } = await axios.get("https://api.verifik.co/v2/co/sigep/number", {
        params: { documentType, documentNumber },
        headers: { Accept: "application/json", Authorization: `Bearer ${process.env.VERIFIK_TOKEN}` },
        timeout: 30000,
      });
      const { records, legend } = data.data;
      // No directory rows: not a negative result; keep the legend
      if (records.length === 0) return { inDirectory: false, note: legend, id: data.id };
      return { inDirectory: true, records: records, id: data.id };
    } catch (err) {
      const status = err.response?.status;
      const body = JSON.stringify(err.response?.data ?? {});
      // 404 NotFound: no record for that document
      if (status === 404) return { inDirectory: false, note: "Record not found." };
      // SIGEP unavailable: retry with growing backoff
      if (status === 409 && body.includes("Endpoint_out_of_service") && i < tries) {
        await new Promise((r) => setTimeout(r, 2000 * i));
        continue;
      }
      throw err;
    }
  }
}

Being in SIGEP is not the same as being a PEP

A common mistake is treating every directory row as a politically exposed person. Colombia’s Decree 830 of 2021 treats public servants as PEPs when they hold assigned or delegated duties to issue rules or regulations, provide general direction, set institutional policy, directly manage state assets, money or securities, administer justice or exercise administrative sanctioning powers. PEP status lasts while they hold office and for two years after they leave.

So SIGEP tells you whether someone has a public-sector tie and in which position; the PEP assessment is a separate step. The directory response has no PEP field, so when the position suggests those duties, run Verifik’s PEP endpoint with the same document:

curl -G "https://api.verifik.co/v2/co/politically-exposed-persons" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $VERIFIK_TOKEN" \
  --data-urlencode "documentType=CC" \
  --data-urlencode "documentNumber=1020304050"

That endpoint returns, when the source publishes them, details such as entity, position, publication type and declaration status. A 404 often means there is no PEP record for that document. The fields are listed in the Colombia PEP documentation.

Who benefits from Verifik’s SIGEP API

SIGEP lookups strengthen due diligence, compliance and third-party risk management across several teams:

  • Financial institutions and fintechs: check whether customers or related parties appear in the directory as part of enhanced due diligence. If you are building your programme, see the KYC requirements checklist for fintech startups and the eKYC for banks guide.
  • Compliance teams: review public servant records before onboarding customers, suppliers or business partners.
  • Procurement and supplier risk: spot public-sector ties among suppliers, contractors or key stakeholders before signing, alongside the public contracts lookup.
  • Background check providers: build the API into their services to offer public servant lookups to clients in Colombia.

Benefits of automating public servant verification

Searching the directory by hand slows compliance workflows, especially when you need to check many people. Automating the lookup with Verifik lets you:

  • Verify faster: one API request per person instead of manual searches.
  • Strengthen due diligence: spot relevant public-sector ties during onboarding, supplier assessment and compliance reviews.
  • Integrate with your systems: structured data connects to compliance, onboarding, CRM and in-house applications.
  • Scale with the same criteria: from a few lookups to high volumes, with signed responses you can keep as evidence.

Why choose Verifik’s API for SIGEP lookups

Verifik automates identity verification, legal checks and compliance with APIs connected to Latin American data sources. With the SIGEP API you can:

  • Look up public servants by cédula, NIT or full name.
  • Get the official directory information with a single API request.
  • Cut manual verification and administrative workload.
  • Complete the profile with other sources in the same account, such as the PEP list, OFAC sanctions lists and the Contraloría certificate.
  • Work with structured, developer-friendly responses.

Want to see it with your own cases? Book a free demo and we will walk through your due diligence flow together.

Final thoughts

Checking public servant records is an important step in strengthening due diligence, compliance and third-party risk management in Colombia. With Verifik’s SIGEP lookup by cédula or name you get faster access to official public employment records, less manual effort and a check that fits your existing workflows.

Ready to automate public servant verification? Create your account and try the SIGEP endpoints with your own token.

Miguel Treviño - Co-founder and CTO, Verifik

Frequently Asked Questions (FAQs)

➖

What is Verifik's SIGEP API?

It is a service that queries Colombia's official public servant directory (SIGEP) and returns a person's published records from their document number or full name, in a structured JSON response.

➕

What information can Verifik's SIGEP API return?

Depending on the available records, it returns the person's name, position as a public servant or contractor, entity, official email and phone, office location and the link to the official SIGEP profile.

➕

Which document types are supported?

The by-document lookup (GET /v2/co/sigep/number) accepts CC (citizenship card) and NIT. The by-name lookup (GET /v2/co/sigep/name) only needs the fullName parameter with the person's full name.

➕

Does appearing in SIGEP make someone a PEP?

No. Under Decree 830 of 2021, a public servant is a PEP only if they hold duties such as issuing rules, general direction, setting policy, managing state funds, administering justice or sanctioning, and the status lasts two years after leaving office. Use Verifik's PEP endpoint as well to assess it.

➕

What happens if the lookup returns no records?

The API may answer 200 with an empty records array and a legend message, or 404 NotFound. Neither is a negative finding: log the result and carry on with your other checks. If you get 409 Endpoint_out_of_service, retry later.

➕

Who should use Verifik's SIGEP API?

Financial institutions, fintechs, compliance teams, procurement and supplier risk teams, and background check providers that need to confirm public-sector ties in Colombia.

➕

Can the API be integrated into existing business systems?

Yes. It is a REST API with GET requests and JSON responses, so it plugs into compliance platforms, onboarding systems, CRMs and in-house applications. The documentation includes JavaScript and Python examples.

➕

Why automate SIGEP lookups?

Because it cuts manual work, speeds up due diligence, applies the same criteria to every case and leaves a Verifik-signed response as evidence of each lookup.

Explore more articles