> This page is for Direct Executions.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://infonite.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://infonite.dev/_mcp/server.

# Labor check

GET https://clients.infonite.tech/api/executions/results/{execution_id}/public/v1/labor-check

Your customer's working life with the Spanish Social Security (TGSS).

Who they have worked for and when, what they have contributed month by month, and what that means today: whether they are currently employed, under which régimes, and a guaranteed minimum net income floor derived from their contribution bases. It is the strongest employment and income signal available without a payslip. Field by field in [Labor Check](/guides/data-models/labor-check).

**The official reports travel with it.** The TGSS documents the figures were read from are kept with the execution and listed in [the documents](https://infonite.dev/direct-executions/api-reference/direct-executions-api/fetching-the-results/attachments/direct-executions-v-1-results-attachments-list) — the evidence, next to the data.

Features are chosen when the execution **starts**, not here. An execution that did not ask for `labor_check` answers `204`, and the only way to get the data is to run another one.

| Status | Meaning                                                                                                                    |
| :----- | :------------------------------------------------------------------------------------------------------------------------- |
| `200`  | The labor check.                                                                                                           |
| `202`  | `feature_not_ready` — `labor_check` is still running. **Only this family waits**: the ones that already closed answer now. |
| `204`  | The execution never asked for `labor_check`, or it did and the source had nothing to give. No body either way.             |
| `404`  | No execution with that id for your application, or it has been deleted.                                                    |

**Server to server only.** This call is authorised with your application secret: it belongs in your backend, never in a browser, a mobile app or anything your customer can read.

Reference: https://infonite.dev/direct-executions/api-reference/direct-executions-api/fetching-the-results/public-administration/direct-executions-v-1-results-public-labor-check

## Authentication

- `X-APP-SECRET` header (required) — Application Secret

## Servers

- `https://clients.infonite.tech/api` (Legacy, default)
- `https://clients.infonite.io/api` (Production)

## Request

### Path parameters

- `execution_id` (string, required) — The execution, as the acceptance response returned it.

## Response

### 200

**200 OK**Who your customer has worked for and when, what they have contributed month by month, the minimum net income their bases support, and the work statuses they hold today. The official report the figures come from is in `attachments`.

- `product` ("social_security", required) — The product type identifier. Always `social_security` for this product.
- `sub_family` ("social_security:spain_labor_check", required) — The sub-family identifier: `social_security:spain_labor_check`, the Spanish Social Security (TGSS) labor life check.
- `fetch_date` (string, required) — Date this product was fetched.
- `work_relations_history` (list of WorkRelationSchema, required) — Work relation history: ongoing relations first, then the finished ones from the most recently ended backwards — including situations assimilated to registration such as benefit periods.
- `contribution_base_history` (list of MonthlyBaseSchema, required, deprecated) — Flat monthly contribution-base history, most recent first. Months only — company attribution lives in `contribution_base_by_company`, which groups these same months per employer account.
- `holder_name` (string, optional) — The holder's full name, as printed on the official Social Security reports (the PDFs). ⚠️ **When it is not reported, review this product carefully before you rely on it**: the two reports print different names for the same holder, or no report could be used.
- `identifier` (IdentificationNumberSchema, optional) — The holder's identity document (DNI or NIE), as printed on the official reports; when both are read, they must agree on it. Not reported when no report could be used (not available, not readable, or disagreeing on the identity numbers). When the labor check is retrieved by connecting to the Social Security, both reports are read whether or not you ask for them as attachments, and without a usable one the rest of the data may come from its web pages instead.
- `currently_active` (boolean, optional) — True when the person is actually WORKING right now: at least one entry in `current_work_types` is real work (`employee`, `self_employed` or `public_employee`). Receiving an unemployment benefit is not active employment. Neither is a hire scheduled for a future date: Social Security reports such a person as registered ("alta programada"), but this field stays `false` until the job actually starts. `false` means the person's current situation is known and includes no active job; `null` means the work history could not be recovered, so nothing is claimed either way. The value is deliberately cautious — it is designed for risk decisions — so only clearly identified work counts: in the rare case where an ongoing relation cannot be classified you get `false` plus a `current_work_type_unknown` warning, never an optimistic `true`.
- `current_work_types` (list of enum, optional) — The person's current work statuses: one entry per ongoing relation, so repeated values reveal simultaneous jobs (two `employee` entries = two concurrent employments). An ongoing benefit shows as `unemployment_benefits`. An empty list means nothing ongoing — no job and no benefit.
  - Allowed values: `unknown`, `employee`, `self_employed`, `public_employee`, `vacations`, `unemployment_benefits`, `other`
- `social_security_days` (integer, optional) — Total days effectively counted by Social Security over the whole career. Simultaneous employments are counted once, so this is NOT the sum of the per-relation day counts.
- `contribution_base_by_company` (list of CompanyContributionsSchema, optional, default: []) — Contribution-base history grouped per employer account, most recent first. Join each group to its work relation through the `ccc` code.
- `income_floor` (IncomeFloorSchema, optional) — Guaranteed minimum NET income derived from the certified contribution bases (the certified gross lower bound travels alongside it). A floor for risk assessment, never a salary estimate.
- `attachments` (list of FileAttachmentSchema, optional, default: []) — List of attached supporting documents (e.g. the original TGSS PDF reports this product was extracted from).

### 202

**202 Accepted**`feature_not_ready`: `labor_check` is still running. **You do not have to wait for the whole execution** — every family answers as soon as its own feature closes, so a slow source does not hold up the ones that already finished. The SAME code carries the RECORDS when this family HAS finished and the execution has not: `202` means the run is still going, and the body says which of the two you are holding — `detail` when there is nothing yet, the records when there is.

- `detail` (string, required) — Error message

## Errors

### 404 Not Found Error

**404 Not Found**No execution with that id for your application, or it has been deleted.

- `detail` (string, required) — Error message

### 422 Unprocessable Entity Error

Validation Error

- `detail` (list of ValidationError, optional)

## Types

### WorkRelationSchema

One period of the person's labor life: an employment, a self-employment stretch, or a situation that counts for Social Security without being a job.

- `activity_start` (date, required) — Activity start date — the date the TGSS counts contributed days from.
- `name` (string, required) — Display name of the relation: the employer's name for employees, the regime for self-employment, and the situation description for benefit periods.
- `work_type` (enum, required) — Work type of this relation (e.g. `employee`, `self_employed`, `unemployment_benefits`).
  - Allowed values: `unknown`, `employee`, `self_employed`, `public_employee`, `vacations`, `unemployment_benefits`, `other`
- `contract_type` (enum, required) — Contract type as mapped from the TGSS classification; `unknown` when the source key has no mapping.
  - Allowed values: `unknown`, `permanent`, `temporary`, `training`, `professional_practices`, `fixed_discontinuous`
- `work_schedule` (enum, required) — Work schedule: `full_time`, `part_time`, or `unknown`.
  - Allowed values: `unknown`, `full_time`, `part_time`
- `activity_end` (date, optional) — Activity end date. Empty while the relation is ongoing.
- `regime` (string, optional) — Social Security regime of this relation.
- `ccc` (string, optional) — Employer contribution account code (CCC) — the join key to `contribution_base_by_company`. Absent for self-employment, which has no employer account.
- `assimilated` (boolean, optional, default: false) — True for situations assimilated to registration (benefit periods, paid untaken vacations...) — periods that count for Social Security but are not an actual job. Skip them when reasoning about employment or earned income.
- `contribution_group` (string, optional) — Contribution group of the worker in this relation.
- `collective_agreement` (string, optional) — Collective agreement governing this relation, when declared.
- `social_security_days` (integer, optional) — Days this relation counts for Social Security. Simultaneous relations each count their own days, so summing across relations overstates — the deduplicated career total is the top-level `social_security_days`.
- `currently_active` (boolean, optional) — True while this relation is ongoing (it has no end date yet).

### MonthlyBaseSchema

One month of contribution: its state and, when registered, the gross base amount.

- `date` (date, required) — Last day of the contribution month — a convenience key for date-indexed consumers; `year` and `month` carry the same information.
- `year` (integer, required) — Contribution year.
- `month` (integer, required) — Contribution month (1-12).
- `status` (enum, required) — State of the month: `registered` (base certified by the TGSS), `pending_update` (contribution reported, amount not published yet — an existing contribution, NOT a gap), `not_yet_settled` (recent month still inside the settlement lag), `no_base_registered`, or `no_alta` (not registered that month). A month absent from the list altogether means no contribution row existed for it.
  - Allowed values: `registered`, `no_alta`, `no_base_registered`, `pending_update`, `not_yet_elapsed`, `not_yet_settled`
- `base` (infonite__schemas__utils__CurrencyAmountSchema__1, required) — Monthly contribution base (gross). Carries a numeric amount only when the month is `registered`; in any other state the amount is not available — unavailable, not zero.
- `provisional` (boolean, optional, default: false) — True when the base is provisional and may still be regularized by the TGSS — typical for self-employed workers until the yearly settlement.

### IdentificationNumberSchema

One identification document: its type, its value, and whether the value passed validation.

- `type` (enum, required) — Kind of document the number belongs to (e.g. a national ID, passport, tax ID, or Social Security number).
  - Allowed values: `unknown`, `es:dni`, `es:nie`, `es:cif`, `es:ssn`, `co:cc`, `co:ce`, `co:nit`, `co:ti`
- `value` (string, required) — The number itself, as reported by the source.
- `validated` (boolean, required) — True when the value passed the platform's format and check-digit validation. It vouches for the NUMBER being well-formed — not for the official status of the document behind it.
- `country` (string, optional, nullable) — Country that issued the number, as a two-letter ISO code.
- `valid_until` (date, optional) — Expiry date of the document, when the source reports it.

### CompanyContributionsSchema

The month-by-month contribution history of one employer account (or regime).

- `company_name` (string, optional) — Employer or regime name, as certified by the TGSS.
- `ccc` (string, optional) — Employer contribution account code (CCC) — the join key linking this history to the matching entries in `work_relations_history`. Absent for self-employment, which has no employer account.
- `regime` (string, optional) — Social Security regime of this account.
- `is_benefit_block` (boolean, optional, default: false) — True when this entry tracks a benefit (e.g. cessation-of-activity protection for the self-employed), not an actual employer. Its bases are NOT earned income — exclude them from any income computation.
- `months` (list of MonthlyBaseSchema, optional, default: []) — Monthly contribution bases of this account, most recent first.

### IncomeFloorSchema

A guaranteed minimum NET income derived from the contribution bases — a floor for risk assessment, never a salary estimate. The certified gross lower bound travels alongside in the `gross_*` fields.

- `status` (enum, required) — Whether a floor could be asserted: `computed` (floor available), `not_currently_active` (no ongoing employment — e.g. between contracts, a scheduled future hire or an ongoing unemployment benefit; the current floor is zero), `insufficient_data` (working, but not enough certified months yet to measure a floor), or `activity_unknown` (no employment evidence either way).
  - Allowed values: `computed`, `not_currently_active`, `activity_unknown`, `insufficient_data`
- `monthly_floor` (infonite__schemas__utils__CurrencyAmountSchema__1, optional) — Estimated minimum NET monthly income: the worst observed window month after worker Social Security contributions and IRPF withholding. A lower bound for risk assessment — NOT a salary estimate: every unknown in the conversion (contract type, age, family situation) is resolved toward more deductions, so real take-home pay can only be equal or higher. For self-employed workers it deliberately understates real income; combine with other signals.
- `annual_floor` (infonite__schemas__utils__CurrencyAmountSchema__1, optional) — The net monthly floor, annualized.
- `gross_monthly_floor` (infonite__schemas__utils__CurrencyAmountSchema__1, optional) — Guaranteed minimum GROSS monthly income, certified by the contribution bases. The net floor is minimized over months separately, so it can come from a different (net-worse) month than this gross minimum.
- `gross_annual_floor` (infonite__schemas__utils__CurrencyAmountSchema__1, optional) — The gross monthly floor, annualized (x12).
- `estimated_deduction_rate` (string, optional, default: nan) — Decimal number with 4 digits precision
- `observed_months` (integer, optional, default: 0) — Number of months the floor was measured over. A month only partly worked (a start after the 1st, an end before the month's last day) is left out once at least two full months exist, so its prorated pay never passes for a monthly income. Fewer than 3 means the floor rests on little evidence — typically a recent hire.
- `companies` (list of CompanyIncomeFloorSchema, optional, default: []) — Only the companies contributing to the computed floor (ongoing, recent activity). Past employments are never listed here — their history is in `contribution_base_by_company` — so nothing in this list can be misread as a salary the person no longer earns.
- `method_version` (string, optional) — Version of the floor derivation method. Bumped whenever the algorithm changes meaning — compare floors only within the same version.

### FileAttachmentSchema

A document attached to a result — an official report, a receipt, an invoice... The entry describes the file; its bytes are downloaded with `id`, through the attachments endpoint of the API that returned the result.

- `sub_family` (enum, required) — What kind of document this is (e.g. `attachment:es-tgss-life-report`).
  - Allowed values: `attachment:attachment`, `attachment:supplier_invoice`, `attachment:client_invoice`, `attachment:es-tgss-life-report`, `attachment:es-tgss-contribution-base-report`, `attachment:es-aeat-model-100`, `attachment:es-cirbe-report`, `attachment:sepa-direct-debit-bill`, `attachment:person-certified-photo`
- `id` (string, required) — Attachment identifier — what the attachments endpoint of the API that returned the result takes to download the file.
- `content_name` (string, required) — File name of the document.
- `content_type` (string, required) — MIME type of the content.
- `metadata` (map from string to any, required) — Extra facts about the document, as simple key-value pairs (e.g. its official verification code, its issue date).
- `product` ("attachment", optional, default: attachment) — The product type identifier. Always `attachment`.
- `content_hash` (string, optional) — Fingerprint of the content, to verify its integrity.

### ValidationError

- `loc` (list of ValidationErrorLocItems, required)
- `msg` (string, required)
- `type` (string, required)
- `input` (any, optional)
- `ctx` (ValidationErrorCtx, optional)

### infonite__schemas__utils__CurrencyAmountSchema__1

A monetary amount together with its currency.

- `currency` (InfoniteSchemasUtilsCurrencyAmountSchema1Currency, required) — Three-letter ISO currency code — or `***` when the source did not disclose the currency.
- `amount` (string, required) — Decimal number with 2 digits precision

### CompanyIncomeFloorSchema

One company's share of the income floor: the minimum net income it contributes.

- `company_name` (string, required) — Employer or regime this floor comes from.
- `monthly_floor` (infonite__schemas__utils__CurrencyAmountSchema__1, required) — Estimated minimum NET monthly income from this company: its worst observed window month's net share, after worker Social Security contributions and IRPF withholding at that month's real income mix. Every unknown (contract type, age, family situation) is resolved toward more deductions, so real take-home pay can only be equal or higher.
- `annual_floor` (infonite__schemas__utils__CurrencyAmountSchema__1, required) — Estimated minimum NET annual income from this company.
- `basis` (enum, required) — How this floor was derived (e.g. `window_minimum`: the minimum base over the trailing window of fully certified months).
  - Allowed values: `window_minimum`
- `ccc` (string, optional) — Employer contribution account code (CCC) of this company.
- `work_type` (enum, optional) — Work type behind this income.
  - Allowed values: `unknown`, `employee`, `self_employed`, `public_employee`, `vacations`, `unemployment_benefits`, `other`
- `gross_monthly_floor` (infonite__schemas__utils__CurrencyAmountSchema__1, optional) — The certified GROSS monthly floor this company's net figure derives from — the minimum contribution base over the observation window.
- `gross_annual_floor` (infonite__schemas__utils__CurrencyAmountSchema__1, optional) — The certified GROSS annual floor from this company (the gross monthly floor x12).
- `observed_months` (integer, optional, default: 0) — Number of certified months the floor is based on — the more months, the steadier the floor.

### ValidationErrorLocItems

- string
- integer

### ValidationErrorCtx

### InfoniteSchemasUtilsCurrencyAmountSchema1Currency

Three-letter ISO currency code — or `***` when the source did not disclose the currency.

- string
- "***"

## Examples

### A full working life

**Response**

```json
{
  "product": "social_security",
  "sub_family": "social_security:spain_labor_check",
  "fetch_date": "2026-09-12T01:26:45+00:00",
  "work_relations_history": [
    {
      "activity_start": "2014-09-30",
      "name": "SEGUNDA EMPRESA SL",
      "work_type": "employee",
      "contract_type": "permanent",
      "work_schedule": "full_time",
      "regime": "GENERAL",
      "ccc": "28000000001",
      "assimilated": false,
      "contribution_group": "INGENIEROS LICENCIADOS",
      "social_security_days": 4376,
      "merged_segments": 1,
      "professional_category": "engineers_graduates"
    },
    {
      "activity_start": "2011-02-28",
      "name": "PRIEMRA EMPRESA SL",
      "work_type": "employee",
      "contract_type": "permanent",
      "work_schedule": "full_time",
      "activity_end": "2014-09-29",
      "regime": "GENERAL",
      "ccc": "28000000002",
      "assimilated": false,
      "contribution_group": "INGENIEROS LICENCIADOS",
      "social_security_days": 1310,
      "merged_segments": 1,
      "professional_category": "engineers_graduates"
    },
    {
      "activity_start": "2010-06-30",
      "name": "PRIEMRA EMPRESA SL",
      "work_type": "employee",
      "contract_type": "permanent",
      "work_schedule": "full_time",
      "activity_end": "2011-02-27",
      "regime": "GENERAL",
      "ccc": "28000000002",
      "assimilated": false,
      "contribution_group": "AUXILIARES ADMINISTRATIVOS",
      "social_security_days": 243,
      "merged_segments": 1,
      "professional_category": "administrative_assistants"
    },
    {
      "activity_start": "2010-04-30",
      "name": "PRIEMRA EMPRESA SL",
      "work_type": "employee",
      "contract_type": "training",
      "work_schedule": "full_time",
      "activity_end": "2010-06-29",
      "regime": "GENERAL",
      "ccc": "28000000002",
      "assimilated": false,
      "contribution_group": "AUXILIARES ADMINISTRATIVOS",
      "social_security_days": 61,
      "merged_segments": 1,
      "professional_category": "administrative_assistants"
    },
    {
      "activity_start": "2009-10-31",
      "name": "PRACTICANTES SL",
      "work_type": "employee",
      "contract_type": "professional_practices",
      "work_schedule": "part_time",
      "activity_end": "2010-04-29",
      "regime": "GENERAL",
      "ccc": "28000000003",
      "assimilated": false,
      "contribution_group": "INGENIEROS LICENCIADOS",
      "social_security_days": 181,
      "merged_segments": 1,
      "professional_category": "engineers_graduates"
    }
  ],
  "contribution_base_history": [],
  "holder_name": "LISANDRO TAPIA BERENGUER",
  "identifier": {
    "type": "es:dni",
    "value": "44444444A",
    "validated": true,
    "country": "ES"
  },
  "currently_active": true,
  "current_work_types": [
    "employee"
  ],
  "social_security_days": 6171,
  "contribution_base_by_company": [
    {
      "company_name": "SEGUNDA EMPRESA SL",
      "ccc": "28000000001",
      "is_benefit_block": false,
      "months": [
        {
          "date": "2026-08-31",
          "year": 2026,
          "month": 8,
          "status": "pending_update",
          "base": {
            "currency": "EUR",
            "amount": "NaN"
          },
          "provisional": false
        },
        {
          "date": "2026-07-31",
          "year": 2026,
          "month": 7,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2248.00"
          },
          "provisional": false
        },
        {
          "date": "2026-06-30",
          "year": 2026,
          "month": 6,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2170.00"
          },
          "provisional": false
        },
        {
          "date": "2026-05-31",
          "year": 2026,
          "month": 5,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2209.00"
          },
          "provisional": false
        },
        {
          "date": "2026-04-30",
          "year": 2026,
          "month": 4,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2215.00"
          },
          "provisional": false
        },
        {
          "date": "2026-03-31",
          "year": 2026,
          "month": 3,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2219.00"
          },
          "provisional": false
        },
        {
          "date": "2026-02-28",
          "year": 2026,
          "month": 2,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2218.00"
          },
          "provisional": false
        },
        {
          "date": "2026-01-31",
          "year": 2026,
          "month": 1,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2201.00"
          },
          "provisional": false
        },
        {
          "date": "2025-12-31",
          "year": 2025,
          "month": 12,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2169.00"
          },
          "provisional": false
        },
        {
          "date": "2025-11-30",
          "year": 2025,
          "month": 11,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2158.00"
          },
          "provisional": false
        },
        {
          "date": "2025-10-31",
          "year": 2025,
          "month": 10,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2210.00"
          },
          "provisional": false
        },
        {
          "date": "2025-09-30",
          "year": 2025,
          "month": 9,
          "status": "registered",
          "base": {
            "currency": "EUR",
            "amount": "2192.00"
          },
          "provisional": false
        }
      ]
    }
  ],
  "income_floor": {
    "status": "computed",
    "monthly_floor": {
      "currency": "EUR",
      "amount": "1703.16"
    },
    "annual_floor": {
      "currency": "EUR",
      "amount": "20437.93"
    },
    "gross_monthly_floor": {
      "currency": "EUR",
      "amount": "2158.00"
    },
    "gross_annual_floor": {
      "currency": "EUR",
      "amount": "25896.00"
    },
    "estimated_deduction_rate": "0.2108",
    "observed_months": 11,
    "companies": [
      {
        "company_name": "SEGUNDA EMPRESA SL",
        "monthly_floor": {
          "currency": "EUR",
          "amount": "1703.16"
        },
        "annual_floor": {
          "currency": "EUR",
          "amount": "20437.93"
        },
        "basis": "window_minimum",
        "ccc": "28000000001",
        "work_type": "employee",
        "gross_monthly_floor": {
          "currency": "EUR",
          "amount": "2158.00"
        },
        "gross_annual_floor": {
          "currency": "EUR",
          "amount": "25896.00"
        },
        "observed_months": 10
      }
    ],
    "method_version": "floor-v3"
  },
  "attachments": [
    {
      "sub_family": "attachment:es-tgss-life-report",
      "id": "6aa74d55cacbac2754cb62e4",
      "content_name": "work_life_report.pdf",
      "content_type": "application/pdf",
      "metadata": {
        "cea-id": "DEMO3E03CAB9",
        "csv-code": "DEMO0-3E03C-AB917-846EF-19093-A5A2A",
        "csv-url": "https://sandbox.infonite.tech/demo/verify",
        "document-date": "2026-09-12",
        "document-type": "attachment:es-tgss-life-report"
      },
      "product": "attachment",
      "content_hash": "d3df1044751484e3296222487667f33050fda5e1e5d80e159773bbcd2a9540212d5f64afa48e9318b2b93dca1077ad06fd79dfb64c2e58e56c6975528c024a47"
    }
  ]
}
```

**SDK Code**

```python A full working life
import requests

url = "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check"

headers = {"X-APP-SECRET": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript A full working life
const url = 'https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check';
const options = {method: 'GET', headers: {'X-APP-SECRET': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go A full working life
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-APP-SECRET", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby A full working life
require 'uri'
require 'net/http'

url = URI("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["X-APP-SECRET"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java A full working life
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check")
  .header("X-APP-SECRET", "<apiKey>")
  .asString();
```

```php A full working life
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check', [
  'headers' => [
    'X-APP-SECRET' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp A full working life
using RestSharp;

var client = new RestClient("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check");
var request = new RestRequest(Method.GET);
request.AddHeader("X-APP-SECRET", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift A full working life
import Foundation

let headers = ["X-APP-SECRET": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### This family has not finished

**Response**

```json
{
  "detail": "feature_not_ready"
}
```

**SDK Code**

```python This family has not finished
import requests

url = "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check"

headers = {"X-APP-SECRET": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript This family has not finished
const url = 'https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check';
const options = {method: 'GET', headers: {'X-APP-SECRET': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go This family has not finished
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-APP-SECRET", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby This family has not finished
require 'uri'
require 'net/http'

url = URI("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["X-APP-SECRET"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java This family has not finished
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check")
  .header("X-APP-SECRET", "<apiKey>")
  .asString();
```

```php This family has not finished
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check', [
  'headers' => [
    'X-APP-SECRET' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp This family has not finished
using RestSharp;

var client = new RestClient("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check");
var request = new RestRequest(Method.GET);
request.AddHeader("X-APP-SECRET", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift This family has not finished
import Foundation

let headers = ["X-APP-SECRET": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/public/v1/labor-check")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```