How can I list Entry Types of a single Section? The following outputs all sections and their entry types, but I'm struggling to work out how I output only the entry types from the "blog" section.

{% for section in craft.app.sections.allSections() %}
  &lt;h2&gt;{{ section.name }}&lt;/h2&gt;

  &lt;ul&gt;
    {% for type in section.getEntryTypes() %}
      &lt;li&gt;{{ type.name }}&lt;/li&gt;
    {% endfor %}
  &lt;/ul&gt;
{% endfor %}


I thought this would work

{% for type in craft.entries.section('blog').getEntryTypes() %}
  &lt;p&gt;{{ type.name }}&lt;/li&gt;
{% endfor %}


But I've hit a wall because getEntryTypes() is an unknown method.
You're close – this should work:

{% set blogSection = craft.app.sections.getSectionByHandle('blog') %}
{% set blogSectionEntryTypes = blogSection.getEntryTypes() %}

{% for entryType in blogSectionEntryTypes %}
    &lt;p&gt;{{ entryType.name }}&lt;/p&gt;
{% endfor %}


The reason why craft.entries.section('blog').getEntryTypes() didn't work is that craft.entries will actually create an ElementQuery, which is used to query for elements (e.g. entries).

When you use craft.app.sections or craft.app.getSections() (it doesn't really matter which variant you use, although the latter is a micro-optimisation in terms of performance) you're interacting with the Sections service, which is what you need to use to work with sections and their entry types directly, rather than entries.