Save a campaign's Web tab
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://reputecast.example.com/api/v1/workspaces/acme-newsletter/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/web"
payload := strings.NewReader("{ \"bylineName\": \"example\", \"bylineUserId\": \"example\", \"coverAlt\": \"example\", \"coverUrl\": \"example\", \"excerpt\": \"example\", \"featured\": true, \"neverFree\": true, \"publishAt\": \"2026-04-15T12:00:00Z\", \"publishMode\": \"with_send\", \"publishTz\": \"example\", \"seo\": { \"canonicalUrl\": \"example\", \"description\": \"example\", \"hideFromSearch\": true, \"socialImage\": \"example\", \"title\": \"example\" }, \"slug\": \"example\", \"tags\": [ \"example\" ], \"tiers\": [ \"example\" ], \"title\": \"example\", \"usePreheader\": true, \"useSubject\": true, \"visibility\": \"public\", \"webOn\": true }")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://reputecast.example.com/api/v1/workspaces/acme-newsletter/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/web';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"bylineName":"example","bylineUserId":"example","coverAlt":"example","coverUrl":"example","excerpt":"example","featured":true,"neverFree":true,"publishAt":"2026-04-15T12:00:00Z","publishMode":"with_send","publishTz":"example","seo":{"canonicalUrl":"example","description":"example","hideFromSearch":true,"socialImage":"example","title":"example"},"slug":"example","tags":["example"],"tiers":["example"],"title":"example","usePreheader":true,"useSubject":true,"visibility":"public","webOn":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://reputecast.example.com/api/v1/workspaces/acme-newsletter/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/web \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "bylineName": "example", "bylineUserId": "example", "coverAlt": "example", "coverUrl": "example", "excerpt": "example", "featured": true, "neverFree": true, "publishAt": "2026-04-15T12:00:00Z", "publishMode": "with_send", "publishTz": "example", "seo": { "canonicalUrl": "example", "description": "example", "hideFromSearch": true, "socialImage": "example", "title": "example" }, "slug": "example", "tags": [ "example" ], "tiers": [ "example" ], "title": "example", "usePreheader": true, "useSubject": true, "visibility": "public", "webOn": true }'Permission: campaigns:edit
A live post’s settings need website:edit too.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Workspace slug
Workspace slug
The campaign’s id
The campaign’s id
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
A paid post’s tiers; empty for every paid tier
Responses
Section titled “Responses”OK
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Example
{ "chip": "off", "post": { "approval": { "status": "pending" }, "checks": [ { "hidden": [ { "kind": "view_online", "reason": "email_only" } ], "key": "address", "status": "pass" } ], "kind": "campaign", "publish": { "pending": { "status": "pending" }, "rule": "author_lacks_send" }, "publishMode": "with_send", "status": "draft", "visibility": "public" }}default
Section titled “default”Error
object
Stable error code, e.g. permission_denied
A human-readable explanation specific to this occurrence of the problem.
Optional list of individual error details
object
Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’
Error message text
The value at the given location
Members who hold the missing permission
A URI reference that identifies the specific occurrence of the problem.
object
The missing permission key
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference to human-readable documentation for the error.
Example
{ "detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "about:blank"}