---
title: "Get Job Details (Customer Portal)"
method: GET
path: "/customer_portal/job_details"
---

# Get Job Details (Customer Portal)

`GET /customer_portal/job_details`

## Request

- Base URL: `https://dc-region.zuperpro.com/api`
- URL: `https://dc-region.zuperpro.com/api/customer_portal/job_details`
- Auth: API key in header `x-api-key`

Public, unauthenticated. Functionally identical to Get Customer Portal Jobs (same two handlers) — kept as a separate path, likely a legacy alias. Requires jobs.public_link enabled for the company; if company_config.jobs.allow_public_link_on restricts by status type and the job's status isn't allowed, renders an error card. Several business-rule rejections on this endpoint return HTTP 200 with an error-card HTML body rather than a 4xx status — a known inconsistency worth accounting for in client error handling.

## Query parameters

- `job_uid` string, required
- `company_uid` string, required

## Response `200`

200 — rendered HTML job details page (also used for several business-rule rejections, see description).

## Other responses

- `404`: 404 — company not found.

## Changes

- **2026-11-03** `3c21bc232e16`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zuper/apis/zuper-pro-api/changes/customer_portal/job_details/get.md)

---

[API](https://skmtc.dev/zuper/apis/zuper-pro-api.md) - [All operations](https://skmtc.dev/zuper/apis/zuper-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zuper/apis/zuper-pro-api/revisions/3c21bc232e16?raw)
