# Project Management via the V6 REST-API

### Introduction

The V6 REST-API provides administrators with the ability to manage projects efficiently. Using the `/Projects` endpoint, projects can be created, retrieved, updated, and deleted. Additionally, projects can be filtered using various parameters.

### Endpoint

- **For Admins:** `https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects`

---

### Parameters &amp; Filters

#### Required Parameters (for POST and PUT)

<table data-path-to-node="10" id="bkmrk-parameter-type-descr"><thead><tr><td>**Parameter**</td><td>**Type**</td><td>**Description**</td></tr></thead><tbody><tr><td>`<span data-path-to-node="10,1,0,0"><strong data-index-in-node="0" data-path-to-node="10,1,0,0">title</strong></span>`</td><td><span data-path-to-node="10,1,1,0">String</span></td><td><span data-path-to-node="10,1,2,0">Title of the project (Mandatory)</span></td></tr><tr><td>`<span data-path-to-node="10,2,0,0"><strong data-index-in-node="0" data-path-to-node="10,2,0,0">status</strong></span>`</td><td><span data-path-to-node="10,2,1,0">Integer</span></td><td><span data-path-to-node="10,2,2,0">Status of the project (Mandatory)</span></td></tr><tr><td>`<span data-path-to-node="10,3,0,0"><strong data-index-in-node="0" data-path-to-node="10,3,0,0">url</strong></span>`</td><td><span data-path-to-node="10,3,1,0">String</span></td><td><span data-path-to-node="10,3,2,0">URL of the project (Mandatory)</span></td></tr></tbody></table>

#### Filter Options (for GET)

Filtering can be applied to any column in the `publisher.projects` table, such as:

- `id`
- `status`
- `publisher_id`
- `projecttype`
- `title`
- `url`
- `channel_id`
- `hidden`

**Example of a GET request with filters:**

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-77 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk-bash" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="code-block-decoration header-formatted gds-title-s ng-tns-c1630465722-77 ng-star-inserted"><span class="ng-tns-c1630465722-77">Bash</span><div _ngcontent-ng-c1630465722="" class="buttons ng-tns-c1630465722-77 ng-star-inserted"><button aria-label="Code herunterladen" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger download-button ng-tns-c1630465722-77 mat-unthemed ng-star-inserted"></button><button aria-label="Code kopieren" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c1630465722-77 mat-unthemed ng-star-inserted"></button></div></div><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-77"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-77"></div></div></div>```
curl -X GET -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" "https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects?status=1&publisher_id=10"

```

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-77 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk--2" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-77"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-77"></div></div></div>---

### CRUD Operations

#### GET: Retrieve Projects

Retrieve a list of projects or a specific project by its `id`.

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-78 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk-bash-1" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="code-block-decoration header-formatted gds-title-s ng-tns-c1630465722-78 ng-star-inserted"><span class="ng-tns-c1630465722-78">Bash</span><div _ngcontent-ng-c1630465722="" class="buttons ng-tns-c1630465722-78 ng-star-inserted"><button aria-label="Code herunterladen" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger download-button ng-tns-c1630465722-78 mat-unthemed ng-star-inserted"></button><button aria-label="Code kopieren" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c1630465722-78 mat-unthemed ng-star-inserted"></button></div></div><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-78"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-78"></div></div></div>```
curl -X GET -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" "https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects?id=5"

```

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-78 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk--6" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-78"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-78"></div></div></div>#### POST: Create a New Project

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-79 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk-bash-2" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="code-block-decoration header-formatted gds-title-s ng-tns-c1630465722-79 ng-star-inserted"><span class="ng-tns-c1630465722-79">Bash</span><div _ngcontent-ng-c1630465722="" class="buttons ng-tns-c1630465722-79 ng-star-inserted"><button aria-label="Code herunterladen" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger download-button ng-tns-c1630465722-79 mat-unthemed ng-star-inserted"></button><button aria-label="Code kopieren" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c1630465722-79 mat-unthemed ng-star-inserted"></button></div></div><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-79"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-79"></div></div></div>```
curl -X POST -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" -d '{
  "title": "New Project",
  "status": 1,
  "url": "https://example.com"
}' "https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects"

