Repository navigation
Align Help Center and article docs with API responses - #744
Conversation
Correct the Help Center, Articles, Collections and Help Center Redirects reference so it matches what the API returns. - Fix collection and Help Center URLs in operation descriptions and examples, and add the required OAuth scope to each operation. - Document the 400, 401, 404 and 422 error responses that were missing. - Add page, per_page, help_center_id and search parameters, with their defaults, limits and allowed values. - Add content_id, audience_ids and collection type to the schemas, and refresh stale article and collection examples. - Update create, update, stage and publish request fields, including which fields are optional and which fields a staged draft accepts. - Correct the article version state wording, redirect ordering and relative redirect URLs, and note that search returns an empty data array when nothing matches. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Correct the scheduled unpublish, default locale, collection listing and collection help_center_id descriptions, drop the ignored parent_type field from article creation, and clarify the 404 and empty-body 400 responses. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
yasser-aboelgheit-intercom
left a comment
There was a problem hiding this comment.
Thanks Cathal, this is a thorough pass. I checked the changed claims against the API's behaviour and found nothing wrong: the scopes, the error codes and messages, the per_page limits, the search state values and default, the 500-character phrase limit, the home/null parent handling, the scheduling rules and the new response fields all match. Both specs parse with no dangling refs, operationIds are unchanged, and fern check shows 0 errors and the same 317 warnings as main.
A few questions:
-
2.17 contract changes. The 2.17 copy isn't only descriptions.
parent_typeis removed from the create and update article requests,requiredis dropped from create article (title,author_id) and create collection (name), and searchstatebecomes an enum. None of this changes the wire behaviour, but 2.17 is released. Is it worth a changelog line, or keeping these shape edits to Preview only? -
Empty search results. The description now says
datais[]when nothing matches, butarticle_search_response.datais still typed as an object. Generated Preview SDKs would then fail to parse an empty search. I see this was left out on purpose. Is there a follow-up for aoneOf(or an SDK override)? -
Stage draft "ignored" fields. The fields not applied by
PUT /articles/{id}/draftare still validated, so a malformedaudience_idsstill returns 422 and a malformedurl_redirectsstill returns 400. Would "not applied, though still validated" be more accurate than "ignored"? -
Update collection
help_center_id. It's described as "the Help Center the collection belongs to", but it's only checked, never applied, so it can't move a collection. The consistency check also looks at the collection's children, so an empty collection gets "Supplied help center id doesn't match the collection's help center id." even when the id is correct. Should the description say it's a check only? -
Publish draft
author_id. It's right that this is only used when the token has no teammate, but in that case it's required: leaving it out returns 400parameter_not_found. Should the description say so, given the schema also says the body can be omitted? -
Create article
title/author_id. "Required unless given intranslated_contentunder the default Help Center locale" holds when the article's locale is the default. Iflocale(or the parent collection) gives a different locale, values given only under the default locale pass validation but aren't used, and the create returns 404 for the author. Is that edge case worth a clause? -
Small one. On create article
translated_content, the newdescriptionnext to a$refis ignored under OpenAPI 3.0.1 unless it's wrapped inallOf.
Approving. None of these block, but I'd like an answer on 1.
~ Automated via Claude
Say that stage-draft fields outside the staged text are validated but not applied, that publish author_id is required when the token has no teammate, and that update collection help_center_id is only checked. Mark parent_id on update as nullable and content_id as read-only. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
yasser-aboelgheit-intercom
left a comment
There was a problem hiding this comment.
Thanks Cathal. The follow-up wording on the staged draft, publish author_id and collection help_center_id reads well, and nullable on update parent_id matches how null is handled. Re-checked the new head: both specs parse with no dangling refs, and fern check shows 0 errors and the same 317 warnings as main. My earlier question about a changelog line for the 2.17 shape changes still stands, but it doesn't block.
~ Automated via Claude
Why?
The Help Center, Articles, Collections and Help Center Redirects reference had drifted from what the API actually sends and accepts. It had wrong URLs, missing error responses and parameters, fields the API ignores, and stale examples. Developers following it wrote requests that failed or read fields that never arrive.
How?
These changes correct the 2.17 and Preview references in place, checked against the API's behaviour. They document each operation's OAuth scope, the real errors and limits, and examples that match current responses.
Risks
Some generated Preview SDK types change at the next SDK release. Request fields the API ignores are removed, search
statebecomes an enum, andtitle,author_idand collectionnamebecome optional.Generated with Claude Code