# Entities overview

Entities are the foundational building blocks for representing your software ecosystem. Each entity models a distinct software construct—like a service, library, or team—giving your organization a shared, structured way to describe what exists and how it fits together. A defined collection of entities forms a [catalog](/ingesting-data-into-cortex/catalogs.md): a single source of truth that everyone, from engineers to leadership, can rely on.

Entities are designed to be both flexible and interconnected. They're defined in YAML so they're portable and version-controlled, enriched through integrations that pull in live data from the tools you already use, and measured against standards through Scorecards to drive quality and consistency over time.

Every entity has a dedicated page that brings its data together in one place, making it easy to understand context, ownership, and health at a glance. See [Entity details](/ingesting-data-into-cortex/entities-overview/entities/details.md) for more information.

{% hint style="success" %}
Want to learn more? Check out the Cortex Academy course on [Catalogs, Entities, and Relationships](https://academy.cortex.io/courses/understanding-understanding-catalogs-entities-and-relationships).
{% endhint %}

## Catalog and entities overview video

The video below shows how Cortex catalogs your engineering assets to improve visibility, adoption, and productivity:

{% embed url="<https://www.youtube.com/watch?v=A5w6ebxGbeg>" %}

## Entity types

Choose from the default entity types or [define your own](#custom-entity-types).

### **Default entity types**

Cortex provides a set of built-in entity types that cover the most common building blocks of a software organization. These defaults give you a strong foundation out of the box, so you can start cataloging your ecosystem without needing to design a schema from scratch.

<table><thead><tr><th width="158.5">Entity type</th><th>Purpose</th><th>Typical use</th></tr></thead><tbody><tr><td><strong>Services</strong></td><td>Represent codebase-like modules</td><td>Microservices, libraries, components</td></tr><tr><td><strong>Domains</strong></td><td>Group entities into logical units</td><td>Product areas, business capabilities, system boundaries</td></tr><tr><td><strong>Teams</strong></td><td>Represent the 'people side' of your catalog</td><td>Ownership, membership, contact info</td></tr><tr><td><strong>Cloud resources</strong></td><td>Sync infrastructure into your catalog</td><td>AWS, Azure, and Google Cloud resources</td></tr></tbody></table>

**Services** are the core of your catalog and the default entity type. Use them to represent any codebase-like module, e.g. microservices, libraries, components, and similar building blocks. Services are typically where the majority of your catalog activity happens, since they connect to code, deployments, ownership, and quality standards. See [Add services](/ingesting-data-into-cortex/entities-overview/entities/adding-entities/add-services.md).

**Domains** let you group services, resources, and other domains into hierarchical, logical units. They're useful for modeling how your organization actually thinks about its software—by product area, business capability, or system boundary—and for rolling up insights across related entities. See [Add domains](/ingesting-data-into-cortex/entities-overview/entities/adding-entities/domains.md).

**Teams** represent the people side of your catalog. Use them to capture team membership, ownership relationships, and contact information, so it's always clear who's responsible for what. See [Add teams](/ingesting-data-into-cortex/entities-overview/entities/adding-entities/teams.md).

**Cloud resources** can be pulled in directly from your cloud providers and represented as their corresponding entity types, keeping your catalog in sync with what's actually running in your infrastructure:

* For **AWS**, choose which resource types to include in your [AWS integration settings](https://app.getcortexapp.com/admin/settings/aws?activeTab=settings).
* For **Azure**, choose which resource types to include in your [Azure Resources integration settings](https://app.getcortexapp.com/admin/settings/azureresources).
* For **Google Cloud**, see the list of [supported entity types](/ingesting-data-into-cortex/integrations/google.md#supported-google-entity-types).

### **Custom entity types**

While Cortex's built-in entity types cover most common needs, every organization has its own way of modeling its software ecosystem. Custom entity types let you extend your catalog to reflect the concepts that matter to your teams, whether that's APIs, data pipelines, ML models, or anything else you want to track.

You can create unlimited custom entity types through the Cortex UI or API. Once a type is defined, you can begin adding entities of that type using the UI, API, or GitOps, just like you would with built-in types.

See [Add custom entity types](/ingesting-data-into-cortex/entities-overview/entities/adding-entities/entity-types.md) for more information.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cortex.io/ingesting-data-into-cortex/entities-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