```

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-79 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk--9" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-79"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-79"></div></div></div>#### PUT: Update an Existing Project

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-80 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk-bash-3" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="code-block-decoration header-formatted gds-title-s ng-tns-c1630465722-80 ng-star-inserted"><span class="ng-tns-c1630465722-80">Bash</span><div _ngcontent-ng-c1630465722="" class="buttons ng-tns-c1630465722-80 ng-star-inserted"><button aria-label="Code herunterladen" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger download-button ng-tns-c1630465722-80 mat-unthemed ng-star-inserted"></button><button aria-label="Code kopieren" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c1630465722-80 mat-unthemed ng-star-inserted"></button></div></div><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-80"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-80"></div></div></div>```
curl -X PUT -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" -d '{
  "id": 5,
  "title": "Modified Project",
  "status": 2,
  "url": "https://updated-example.com"
}' "https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects"

```

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-80 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk--12" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-80"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-80"></div></div></div>#### DELETE: Delete a Project

Delete a project by its `id`.

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-81 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk-bash-4" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="code-block-decoration header-formatted gds-title-s ng-tns-c1630465722-81 ng-star-inserted"><span class="ng-tns-c1630465722-81">Bash</span><div _ngcontent-ng-c1630465722="" class="buttons ng-tns-c1630465722-81 ng-star-inserted"><button aria-label="Code herunterladen" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger download-button ng-tns-c1630465722-81 mat-unthemed ng-star-inserted"></button><button aria-label="Code kopieren" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c1630465722-81 mat-unthemed ng-star-inserted"></button></div></div><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-81"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-81"></div></div></div>```
curl -X DELETE -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" "https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects?id=5"

```

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-81 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk--15" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-81"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-81"></div></div></div>---

### Responses

#### Successful Response

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-82 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk-json" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="code-block-decoration header-formatted gds-title-s ng-tns-c1630465722-82 ng-star-inserted"><span class="ng-tns-c1630465722-82">JSON</span><div _ngcontent-ng-c1630465722="" class="buttons ng-tns-c1630465722-82 ng-star-inserted"><button aria-label="Code herunterladen" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger download-button ng-tns-c1630465722-82 mat-unthemed ng-star-inserted"></button><button aria-label="Code kopieren" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c1630465722-82 mat-unthemed ng-star-inserted"></button></div></div><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-82"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-82"></div></div></div>```
{
  "id": 5,
  "status": 1,
  "publisher_id": 10,
  "projecttype": "page",
  "title": "Project Example",
  "description": "Description of the project",
  "url": "https://example.com",
  "channel_id": 2,
  "project_identifier_string": "abc123",
  "reach": "1000",
  "statistic_type": "internal",
  "external_sources_entity_id": "-1",
  "trackingtemplate": "template",
  "kpi_whitelist": "kpi1,kpi2",
  "hidden": false,
  "login_type": "pub",
  "exclude_from_salary": 0,
  "default_project": false,
  "insert_timestamp": "2025-01-27T12:00:00"
}

```

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-82 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk--19" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-82"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-82"></div></div></div>#### Bad Request

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-83 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk-json-1" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="code-block-decoration header-formatted gds-title-s ng-tns-c1630465722-83 ng-star-inserted"><span class="ng-tns-c1630465722-83">JSON</span><div _ngcontent-ng-c1630465722="" class="buttons ng-tns-c1630465722-83 ng-star-inserted"><button aria-label="Code herunterladen" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger download-button ng-tns-c1630465722-83 mat-unthemed ng-star-inserted"></button><button aria-label="Code kopieren" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c1630465722-83 mat-unthemed ng-star-inserted"></button></div></div><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-83"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-83"></div></div></div>```
{
  "error": "Missing required field: title"
}

```

<div _ngcontent-ng-c1630465722="" class="code-block ng-tns-c1630465722-83 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk--22" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_0cd486157c1bdb22","c_5229d7aaa2a28b5d",null,"rc_46956f5b43d8370f",null,null,"en",null,1,null,null,1,0]]"><div _ngcontent-ng-c1630465722="" class="formatted-code-block-internal-container ng-tns-c1630465722-83"><div _ngcontent-ng-c1630465722="" class="animated-opacity ng-tns-c1630465722-83"></div></div></div>---

### 📘 Error Handling Notes

- If mandatory fields (`title`, `status`, `url`) are missing, an appropriate error message will be returned.
- An invalid or non-existent `id` during a **GET**, **PUT**, or **DELETE** request will result in an empty response or an error message.