---
title: "Get Estimates"
method: GET
path: "/estimates/{identifier}"
tags: ["Individual Information"]
---

# Get Estimates

`GET /estimates/{identifier}`

## Request

- Base URL: `https://api.burodeingresos.com`
- URL: `https://api.burodeingresos.com/estimates/{identifier}`
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/burodeingresos/apis/bur-de-ingresos-api/docs/estimates/:identifier/get.ts> (a function with typed inputs; its response is checked against the schema)

Computes `monthly_income`, `employment_status` and `tenure` for an individual identified by an 18-char CURP, with the settings you choose: how many months of history to use, which sources, and as of which date. Optionally returns a monthly history: one point-in-time estimate per month.

The values are computed on every request and never stored; `GET /profile` is not affected. Same access rules as `GET /profile`: a valid consent and a verification by your company in the last 90 days. This call does not create a verification and is not billed.

With `window_months=3` and the other defaults, the values match `GET /profile`. The default 12-month window gives a broader estimate. All three values are estimates derived from the available data.

## Path parameters

- `identifier` string, required

## Query parameters

- `window_months` 3 | 6 | 9 | 12 | 24
- `sources` 'all' | 'invoices' | 'employments'
- `as_of` string, date
- `history` boolean

## Response `200`

Estimates for the identifier.

- EstimatesResponse
  - `identifier` string: The CURP of the individual.
  - `computed_at` string, date-time: When the estimates were computed (UTC). Not the same as `as_of`, the date the estimates refer to.
  - `parameters` object: The effective parameters of the request, defaults included.
    - `window_months` 3 | 6 | 9 | 12 | 24
    - `sources` 'all' | 'invoices' | 'employments'
    - `as_of` string, date
    - `history` boolean
  - `monthly_income` string, decimal, nullable: Estimated net monthly income in MXN: the same estimate as `estimated_monthly_income` in `GET /profile`, computed with the request's parameters. `null` when there is not enough data.
  - `income_source` 'invoices' | 'employment' | 'blended' | 'none': Where `monthly_income` comes from: `invoices` (payroll invoices or own billing), `employment` (IMSS/ISSSTE salary), `blended` (both) or `none` (no estimate).
  - `employment_status` 'employed' | 'self_employed' | 'unemployed' | 'retired' | 'unknown': Same values as `employment_status` in `GET /profile`. With a past `as_of`, and in every `history` month, only `employed`, `self_employed` or `unknown` are returned: the `unemployed` and `retired` signals describe today and can't be dated.
  - `tenure` 'less_than_3_months' | '3_months_plus' | '6_months_plus' | '9_months_plus' | '12_months_plus', nullable: Minimum verifiable job tenure with the current employer, as a floor bucket: same values as `tenure` in `GET /profile`, including `less_than_3_months` (employed, with evidence of the current employer covering less than 3 months, e.g. right after a job change). Resets when the person changes employer. `null` when the status is not `employed` or there is no employer-level evidence.
  - `history` EstimatesHistoryItem[]: Only present when `history=true`. One item per calendar month, from the month of `as_of` back to the identifier's first month with data (an IMSS/ISSSTE start date counts), at most 18 items. Never padded before the first month with data; a month with no data inside the series returns `monthly_income: null`, `income_source: none` and `employment_status: unknown`. Empty when the identifier has no data up to `as_of`.
    - `month` string: Calendar month, `YYYY-MM`.
    - `monthly_income` string, decimal, nullable: Estimated net monthly income in MXN for that month. `null` when there is not enough data.
    - `income_source` 'invoices' | 'employment' | 'blended' | 'none': Where `monthly_income` comes from: `invoices` (payroll invoices or own billing), `employment` (IMSS/ISSSTE salary), `blended` (both) or `none` (no estimate).
    - `employment_status` 'employed' | 'self_employed' | 'unemployed' | 'retired' | 'unknown': `employed`, `self_employed` or `unknown`.
    - `tenure` 'less_than_3_months' | '3_months_plus' | '6_months_plus' | '9_months_plus' | '12_months_plus', nullable: Same as the top-level `tenure`, for that month.

## Other responses

- `400`: A parameter has an invalid value. `details` names the parameter.
- `401`: Unauthorized - Invalid or missing API key.
- `404`: No valid consent and verification by your company in the last 90 days, or no data for the identifier.

## Changes

- **2026-11-03** `98eb3984cffb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/burodeingresos/apis/bur-de-ingresos-api/changes/estimates/:identifier/get.md)

---

[API](https://skmtc.dev/burodeingresos/apis/bur-de-ingresos-api.md) - [All operations](https://skmtc.dev/burodeingresos/apis/bur-de-ingresos-api/llms.txt) - [OpenAPI document](https://skmtc.dev/burodeingresos/apis/bur-de-ingresos-api/revisions/98eb3984cffb?raw)
