# Choosing Output Formats: Artifacts vs Inline vs Structured Data

> Choosing how a Claude response looks is really two independent decisions, not one three-way pick. Axis 1: delivery surface - does the response fold into the chat thread (inline) or open in a dedicated, standalone window (an Artifact)? Axis 2: representation - is the content prose, a table, or machine-parseable structured data like JSON? These axes are orthogonal: a table can render inline as a Markdown table or inside an Artifact as a spreadsheet-like document; a JSON block can sit inline in a code fence or be the content of an Artifact. Claude creates an Artifact when content is "significant and self-contained, typically over 15 lines" and something you're "likely to want to edit, iterate on, or reuse outside the conversation" - and it also requires the Code execution and file creation capability to be turned on, regardless of which representation the content uses.

**Domain:** CCAOF-D2 · Output Evaluation & Validation (21% of the exam)
**Canonical:** https://claudearchitectcertification.com/concepts/choosing-output-formats-artifacts-vs-inline
**Last reviewed:** 2026-05-04

## Quick stats

- **Independent decision axes:** 2 (delivery surface, representation)
- **Delivery-surface options:** 2 (inline / Artifact)
- **Exam domain:** CCAOF-D2 (21%)
- **Artifact length signal:** typically 15+ lines
- **Required capability toggle:** Code execution & file creation

## What it is

When Claude finishes a task, there are two separate decisions to get right, and the exam trap is treating them as one three-way choice. Delivery surface asks *where* the response lives: folded into the chat thread as inline text, or opened in a dedicated, standalone Artifact window separate from the conversation. Representation asks *what shape* the content takes: free-form prose, a table a human can scan, or structured data like JSON that a downstream system is meant to parse. These two questions are independent of each other - representation does not determine delivery surface, and delivery surface does not determine representation.

Concretely: a table can be delivered inline (a Markdown table in the chat reply) or as an Artifact (a larger, editable document); JSON is a representation choice, most often delivered inline in a code fence for a human to copy, or as the content of an Artifact when it's large enough to qualify. JSON is never itself a third "place" alongside inline and Artifact - it's a shape the content takes, the same way prose or a table is, and that shape can land on either delivery surface.

## How it works

Delivery surface, axis 1: inline is the default for disposable answers. A one-off question, a single line of copy, or an explanation that fully answers the question with no expected follow-on editing belongs in the chat thread itself, regardless of whether it's prose, a small table, or a short JSON snippet. Wrapping it in an Artifact adds friction without adding reuse value.

Delivery surface, axis 1: Artifacts trigger on a specific, named set of criteria, not raw length or representation. Claude creates an Artifact when content "is significant and self-contained, typically over 15 lines," is something the user is "likely to want to edit, iterate on, or reuse outside the conversation," and "stands on its own without requiring extra conversation context." Common Artifact types include documents (Markdown/plain text, which can hold prose or tables), code snippets (which can hold JSON or other structured data), single-page HTML sites, SVG images, diagrams, and interactive React components - the Artifact is the window, not the content shape inside it. Artifacts also require Code execution and file creation to be enabled in Settings > Capabilities (individual) or Organization settings > Capabilities (Team/Enterprise); if that toggle is off, nothing becomes an Artifact no matter how it qualifies otherwise.

Representation, axis 2: prose vs table vs structured data is about who or what consumes the output next, not where it renders. Prose fits a human reading for understanding. A table fits a human scanning rows and columns of comparable data. Structured data, JSON, a defined schema, fits a machine: a script, an API caller, or another tool that needs to parse the output programmatically rather than read it. This choice is made independently of delivery surface - a JSON block that a script will consume can still be short enough to stay inline, and a long descriptive table meant purely for human reading can still qualify as an Artifact if it's substantial and reusable.

The two axes combine, they don't compete. A short JSON snippet for a script stays inline. A large, editable data table a team will revisit weekly becomes an Artifact, still represented as a table, not converted to prose. A one-off explanatory paragraph stays inline as prose. The representation answers "what shape," the delivery surface answers "where it lives" - conflating them into a single three-way pick (inline vs Artifact vs structured data) misses that a table or a JSON block can legitimately go either place.

Sharing scope differs by plan once something is an Artifact. Free and Pro users can publish and remix Artifacts with the broader community; Team plan users can share Artifacts inside Projects for secure, internal team collaboration instead. That distinction (public remix vs scoped team sharing) applies to the delivery-surface axis specifically, once content has already qualified as an Artifact.

## Where you'll see it in production

### Campaign copy vs campaign dashboard

A single line of ad copy stays inline as disposable prose; a filterable, revisit-weekly campaign table qualifies as an Artifact, still represented as a table, because it's substantial, self-contained, and meant to be iterated on.

### Handing numbers to another tool

When a colleague needs figures as JSON to import into a script, the representation is structured data, and the delivery surface depends on size: a short snippet stays inline, a large reusable dataset becomes an Artifact - the two decisions are made separately.

## Comparison

| Representation (axis 2) | Can go inline (axis 1)? | Can go in an Artifact (axis 1)? | Who/what it's for |
| --- | --- | --- | --- |
| Prose | Yes - the default for a short, disposable explanation | Yes - a long-form document meant to be edited or referenced later | A human reader |
| Table | Yes - a small Markdown table in the chat reply | Yes - a larger, revisit-weekly data table as its own document | A human scanning comparable rows/columns |
| Structured data (JSON, schema) | Yes - a short snippet in a code fence for a script to copy | Yes - a substantial JSON/config artifact meant to be reused or edited | A machine or downstream system that parses it |

