# Published Page Element Catalog

```
GET 
/v1/page_layout_elements
```

The whole published-page vocabulary, in one call. Read this **before** writing anything: the element types, the props each accepts (with the flags that say which are HTML, which are URLs and which reference an asset), the shared enum value sets, which slots each built-in template renders, the batch operation argument map, and the hard payload caps.

Global and workspace-independent — the catalog is the same everywhere, so this route takes no organization slug. Requires only the `read` scope, and is not gated by the page-layout write flag.

Two things worth knowing about what you get back:

* a prop flagged `dead` is one the frontend stores but no longer reads. It is published rather than hidden, because the layout read returns stored documents verbatim and you will genuinely encounter it — silence would read as "unknown, probably meaningful";
* `templates[key].slots` lists what that template mounts **itself**. A page can render a slot its template does not list (the shared page frame mounts some), so treat the list as a floor, not an inventory.

## Responses[​](#responses "Direct link to Responses")

* 200

the element catalog
