> For the complete documentation index, see [llms.txt](https://docs.projetly.ai/home/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.projetly.ai/home/api-reference/interactions.md).

# Interactions

## List Interactions

> Get interactions for a specific module and reference

```json
{"openapi":"3.0.3","info":{"title":"Projetly API","version":"1.0.0"},"servers":[{"url":"https://api.app.projetly.io"}],"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token obtained from /api/login/. Pass as: Authorization: Bearer <token>"}},"schemas":{"InteractionsList":{"type":"object","description":"Serializer for listing interactions with pagination","properties":{"interaction_id":{"type":"string","maxLength":25},"content":{"type":"string"},"interaction_type":{"type":"string","default":"interaction"},"is_pinned":{"type":"boolean"},"is_resolved":{"type":"boolean"},"is_private":{"type":"boolean"},"visible_to_users":{"type":"array","items":{"type":"string"}},"reply_count":{"type":"integer"},"mentions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"reactions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"formatted_creation_time":{"type":"string","readOnly":true},"user_details":{"type":"string","readOnly":true},"is_read":{"type":"string","readOnly":true},"attachment_files":{"type":"string","readOnly":true},"reply_interactions":{"type":"string","readOnly":true},"thread_level":{"type":"integer"},"parent_interaction_id":{"type":"string","nullable":true,"maxLength":25},"reactions_summary":{"type":"string","readOnly":true},"is_system_generated":{"type":"boolean"}},"required":["attachment_files","content","formatted_creation_time","interaction_id","is_read","reactions_summary","reply_interactions","user_details"]},"Embedded":{"type":"object","description":"Serializer for EmbeddedDocuments.\n\nSkips id field and uniqueness validation.\nWhen saving, skips calling instance.save","properties":{"name":{"type":"string"},"date":{"type":"string","format":"date"},"is_repeat_annually":{"type":"boolean"}},"required":["date","name"]}}},"paths":{"/api/interactions/info/":{"get":{"operationId":"interactions_info_list","description":"Get interactions for a specific module and reference","summary":"List Interactions","parameters":[{"in":"query","name":"interaction_type","schema":{"type":"string"},"description":"Interactions Type Filter"},{"in":"query","name":"limit","schema":{"type":"integer"},"description":"Number of items per page"},{"in":"query","name":"module_name","schema":{"type":"string"},"description":"Module name (e.g. contacts)","required":true},{"in":"query","name":"next_cursor","schema":{"type":"string"},"description":"Cursor token for the next page"},{"in":"query","name":"order_by","schema":{"type":"string"},"description":"Sort by creation_time: asc (oldest first) or desc (newest first, default)"},{"in":"query","name":"reference_id","schema":{"type":"string"},"description":"Reference ID","required":true}],"tags":["Interactions"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InteractionsList"}}}},"description":""}}}}}}
```

## Create Interactions

> Create a new interaction or reply

```json
{"openapi":"3.0.3","info":{"title":"Projetly API","version":"1.0.0"},"servers":[{"url":"https://api.app.projetly.io"}],"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token obtained from /api/login/. Pass as: Authorization: Bearer <token>"}},"schemas":{"InteractionsList":{"type":"object","description":"Serializer for listing interactions with pagination","properties":{"interaction_id":{"type":"string","maxLength":25},"content":{"type":"string"},"interaction_type":{"type":"string","default":"interaction"},"is_pinned":{"type":"boolean"},"is_resolved":{"type":"boolean"},"is_private":{"type":"boolean"},"visible_to_users":{"type":"array","items":{"type":"string"}},"reply_count":{"type":"integer"},"mentions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"reactions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"formatted_creation_time":{"type":"string","readOnly":true},"user_details":{"type":"string","readOnly":true},"is_read":{"type":"string","readOnly":true},"attachment_files":{"type":"string","readOnly":true},"reply_interactions":{"type":"string","readOnly":true},"thread_level":{"type":"integer"},"parent_interaction_id":{"type":"string","nullable":true,"maxLength":25},"reactions_summary":{"type":"string","readOnly":true},"is_system_generated":{"type":"boolean"}},"required":["attachment_files","content","formatted_creation_time","interaction_id","is_read","reactions_summary","reply_interactions","user_details"]},"Embedded":{"type":"object","description":"Serializer for EmbeddedDocuments.\n\nSkips id field and uniqueness validation.\nWhen saving, skips calling instance.save","properties":{"name":{"type":"string"},"date":{"type":"string","format":"date"},"is_repeat_annually":{"type":"boolean"}},"required":["date","name"]}}},"paths":{"/api/interactions/info/":{"post":{"operationId":"interactions_info_create","description":"Create a new interaction or reply","summary":"Create Interactions","tags":["Interactions"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"module_id":{"type":"integer"},"reference_id":{"type":"string"},"content":{"type":"string"},"interaction_type":{"type":"string"},"parent_interaction_id":{"type":"string"},"mentions":{"type":"array"},"attachment_ids":{"type":"array"}}}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"description":""}}}}}}
```

## Get Interactions Detail

> Get a specific interaction with full details

```json
{"openapi":"3.0.3","info":{"title":"Projetly API","version":"1.0.0"},"servers":[{"url":"https://api.app.projetly.io"}],"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token obtained from /api/login/. Pass as: Authorization: Bearer <token>"}},"schemas":{"InteractionsList":{"type":"object","description":"Serializer for listing interactions with pagination","properties":{"interaction_id":{"type":"string","maxLength":25},"content":{"type":"string"},"interaction_type":{"type":"string","default":"interaction"},"is_pinned":{"type":"boolean"},"is_resolved":{"type":"boolean"},"is_private":{"type":"boolean"},"visible_to_users":{"type":"array","items":{"type":"string"}},"reply_count":{"type":"integer"},"mentions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"reactions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"formatted_creation_time":{"type":"string","readOnly":true},"user_details":{"type":"string","readOnly":true},"is_read":{"type":"string","readOnly":true},"attachment_files":{"type":"string","readOnly":true},"reply_interactions":{"type":"string","readOnly":true},"thread_level":{"type":"integer"},"parent_interaction_id":{"type":"string","nullable":true,"maxLength":25},"reactions_summary":{"type":"string","readOnly":true},"is_system_generated":{"type":"boolean"}},"required":["attachment_files","content","formatted_creation_time","interaction_id","is_read","reactions_summary","reply_interactions","user_details"]},"Embedded":{"type":"object","description":"Serializer for EmbeddedDocuments.\n\nSkips id field and uniqueness validation.\nWhen saving, skips calling instance.save","properties":{"name":{"type":"string"},"date":{"type":"string","format":"date"},"is_repeat_annually":{"type":"boolean"}},"required":["date","name"]}}},"paths":{"/api/interactions/info/{id}/":{"get":{"operationId":"interactions_info_retrieve","description":"Get a specific interaction with full details","summary":"Get Interactions Detail","parameters":[{"in":"path","name":"id","schema":{"type":"string"},"required":true}],"tags":["Interactions"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"description":""}}}}}}
```

## PUT /api/interactions/info/{id}/

> API endpoint for interactions and notes management

```json
{"openapi":"3.0.3","info":{"title":"Projetly API","version":"1.0.0"},"servers":[{"url":"https://api.app.projetly.io"}],"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token obtained from /api/login/. Pass as: Authorization: Bearer <token>"}},"schemas":{"InteractionsList":{"type":"object","description":"Serializer for listing interactions with pagination","properties":{"interaction_id":{"type":"string","maxLength":25},"content":{"type":"string"},"interaction_type":{"type":"string","default":"interaction"},"is_pinned":{"type":"boolean"},"is_resolved":{"type":"boolean"},"is_private":{"type":"boolean"},"visible_to_users":{"type":"array","items":{"type":"string"}},"reply_count":{"type":"integer"},"mentions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"reactions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"formatted_creation_time":{"type":"string","readOnly":true},"user_details":{"type":"string","readOnly":true},"is_read":{"type":"string","readOnly":true},"attachment_files":{"type":"string","readOnly":true},"reply_interactions":{"type":"string","readOnly":true},"thread_level":{"type":"integer"},"parent_interaction_id":{"type":"string","nullable":true,"maxLength":25},"reactions_summary":{"type":"string","readOnly":true},"is_system_generated":{"type":"boolean"}},"required":["attachment_files","content","formatted_creation_time","interaction_id","is_read","reactions_summary","reply_interactions","user_details"]},"Embedded":{"type":"object","description":"Serializer for EmbeddedDocuments.\n\nSkips id field and uniqueness validation.\nWhen saving, skips calling instance.save","properties":{"name":{"type":"string"},"date":{"type":"string","format":"date"},"is_repeat_annually":{"type":"boolean"}},"required":["date","name"]}}},"paths":{"/api/interactions/info/{id}/":{"put":{"operationId":"interactions_info_update","description":"API endpoint for interactions and notes management","parameters":[{"in":"path","name":"id","schema":{"type":"string"},"required":true}],"tags":["Interactions"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/InteractionsList"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"description":""}}}}}}
```

## Delete Interactions

> Delete a interaction

```json
{"openapi":"3.0.3","info":{"title":"Projetly API","version":"1.0.0"},"servers":[{"url":"https://api.app.projetly.io"}],"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token obtained from /api/login/. Pass as: Authorization: Bearer <token>"}}},"paths":{"/api/interactions/info/{id}/":{"delete":{"operationId":"interactions_info_destroy","description":"Delete a interaction","summary":"Delete Interactions","parameters":[{"in":"path","name":"id","schema":{"type":"string"},"required":true}],"tags":["Interactions"],"responses":{"204":{"description":"No response body"}}}}}}
```

## POST /api/interactions/info/add-reaction/

> Add or toggle reaction to an interaction

```json
{"openapi":"3.0.3","info":{"title":"Projetly API","version":"1.0.0"},"servers":[{"url":"https://api.app.projetly.io"}],"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token obtained from /api/login/. Pass as: Authorization: Bearer <token>"}},"schemas":{"InteractionsList":{"type":"object","description":"Serializer for listing interactions with pagination","properties":{"interaction_id":{"type":"string","maxLength":25},"content":{"type":"string"},"interaction_type":{"type":"string","default":"interaction"},"is_pinned":{"type":"boolean"},"is_resolved":{"type":"boolean"},"is_private":{"type":"boolean"},"visible_to_users":{"type":"array","items":{"type":"string"}},"reply_count":{"type":"integer"},"mentions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"reactions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"formatted_creation_time":{"type":"string","readOnly":true},"user_details":{"type":"string","readOnly":true},"is_read":{"type":"string","readOnly":true},"attachment_files":{"type":"string","readOnly":true},"reply_interactions":{"type":"string","readOnly":true},"thread_level":{"type":"integer"},"parent_interaction_id":{"type":"string","nullable":true,"maxLength":25},"reactions_summary":{"type":"string","readOnly":true},"is_system_generated":{"type":"boolean"}},"required":["attachment_files","content","formatted_creation_time","interaction_id","is_read","reactions_summary","reply_interactions","user_details"]},"Embedded":{"type":"object","description":"Serializer for EmbeddedDocuments.\n\nSkips id field and uniqueness validation.\nWhen saving, skips calling instance.save","properties":{"name":{"type":"string"},"date":{"type":"string","format":"date"},"is_repeat_annually":{"type":"boolean"}},"required":["date","name"]}}},"paths":{"/api/interactions/info/add-reaction/":{"post":{"operationId":"interactions_info_add_reaction_create","description":"Add or toggle reaction to an interaction","tags":["Interactions"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/InteractionsList"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"description":""}}}}}}
```

## POST /api/interactions/info/mark-read/

> Mark interactions as read

```json
{"openapi":"3.0.3","info":{"title":"Projetly API","version":"1.0.0"},"servers":[{"url":"https://api.app.projetly.io"}],"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token obtained from /api/login/. Pass as: Authorization: Bearer <token>"}},"schemas":{"InteractionsList":{"type":"object","description":"Serializer for listing interactions with pagination","properties":{"interaction_id":{"type":"string","maxLength":25},"content":{"type":"string"},"interaction_type":{"type":"string","default":"interaction"},"is_pinned":{"type":"boolean"},"is_resolved":{"type":"boolean"},"is_private":{"type":"boolean"},"visible_to_users":{"type":"array","items":{"type":"string"}},"reply_count":{"type":"integer"},"mentions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"reactions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"formatted_creation_time":{"type":"string","readOnly":true},"user_details":{"type":"string","readOnly":true},"is_read":{"type":"string","readOnly":true},"attachment_files":{"type":"string","readOnly":true},"reply_interactions":{"type":"string","readOnly":true},"thread_level":{"type":"integer"},"parent_interaction_id":{"type":"string","nullable":true,"maxLength":25},"reactions_summary":{"type":"string","readOnly":true},"is_system_generated":{"type":"boolean"}},"required":["attachment_files","content","formatted_creation_time","interaction_id","is_read","reactions_summary","reply_interactions","user_details"]},"Embedded":{"type":"object","description":"Serializer for EmbeddedDocuments.\n\nSkips id field and uniqueness validation.\nWhen saving, skips calling instance.save","properties":{"name":{"type":"string"},"date":{"type":"string","format":"date"},"is_repeat_annually":{"type":"boolean"}},"required":["date","name"]}}},"paths":{"/api/interactions/info/mark-read/":{"post":{"operationId":"interactions_info_mark_read_create","description":"Mark interactions as read","tags":["Interactions"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/InteractionsList"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"description":""}}}}}}
```

## GET /api/interactions/info/summary/

> Get limited interactions for external module calls

```json
{"openapi":"3.0.3","info":{"title":"Projetly API","version":"1.0.0"},"servers":[{"url":"https://api.app.projetly.io"}],"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token obtained from /api/login/. Pass as: Authorization: Bearer <token>"}},"schemas":{"InteractionsList":{"type":"object","description":"Serializer for listing interactions with pagination","properties":{"interaction_id":{"type":"string","maxLength":25},"content":{"type":"string"},"interaction_type":{"type":"string","default":"interaction"},"is_pinned":{"type":"boolean"},"is_resolved":{"type":"boolean"},"is_private":{"type":"boolean"},"visible_to_users":{"type":"array","items":{"type":"string"}},"reply_count":{"type":"integer"},"mentions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"reactions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"formatted_creation_time":{"type":"string","readOnly":true},"user_details":{"type":"string","readOnly":true},"is_read":{"type":"string","readOnly":true},"attachment_files":{"type":"string","readOnly":true},"reply_interactions":{"type":"string","readOnly":true},"thread_level":{"type":"integer"},"parent_interaction_id":{"type":"string","nullable":true,"maxLength":25},"reactions_summary":{"type":"string","readOnly":true},"is_system_generated":{"type":"boolean"}},"required":["attachment_files","content","formatted_creation_time","interaction_id","is_read","reactions_summary","reply_interactions","user_details"]},"Embedded":{"type":"object","description":"Serializer for EmbeddedDocuments.\n\nSkips id field and uniqueness validation.\nWhen saving, skips calling instance.save","properties":{"name":{"type":"string"},"date":{"type":"string","format":"date"},"is_repeat_annually":{"type":"boolean"}},"required":["date","name"]}}},"paths":{"/api/interactions/info/summary/":{"get":{"operationId":"interactions_info_summary_retrieve","description":"Get limited interactions for external module calls","tags":["Interactions"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"description":""}}}}}}
```

## POST /api/interactions/info/unread-counts/

> Get unread interactions count for multiple projects

```json
{"openapi":"3.0.3","info":{"title":"Projetly API","version":"1.0.0"},"servers":[{"url":"https://api.app.projetly.io"}],"security":[{"bearerAuth":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token obtained from /api/login/. Pass as: Authorization: Bearer <token>"}},"schemas":{"InteractionsList":{"type":"object","description":"Serializer for listing interactions with pagination","properties":{"interaction_id":{"type":"string","maxLength":25},"content":{"type":"string"},"interaction_type":{"type":"string","default":"interaction"},"is_pinned":{"type":"boolean"},"is_resolved":{"type":"boolean"},"is_private":{"type":"boolean"},"visible_to_users":{"type":"array","items":{"type":"string"}},"reply_count":{"type":"integer"},"mentions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"reactions":{"type":"array","items":{"$ref":"#/components/schemas/Embedded"}},"formatted_creation_time":{"type":"string","readOnly":true},"user_details":{"type":"string","readOnly":true},"is_read":{"type":"string","readOnly":true},"attachment_files":{"type":"string","readOnly":true},"reply_interactions":{"type":"string","readOnly":true},"thread_level":{"type":"integer"},"parent_interaction_id":{"type":"string","nullable":true,"maxLength":25},"reactions_summary":{"type":"string","readOnly":true},"is_system_generated":{"type":"boolean"}},"required":["attachment_files","content","formatted_creation_time","interaction_id","is_read","reactions_summary","reply_interactions","user_details"]},"Embedded":{"type":"object","description":"Serializer for EmbeddedDocuments.\n\nSkips id field and uniqueness validation.\nWhen saving, skips calling instance.save","properties":{"name":{"type":"string"},"date":{"type":"string","format":"date"},"is_repeat_annually":{"type":"boolean"}},"required":["date","name"]}}},"paths":{"/api/interactions/info/unread-counts/":{"post":{"operationId":"interactions_info_unread_counts_create","description":"Get unread interactions count for multiple projects","tags":["Interactions"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/InteractionsList"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionsList"}}},"description":""}}}}}}
```
