Check this page with an assistantOpens a chat asking it to summarise this article and name the evidence behind each claim.
Claude opens with the prompt on your clipboard: Anthropic does not support prefilled prompts on the web, and we would rather copy it than ship a button that drops it.
Decisions first
Discover the target Drupal bundle and field schema, authenticate as a least-privilege content role, send JSON:API media types to the bundle endpoint, place entity references under relationships with UUIDs, retain the returned resource UUID, and verify the stored entity, revision/moderation state, path alias, metatags, caches, and public canonical URL.
- A Drupal content type and its fields are a site-specific publishing contract.
- JSON:API relationships require resource types and UUIDs; they are not ordinary attributes.
- This method uses Drupal's core API and site configuration, not a native SearchHandled Drupal connector.
Discover the bundle and editorial state model
Identify the entity type, bundle, field machine names, text formats, references, media model, path aliases, metatag implementation, language, moderation workflow, revisions, and frontend route before constructing a payload.
Drupal's JSON:API paths follow /jsonapi/{entity_type}/{bundle}; individual resources add the UUID. A node article and a node page therefore have different endpoints. Human labels can change, while machine names and UUIDs drive the request.
Core JSON:API exposes the entity model, but contributed modules and site code often control aliases, metatags, paragraphs, media, moderation, access, and rendering. Create a destination contract from the actual site and keep its version with each approved job.
| Drupal concern | Map before write | Verify after write |
|---|---|---|
| Bundle | Entity type and bundle ID | Returned resource type |
| Fields | Machine name and value shape | Stored attributes |
| References | Type and UUID | Resolved relationships |
| Editorial state | Revision/moderation policy | Not accidentally public |
| SEO output | Alias and metatag rules | Rendered canonical page |
Build a valid, least-privilege JSON:API request
Use Accept and Content-Type application/vnd.api+json, authenticate as a role allowed to create the bundle, and represent references as relationships rather than attributes.
Drupal documents POST for creating one resource at a time and PATCH for updates. A successful create returns HTTP 201 and the resource representation. Keep the UUID from that response as the stable integration identity; do not rely on the title or numeric node ID.
Create referenced media or taxonomy through their own governed process and use UUIDs in relationships. Validate the text format instead of sending arbitrary HTML into a privileged format. If the site uses Paragraphs or custom nested structures, build and test that graph explicitly rather than flattening it into body HTML.
Respect revisions, moderation, and aliases
An entity save is not automatically an editorially safe draft. Test how the configured moderation workflow, revision defaults, translations, and permissions interpret the request.
Use a dedicated API role with only the required create, edit, view-unpublished, and media permissions. Prove that it cannot administer users, configuration, or unrelated bundles. Bind the approval to the exact payload and resource revision where the site exposes it.
Pathauto, Redirect, Metatag, Content Moderation, and translation modules may add behavior outside the base JSON:API payload. Decide whether aliases and metadata are derived or supplied, then read the entity and preview the real Drupal route. A node can be stored correctly while its alias collides or its canonical tag points elsewhere.
- Dedicated content role
- Unpublished or moderated state
- Revision-aware update
- Derived alias checked
- Metatag output checked
- Cache behavior documented
Verify Drupal, caches, and the public page
Read the entity by UUID, confirm the moderation and revision state, then verify the public or preview route after the site's cache and rendering path have processed it.
Check status, canonical, robots, title, description, H1, language alternates, images, structured data, internal links, and a content fingerprint. For decoupled Drupal, verify the consuming frontend separately; the CMS and public application are different release systems.
Make retries idempotent by storing the UUID immediately and querying before another create after a timeout. Preserve provider-native revisions or backups for recovery. Measure the canonical URL through Search Console and conversion analytics only after its public identity is confirmed.
Continue the workflow
Test one representative bundle through invalid field, missing relationship, permission denial, draft creation, revision conflict, alias generation, cache invalidation, and public verification.
- automated content publishing: apply safe retries and public verification
- SEO content approval workflow: map moderation authority to an exact revision
- programmatic SEO quality control: test the bundle against hostile and incomplete records
Questions teams ask
- What endpoint creates a Drupal article with JSON:API?
For the standard node article bundle, the pattern is POST /jsonapi/node/article with JSON:API media-type headers. The actual bundle and fields must match the site.
- Do Drupal JSON:API references use numeric IDs?
Individual JSON:API resources and relationships use UUIDs together with the resource type. Relationship fields belong under relationships, not attributes.
- Does a successful Drupal POST prove the page is live?
No. It proves the resource was created. Moderation, revisions, aliases, metatags, caches, access, and any decoupled frontend must be verified separately.
Primary sources
The SearchHandled Editorial Team prefers first-party documentation and names the limits of each source. Links were checked on the access date.
- Drupal: JSON:API module API overviewAccessed August 29, 2026
- Drupal: Creating new resources with JSON:APIAccessed August 29, 2026
- Google Search Central: Creating helpful, reliable, people-first contentAccessed August 29, 2026 · Quality guidance, not a guarantee that a page will rank.
- Google Search Console Help: Performance report: clicks, impressions, CTR, and positionAccessed August 29, 2026

