---
title: "Reads all Materialized templates"
method: GET
path: "/api/2026-07-01/resources/contracts/materialized_templates"
tags: ["Contracts > MaterializedTemplate"]
---

# Reads all Materialized templates

`GET /api/2026-07-01/resources/contracts/materialized_templates`

Reads all Materialized templates

## Query parameters

- `company_id` string, required — The identifier of the company whose templates you want to retrieve. All results are scoped to this company.
- `legal_entity_ids[]` string[] — Optional list of legal entity identifiers to filter results. When provided alongside template_type: legal_entity, returns only the materialized templates for those legal entities. Ignored for company and country template types.
- `countries[]` string[] — Optional list of ISO 3166-1 alpha-2 country codes to filter results. When provided alongside template_type: country, returns only templates for those countries. When used with template_type: legal_entity, narrows results to legal entities operating in those countries.
- `template_type` 'company' | 'country' | 'legal_entity' | 'contract_type', required — The template level to retrieve. Use company to get the organization-wide base field definitions. Use country to get country-specific overrides merged with company defaults. Use legal_entity to get the final effective template for a specific legal entity, which is the most common use case when building contract creation or editing flows.
- `field_ids[]` string[] — Optional list of field identifiers to filter the template fields returned. When provided, each materialized template will only include fields whose field_id matches one of the values in this list. Use this to retrieve a specific subset of fields (e.g. ["contract_type"]) without fetching the full template structure.
- `include_archived` boolean, required — When true, archived options are included in the response alongside active ones. Defaults to false, which returns only active options. Set to true when you need to display contracts that reference options that have since been archived.

## Response `200`

OK

- object
  - `data` ContractsMaterializedTemplate[]
    - `id` string, required — Synthetic identifier for this materialized template, composed as {company_id}-{template_type}-{legal_entity_id}-{country_code}. Used as a stable cursor reference for pagination.
    - `company_id` string, required — Identifier of the company that owns this template. All templates are scoped to a company; use this to correlate templates across different levels (company, country, legal entity) for the same organization.
    - `legal_entity_id` string — Identifier of the legal entity this template has been materialized for. Present only when template_type is legal_entity. Legal entity templates represent the final merged view of fields applicable to employees hired under that legal entity, combining company-level defaults with country-specific and legal-entity-specific overrides.
    - `country_code` string — ISO 3166-1 alpha-2 country code identifying the country this template applies to. Present for country and legal_entity template types. Determines which country-specific fields and options are included (e.g. fields required by Spanish or French labor law).
    - `template_type` 'company' | 'country' | 'legal_entity' | 'contract_type', required — The level at which this template has been materialized. Templates follow a three-tier inheritance hierarchy: company (base defaults for the whole organization), country (overrides per country labor law), and legal_entity (final merged view per legal entity, combining all three levels). Use legal_entity when you need the definitive set of fields for a specific hiring context.
    - `template` unknown[], required — The ordered list of contract fields defined in this template after merging all inheritance levels and removing hidden fields. Each entry is a FragmentField describing a single configurable attribute of a contract (e.g. contract type, job title, salary). The list reflects the final effective set of fields an employee contract under this template will contain.
      - unknown
  - `meta` PagedIndexMeta
    - `start_cursor` string
    - `end_cursor` string
    - `has_previous_page` boolean, required
    - `has_next_page` boolean, required
    - `limit` integer, required
    - `total` integer, required

---

[API](https://skmtc.dev/factorialhr/apis/factorial-api.md) · [All operations](https://skmtc.dev/factorialhr/apis/factorial-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/factorialhr/factorial-api/revisions/1a6bffb20f7d/schema)
