Skip to main content

Project API

Base URL

/api

All endpoints require authentication using Authorization: Bearer <token>.

Endpoints

GET /project

Retrieve a list of all projects.

Headers:

  • Authorization: Bearer <token>

Response:

{
"data": [
{
"id": "project_id",
"group": "project_name",
"keyword": "\"keywords key\"",
"exclude": null,
"islisten": 0,
"updatedAt": "datetime",
"categoryid": "default",
"start_date": "datetime",
"end_date": "datetime",
"type": "manual"
},
{
...
}
],
"total": 10
}

cURL

curl -X 'GET' \
'https://beta-be.sociovite.com.ganapatih.com/api/project?page=1&limit=10' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'

POST /project

Create a new project.

Headers:

  • Authorization: Bearer <token>

Request Body:

{
"endDate": "string",
"group": "string",
"keyword": "string",
"startDate": "string"
}

Response:

{
"message": "Group successfully added",
"data": {
"id": "project_id",
"group": "project_name",
"keyword": "keywords key",
"exclude": "",
"islisten": 0,
"updatedAt": "datetime",
"categoryid": "default",
"start_date": "datetime",
"end_date": "datetime",
"type": "manual"
}
}

cURL

curl -X 'POST' \
'https://beta-be.sociovite.com/api/project' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"endDate": "2026-01-01",
"group": "string",
"keyword": "string",
"startDate": "2026-01-01"
}'

DELETE /project

Delete a project.

Headers:

  • Authorization: Bearer <token>

Query Parameters:

  • project_id : Select Project to delete by project ID or keyword ID

Response:

{
"message": "SnaKeyword and related entries deleted successfully for group: ..."
}
curl -X 'DELETE' \
'https://beta-be.sociovite.com/api/project?id={project_id}' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'

GET /project/content-count

Retrieve content counts for projects.

Headers:

  • Authorization: Bearer <token>

Query Parameters:

  • id: ID project spesifik
  • sosmedId (optional): social media spesifik

Response:

{
"data": 4
}
curl -X 'GET' \
'https://beta-be.sociovite.com/api/project/content-count?id={project_id}&sosmedId={social_media}' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'

PATCH /project/listen-status

Update the listen status of a project.

Headers:

  • Authorization: Bearer <token>

Request Body:

  • id: ID project spesifik
  • islisten: listen status change

islisten is for update listening 1 for listening and 0 for stop listening or not listening

{
"id": "project_id",
"islisten": 0
}

Response:

{
"id": "project_id",
"group": "project_name",
"keyword": "\"keyword key\"",
"exclude": null,
"islisten": 0,
"updatedAt": "datetime",
"categoryid": "default",
"start_date": "datetime",
"end_date": "datetime",
"type": "manual"
}
curl -X 'PATCH' \
'https://beta-be.sociovite.com/api/project/listen-status' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"id": "project_id",
"islisten": 0
}'

GET /project/summary/:keywordID

Get a summary based on a keyword ID.

Headers:

  • Authorization: Bearer <token>

Path Parameters:

  • keywordID: ID project spesifik

Response:

{
"id": "summary_id",
"ai_summary": "summary",
"sentiment_distribution": "{\"neutral\": 2, \"negative\": 2, \"positive\": 2}",
"created_at": "datetime",
"keyword_id": "project_id"
}
curl -X 'GET' \
'https://beta-be.sociovite.com/api/project/summary/{project_id}' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'

POST /project/generate-summary/:keywordID

Generate a new summary for a keyword.

Headers:

  • Authorization: Bearer <token>

Path Parameters:

  • keywordID: ID keyword

Response:

{
"status": "success",
"keyword_id": "project_id",
"result": {
"summary": "summary",
"metrics": {
"sentiment_distribution": {
"negative": 2,
"neutral": 2,
"positive": 2
}
}
}
}
curl -X 'POST' \
'https://beta-be.sociovite.com/api/project/generate-summary/{project_id}' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>' \
-d ''

Error Responses

401 Unauthorized

{
"error": "Invalid or missing token"
}

403 Forbidden

{
"error": "Access denied"
}

404 Not Found

{
"error": "Project not found"
}

500 Internal Server Error

{
"error": "Internal server error"
}