---
title: "Raw Content"
description: "Access to contents raw data in appliction"
canonical_url: "https://content.nuxt.com/docs/advanced/raw-content"
---
# Raw Content

> Access to contents raw data in appliction

There were lots of requests in Content version 2 about accessing contents raw data in production. In Content version 3 it is possible to ship contents raw data to production.

In order to ship raw contents to production you need to define `rawbody` field in your collection's schema. That's it.

Nuxt Content will detect this magical field in your schema and fill it with the raw content.

```ts [content.config.ts]
import { defineCollection, defineContentConfig } from '@nuxt/content'
import { z } from 'zod'

export default defineContentConfig({
  collections: {
    docs: defineCollection({
      source: '**',
      type: 'page',
      schema: z.object({
        rawbody: z.string()
      })
    })
  }
})
```

And you can use `queryCollection()` to fetch the raw content.

```vue [pages/index.vue]
<script setup lang="ts">
const route = useRoute()
const { data } = useAsyncData('page-' + route.path, () => queryCollection('docs').path(route.path).first())
</script>

<template>
  <pre>{{ data.rawbody }}</pre>
</template>
```

In case you don't want to ship raw content of a specific file you can add `rawbody: ''` to frontmatter of that file. The auto filled value of `rawbody` is acting like default value and when you define `rawbody` in the frontmatter it will overwritten.

```md [content.md]
---
title: My page
rawbody: ''
---
```

<callout>

It is important to fill frontmatter fields with a same type of data that is defined in collection schema. In this case `rawbody` is a string, and you should consider passing empty string. Do not use `boolean` or other type of values.

</callout>


## Sitemap

See the full [sitemap](https://content.nuxt.com/sitemap.md) for all pages.
