---
title: "Get web package"
method: GET
path: "/v2/web-packages/{id}"
tags: ["Web Packages"]
---

# Get web package

`GET /v2/web-packages/{id}`

Retrieve a single web package by ID.

**Required OAuth scope:** `web-packages:read`

## Path parameters

- `id` string, required

## Response `200`

OK

- WebPackageDetailResponse — JSON:API single-resource response for a web package.
  - `data` WebPackageResource, required — JSON:API resource object for a web package.
    - `type` 'web-packages' — Always "web-packages".
    - `id` string, required — Opaque web package ID. Use in URL paths.
    - `attributes` WebPackageAttributes, required — Attributes of a web package resource object. ``type`` and ``state`` are deliberately typed as loose ``str`` rather than ``Literal``, matching ``LessonAttributes.type``: a new choice added to ``WebPackage.PACKAGE_TYPE_CHOICES`` must never break serialization of existing rows. The valid values are documented in the field descriptions. Note ``type`` lives inside ``attributes`` even though JSON:API reserves that name at the resource level. This follows the established v2 precedent (``LessonAttributes.type``) and is what GE-249998 AC2 asks for.
      - `type` string, required — Package format: SCORM, SCORM_2004, XAPI, AICC, or HTML.
      - `state` string, required — Ingestion state: PROCESSING while the package is being fetched and unpacked, READY once usable, ERROR if the archive could not be processed. Poll this field after create.
      - `title` string, required — Best-guess title parsed from the package manifest.
      - `display_name` string, required — Server-derived label shown in the dashboard. Recomputed on every save from the title, state and archive filename — it is not directly settable.
      - `base_path` string, required — Base location in storage of the unpacked package content.
      - `created_at` string, date-time, required — Timestamp when the web package was created.
      - `modified_at` string, date-time, required — Timestamp when the web package was last modified.
    - `links` object, nullable — Self and related links.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/skilljar/apis/skilljar-api-v2.md) · [All operations](https://skmtc.net/skilljar/apis/skilljar-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skilljar/skilljar-api-v2/revisions/f8025de20169/schema)