## Decision tree

1. **Axis 2 first - does a downstream system need to parse this output programmatically (spreadsheet import, another tool, an API)?**
   - **Yes:** Use structured data (a table or JSON) as the representation - this is independent of where it renders.
   - **No:** Prose is the right representation for a human reader; a table still works if the content is comparable rows/columns, not lists to parse.

2. **Axis 1 next - is the content substantial and self-contained (roughly 15+ lines) and something the user will likely edit, iterate on, or reuse outside this conversation?**
   - **Yes:** It qualifies as an Artifact, whatever representation was chosen above (prose, table, or structured data) - assuming the capability toggle below is on.
   - **No:** Keep it inline, whatever representation was chosen above - a short, disposable answer doesn't need a separate window even if it's a table or JSON.

3. **Is "Code execution and file creation" enabled in Settings > Capabilities (or Org settings for Team/Enterprise)?**
   - **Yes:** Artifacts will render for qualifying content, on either axis 2 representation.
   - **No:** Artifacts won't be created even if the content qualifies - turn the toggle on first, don't assume the content or representation is the problem.

4. **Does the output need to be shared beyond the requester - publicly remixed, or securely with a specific team?**
   - **Yes:** Free/Pro: publish and remix with the community. Team: share the Artifact inside a Project instead, for scoped internal access.
   - **No:** No extra sharing step needed - the Artifact stays in this conversation.

## Exam-pattern questions

### Q1. A marketing manager asks Claude for a single line of ad copy with no plans to revise it further. What delivery surface and representation fit?

Inline, and prose. It's short, disposable, and needs no further iteration or reuse - none of the Artifact triggers apply, and there's no downstream system that needs to parse it. Named distractor: "an Artifact, since it's customer-facing marketing content" - content type alone doesn't trigger an Artifact; reusability and self-containment do, independent of what the content is about.

### Q2. The same manager then asks for a full campaign performance table with filterable metrics that the team will revisit weekly. Is this "structured data" or "an Artifact", and does it have to be one or the other?

It's both, and that's the point: the representation is a table (structured, comparable rows and columns), and the delivery surface is an Artifact because it's substantial, self-contained, and explicitly meant to be revisited and iterated on. Named distractor: "structured data and an Artifact are alternatives, so pick one" - representation and delivery surface are independent axes, not competing options; a table routinely qualifies as an Artifact.

### Q3. A colleague needs the underlying campaign numbers as JSON to import into a separate script. Where should that JSON render, and does being JSON make it an Artifact automatically?

JSON is the representation, not the delivery surface, so it can be inline (a short code-fenced JSON block a script copies) or an Artifact (if it's large and meant to be revisited/edited) depending on the same reusability criteria as any other content. Named distractor: "JSON always ships as an Artifact, since it's structured data" - being machine-parseable says nothing about whether it's long, self-contained, or reusable enough to become an Artifact; a short JSON snippet correctly stays inline.

### Q4. A user has "Code execution and file creation" toggled off in Settings > Capabilities and asks Claude for a 40-line landing page mockup that clearly qualifies as Artifact content. What happens, and what's the fix?

No Artifact is created, regardless of the content qualifying on length, self-containment, or representation, because the capability toggle gates Artifact creation entirely. Named distractor: "ask for an even longer response to force an Artifact to trigger" - length was never the blocker; the capability setting was. The fix is enabling Code execution and file creation in Settings (or Organization settings for Team/Enterprise), not rewording the request.

### Q5. A Team-plan user wants to share a finished Artifact securely with only their immediate team, not the public. What's the correct action?

Share the Artifact inside a Project, which is the Team-plan path for secure, scoped team collaboration. Named distractor: "publish it to the community feed like a Free or Pro user would" - publish/remix is the Free/Pro community-sharing path; Team plans get in-Project sharing specifically to keep distribution internal.

## FAQ

### Q1. Are inline, Artifact, and structured data three peer options to choose between?

No. Inline vs Artifact is the delivery-surface axis (where the response lives). Prose vs table vs structured data is the representation axis (what shape the content takes). A table or JSON block can be delivered either inline or as an Artifact - they're independent decisions, not three mutually exclusive formats.

### Q2. Does a longer response always become an Artifact?

No. Length (typically 15+ lines) is one signal, but the deciding factors are whether the content is self-contained and something the user is likely to edit, iterate on, or reuse outside the conversation - a long one-off explanation can correctly stay inline, on either the prose, table, or structured-data representation.

### Q3. Why would Claude never produce an Artifact for a user, even for clearly qualifying content?

Artifacts require the Code execution and file creation capability to be enabled in Settings > Capabilities (or Organization settings for Team/Enterprise). If that toggle is off, check it first before assuming the content or its representation is the problem.

---

**Source:** https://claudearchitectcertification.com/concepts/choosing-output-formats-artifacts-vs-inline
**Last reviewed:** 2026-05-04

**Evidence tiers**, 🟢 official Anthropic doc / API contract · 🟡 partial doc / inferred · 🟠 community-derived · 🔴 disputed.
