All methods require admin authorization.

The url endpoint of the system hooks can be configured in [the admin area under hooks](/admin/hooks).

## List system hooks

Get list of system hooks

```
GET /hooks
```

Parameters:

+ **none**

```json
[
  {
    "id":3,
    "url":"http://example.com/hook",
    "created_at":"2013-10-02T10:15:31Z"
  }
]
```

## Add new system hook hook

```
POST /hooks
```

Parameters:

+ `url` (required) - The hook URL


## Test system hook

```
GET /hooks/:id
```

Parameters:

+ `id` (required) - The ID of hook

```json
{
  "event_name":"project_create",
  "name":"Ruby",
  "path":"ruby",
  "project_id":1,
  "owner_name":"Someone",
  "owner_email":"example@gitlabhq.com"
}
```

## Delete system hook

Deletes a system hook. This is an idempotent API function and returns `200 Ok` even if the hook
is not available. If the hook is deleted it is also returned as JSON.

```
DELETE /hooks/:id
```

Parameters:

+ `id` (required) - The ID of hook