---
title: "Status of a campaign's JavaScript customizations, per block and rolled up"
method: GET
path: "/studio-campaigns/{campaign_id}/js-customizations-status"
tags: ["Campaign Studio"]
---

# Status of a campaign's JavaScript customizations, per block and rolled up

`GET /studio-campaigns/{campaign_id}/js-customizations-status`

## Request

- Base URL: `https://pro.gofundme.com/api/2.0`
- URL: `https://pro.gofundme.com/api/2.0/studio-campaigns/{campaign_id}/js-customizations-status`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `/oauth2/auth`
  - OAuth 2
    - Password
    - Token URL: `/oauth2/auth`

Requires privateEndpoint auth and organization tag 'custom-embedded-code'. Returns campaign-level roll-ups (has_unpublished, has_draft, has_scanning, has_failed) plus a per-block list so a caller can report which block is scanning or failing. Block IDs and per-block status are exposed; content is not.

## Path parameters

- `campaign_id` integer, required

## Response `200`

Success

- JavaScriptCustomizationsStatus
  - `has_unpublished` boolean, required: True if any block's latest version is not published (draft, scanning, or failed all count).
  - `has_draft` boolean, required: True if any block's latest version is draft -- editable content awaiting publish.
  - `has_scanning` boolean, required: True if any block's latest version is mid security scan. Polling this endpoint does not advance a scan; GET the block itself to do that.
  - `has_failed` boolean, required: True if any block's latest version failed its security scan.
  - `blocks` JavaScriptCustomizationBlockStatus[], required: Current status of every block on the campaign, ordered by block_id. Empty when the campaign has no custom-JS blocks.
    - `block_id` string, required: Block identifier
    - `status` 'draft' | 'published' | 'scanning' | 'failed', nullable, required: Status of the block's highest version. Null only for documents written before status was populated.
    - `version` integer, required: The block's highest version number
    - `has_published_version` boolean, required: True if any version of this block is published -- i.e. the block renders something on the live page even while its latest version is unpublished.

## Other responses

- `403`: Forbidden or feature not enabled
- `404`: Not found

## Changes

- **2026-09-03** `59289a48dd28`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gofundme/apis/gofundme-pro-api/changes/studio-campaigns/:campaign_id/js-customizations-status/get.md)

---

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