Skip to Content
EndpointsReviews

Reviews

Company review listing and authenticated review mutations.

List reviews

Lists reviews. Filter by `companyId` with an optional query parameter.

GET/api/reviews

Auth: No auth required.

Response body

[
  {
    "id": "44444444-4444-4444-4444-444444444444",
    "company_id": "11111111-1111-1111-1111-111111111111",
    "rating": 4,
    "comment": "Supportive team and clear hiring flow."
  }
]

Status codes

  • 200 OK
  • 400 Bad Request
  • 500 Internal Server Error

Error format

{
  "error": "Unauthorized",
  "code": "unauthorized"
}

Routes use the shared JSON error envelope; exact `code` values depend on the endpoint.

Create review

Creates a review for the authenticated user.

POST/api/reviews

Auth: Bearer token or Clerk session.

Request body

{
  "company_id": "11111111-1111-1111-1111-111111111111",
  "rating": 4,
  "comment": "Supportive team and clear hiring flow."
}

Response body

{
  "id": "44444444-4444-4444-4444-444444444444",
  "company_id": "11111111-1111-1111-1111-111111111111",
  "rating": 4,
  "comment": "Supportive team and clear hiring flow."
}

Status codes

  • 201 Created
  • 400 Bad Request
  • 401 Unauthorized
  • 500 Internal Server Error

Error format

{
  "error": "Unauthorized",
  "code": "unauthorized"
}

Routes use the shared JSON error envelope; exact `code` values depend on the endpoint.

Update review

Updates a review owned by the authenticated user.

PATCH/api/reviews/{reviewId}

Auth: Bearer token or Clerk session.

Request body

{
  "rating": 4,
  "comment": "Supportive team and clear hiring flow."
}

Response body

{
  "id": "44444444-4444-4444-4444-444444444444",
  "company_id": "11111111-1111-1111-1111-111111111111",
  "rating": 4,
  "comment": "Supportive team and clear hiring flow."
}

Status codes

  • 200 OK
  • 400 Bad Request
  • 401 Unauthorized
  • 404 Not Found
  • 500 Internal Server Error

Error format

{
  "error": "Unauthorized",
  "code": "unauthorized"
}

Routes use the shared JSON error envelope; exact `code` values depend on the endpoint.

Delete review

Deletes a review owned by the authenticated user.

DELETE/api/reviews/{reviewId}

Auth: Bearer token or Clerk session.

Response body

No response body.

Status codes

  • 204 No Content
  • 400 Bad Request
  • 401 Unauthorized
  • 404 Not Found
  • 500 Internal Server Error

Error format

{
  "error": "Unauthorized",
  "code": "unauthorized"
}

Routes use the shared JSON error envelope; exact `code` values depend on the endpoint.