title: Content HTTP API
Ponzu provides a read & write HTTP API to access and interact with content on a
system. By default, write access (including create, update and delete) and search
are disabled. See the section on Ponzu's [API Interfaces](/Interfaces/API) to learn
more about how to enable these endpoints.
---
## Endpoints
### Get Content by Type
GET `/api/content?type=&id=`
##### Sample Response
```javascript
{
"data": [
{
"uuid": "024a5797-e064-4ee0-abe3-415cb6d3ed18",
"id": 6,
"slug": "item-id-024a5797-e064-4ee0-abe3-415cb6d3ed18" // customizable
"timestamp": 1493926453826, // milliseconds since Unix epoch
"updated": 1493926453826,
// your content data...,
}
]
}
```
---
### Get Contents by Type
GET `/api/contents?type=`
- optional params:
1. `order` (string: ASC / DESC, default: DESC)
2. `count` (int: -1 - N, default: 10, -1 returns all)
3. `offset` (int: 0 - N, default: 0)
##### Sample Response
```javascript
{
"data": [
{
"uuid": "024a5797-e064-4ee0-abe3-415cb6d3ed18",
"id": 6,
"slug": "item-id-024a5797-e064-4ee0-abe3-415cb6d3ed18", // customizable
"timestamp": 1493926453826, // milliseconds since Unix epoch
"updated": 1493926453826,
// your content data...,
},
{
"uuid": "5a9177c7-634d-4fb1-88a6-ef6c45de797c",
"id": 7,
"slug": "item-id-5a9177c7-634d-4fb1-88a6-ef6c45de797c", // customizable
"timestamp": 1493926453826, // milliseconds since Unix epoch
"updated": 1493926453826,
// your content data...,
},
// more objects...
]
}
```
---
### Get Content by Slug
GET `/api/content?slug=`
##### Sample Response
```javascript
{
"data": [
{
"uuid": "024a5797-e064-4ee0-abe3-415cb6d3ed18",
"id": 6,
"slug": "item-id-024a5797-e064-4ee0-abe3-415cb6d3ed18", // customizable
"timestamp": 1493926453826, // milliseconds since Unix epoch
"updated": 1493926453826,
// your content data...,
}
]
}
```
---
### New Content
POST `/api/content/create?type=`
- Type must implement [`api.Createable`](/Interfaces/API#apicreateable) interface
!!! note "Request Data Encoding"
Request must be `multipart/form-data` encoded. If not, a `400 Bad Request`
Response will be returned.
##### Sample Response
```javascript
{
"data": [
{
"id": 6, // will be omitted if status is pending
"type": "Review",
"status": "public"
}
]
}
```
---
### Update Content
POST `/api/content/update?type=&id=`
- Type must implement [`api.Updateable`](/Interfaces/API#apiupdateable) interface
!!! note "Request Data Encoding"
Request must be `multipart/form-data` encoded. If not, a `400 Bad Request`
Response will be returned.
##### Sample Response
```javascript
{
"data": [
{
"id": 6,
"type": "Review",
"status": "public"
}
]
}
```
---
### Delete Content
POST `/api/content/delete?type=&id=`
- Type must implement [`api.Deleteable`](/Interfaces/API#apideleteable) interface
!!! note "Request Data Encoding"
Request must be `multipart/form-data` encoded. If not, a `400 Bad Request`
Response will be returned.
##### Sample Response
```javascript
{
"data": [
{
"id": 6,
"type": "Review",
"status": "deleted"
}
]
}
```
---
### Additional Information
All API endpoints are CORS-enabled (can be disabled in configuration at run-time) and API requests are recorded by your system to generate graphs of total requests and unique client requests within the Admin dashboard.
#### Response Headers
The following headers are common across all Ponzu API responses. Some of them can be modified
in the [system configuration](/System-Configuration/Settings) while your system is running.
##### HTTP/1.1
```
HTTP/1.1 200 OK
Access-Control-Allow-Headers: Accept, Authorization, Content-Type
Access-Control-Allow-Origin: *
Cache-Control: max-age=2592000, public
Content-Encoding: gzip
Content-Type: application/json
Etag: MTQ5Mzk0NTYzNQ==
Vary: Accept-Encoding
Date: Fri, 05 May 2017 01:15:49 GMT
Content-Length: 199
```
##### HTTP/2
```
access-control-allow-headers: Accept, Authorization, Content-Type
access-control-allow-origin: *
cache-control: max-age=2592000, public
content-encoding: gzip
content-length: 199
content-type: application/json
date: Fri, 05 May 2017 01:38:11 GMT
etag: MTQ5Mzk0ODI4MA==
status: 200
vary: Accept-Encoding
```
#### Helpful links
[Typewriter](https://github.com/natdm/typewriter)
Generate & sync front-end data structures from Ponzu content types. ([Ponzu example](https://github.com/natdm/typewriter/blob/master/EXAMPLES.md#example-use-in-a-package-like-ponzu))