# Relations

## Create Annotation Relation

<mark style="color:green;">`POST`</mark> `https://api.annolab.ai/v1/relation/create`

Create a new relation between two annotations. If a relation of the type already exists between the two annotation ids, then the existing relation will be returned and a duplicate will not be created.

#### Headers

| Name          | Type   | Description                                                                                                                                                             |
| ------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Authorization | string | <p>Where you put your api key. Creating a project requires a key with "Write" permissions.<br><br><code>{"Authorization": "Api-key XXXXXXX-XXXXXXX-XXXXXXX"}</code></p> |

#### Request Body

| Name               | Type    | Description                                                                                                                                                  |
| ------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| annoTypeIdentifier | string  | Identifier for the annotation type  of the relation. Either the id or the unique name. Must be an annotation type with isRelation: true or request will fail |
| projectIdentifier  | string  | Identifier of the project containing the layer. Either the id or the unique name.                                                                            |
| successorId        | integer | id of the annotation that is the child of the relation                                                                                                       |
| predecessorId      | integer | id of the annotation that is the parent of the relation                                                                                                      |
| value              | string  | value of the annotation                                                                                                                                      |

{% tabs %}
{% tab title="200 Relation already exists" %}

```
{
  "id": 72,
  "successorId": 44,
  "predecessorId": 12,
  "typeName": "Coreference",
  "typeId": 112,
  "value": '',
 }
```

{% endtab %}

{% tab title="201 Relation was successfully created" %}

```
{
  "id": 72,
  "successorId": 44,
  "predecessorId": 12,
  "typeName": "Coreference",
  "typeId": 112,
  "value": '',
 }
```

{% endtab %}

{% tab title="400 Relation creation failed" %}

```
{
    "message": "Information about why creation failed"
}
```

{% endtab %}
{% endtabs %}

Examples of how to make a layer create request

{% tabs %}
{% tab title="Python" %}

```python
import requests

ANNO_LAB_API_KEY = 'XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX'

relation = {
  'relationTypeName': 'Coreference',
  'projectIdentifier': 'New NER Project',
  'successorId': 112,
  'predecessorId': 141,
}

headers = {
  'Authorization': 'Api-Key '+ANNO_LAB_API_KEY,
}

url = 'https://api.annolab.ai/v1/relation/create'

response = requests.post(url, headers=headers, json=relation)

print(response.json())
```

{% endtab %}
{% endtabs %}
