---
title: "Overview"
description: "Unhead API reference for useHead(), useSeoMeta(), useScript() composables and DOM/SSR rendering hooks. Full TypeScript support."
canonical_url: "https://unhead.unjs.io/docs/head/api/get-started/overview"
last_updated: "2026-07-09T06:57:33.956Z"
---

**Quick Reference:** The main composables are `useHead()` for general head management, `useSeoMeta()` for SEO tags, and `useScript()` for script loading. All return an entry with `patch()` and `dispose()` methods.

## What composables are available?

<div className="grid,grid-cols-2,gap-5">
<u-page-card :spotlight="true" description="The main composable for managing head tags." spotlight-color="primary" title="useHead()" to="/docs/head/api/composables/use-head">



</u-page-card>

<u-page-card :spotlight="true" description="XSS-safe head management for user-generated content." spotlight-color="primary" title="useHeadSafe()" to="/docs/head/api/composables/use-head-safe">



</u-page-card>

<u-page-card :spotlight="true" description="A composable for managing SEO-related tags." spotlight-color="primary" title="useSeoMeta()" to="/docs/head/api/composables/use-seo-meta">



</u-page-card>

<u-page-card :spotlight="true" description="A composable for loading and managing external scripts." spotlight-color="primary" title="useScript()" to="/docs/head/api/composables/use-script">



</u-page-card>
</div>

## How do I create plugins?

See the [Plugins API](/docs/head/api/plugins) for creating custom plugins with `defineHeadPlugin`.

## What hooks can I use?

### Entry Hooks

- [entries:updated](/docs/head/api/hooks/entries-updated) - Called when entries have been updated
- [entries:resolve](/docs/head/api/hooks/entries-resolve) - Called when entries need to be resolved to tags
- [entries:normalize](/docs/head/api/hooks/entries-normalize) - Called when an entry is being normalized to tags

### How do I hook into tag resolution?

- [tag:normalise](/docs/head/api/hooks/tag-normalise) - Called when a tag is being normalized
- [tags:beforeResolve](/docs/head/api/hooks/tags-before-resolve) - Called before tags are resolved for rendering
- [tags:resolve](/docs/head/api/hooks/tags-resolve) - Called when tags are being resolved for rendering
- [tags:afterResolve](/docs/head/api/hooks/tags-after-resolve) - Called after tags have been resolved

### How do I hook into DOM rendering?

- [dom:beforeRender](/docs/head/api/hooks/dom-before-render) - Called before rendering to the DOM (synchronous)

### How do I hook into server-side rendering?

- [ssr:beforeRender](/docs/head/api/hooks/ssr-before-render) - Called before server-side rendering
- [ssr:render](/docs/head/api/hooks/ssr-render) - Called during server-side rendering
- [ssr:rendered](/docs/head/api/hooks/ssr-rendered) - Called after server-side rendering

### How do I hook into script loading?

- [script:updated](/docs/head/api/hooks/script-updated) - Called when a script instance is updated
