> For the complete documentation index, see [llms.txt](https://docs.elentra.org/api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.elentra.org/api/elentra-api-standards/routing-and-parameters/example-routing-patterns-with-http-method/courses-course-contacts-contact.md).

# /courses/{course}/contacts/{contact}

Collection/Resource/Sub-Collection/Sub-Resource

{% tabs %}
{% tab title="GET" %}
Returns the sub-resource.
{% endtab %}

{% tab title="POST" %}
{% hint style="danger" %}
Not allowed to use `POST`. In this example, a `404` would be returned.
{% endhint %}
{% endtab %}

{% tab title="PUT" %}

* Update or Create a course contact.
* If `{contact}` is 1, then the expected behaviour is to do one of the following:
  * Create if no record exists with ID 1.
  * Overwrite if a record exists with ID 1.
* **The request body should not contain an ID for the entity.**
* This should return the ID, if applicable, in the response.
  {% endtab %}

{% tab title="PATCH" %}

* Updates a subset of the resource's attributes.
  * Update specific attributes or relationships.
  * Can pass partial data set to update resources.

{% hint style="info" %}
For example, updating X amount of entities where only a select few attributes need to be updated.
{% endhint %}

{% hint style="warning" %}
**Use with care**. `PATCH`'s loose requirements will introduce a higher risk, such as having poor data constraints or difficult-to-read URIs.&#x20;
{% endhint %}

{% hint style="success" %}
Consider using `PUT` **instead** of `PATCH`.
{% endhint %}
{% endtab %}

{% tab title="DELETE" %}

* Deletes the resource.
  * This can be a soft/hard delete or deactivate/archive.
    {% endtab %}
    {% endtabs %}
