Free Online VAST Tag Validator
Paste VAST XML or drop a .xml file. Spec check against VAST 2.0–4.4, in the browser.
Live URL or creative preview: VAST Tag Tester · Wrapper hops: VAST Inspector
Drop a .xml file or URL · paste XML or a URL · auto-validates · ⌘↵ to validate now
Drop a .xml file or URL · paste XML or a URL · auto-validates · ⌘↵ to validate now
Validation still runs in your browser. Opening this page may record country and network owner (no IP). Tags you paste or fetch may be stored (device IDs and IPs stripped from the XML). Tracking URLs linted by Pixellint may be stored there too. Same-tab samples may be grouped. Built-in samples are not sent. Privacy · Terms ·
Full
rule coverage
7
VAST versions
<1ms
validation
WASM
in-browser
Take the same checks into your own stack
Once the XML is clean here, the next step is to keep the same rules inside the component, CI job, or serving path that owns the tag. That way manual QA and production validation speak the same rule IDs.
Add VASTlint to your own component
If you already have a formatter, preview pane, or trafficker QA screen, keep that UI. Run VASTlint inside it so the hosted workbench and your first-party workflow stay in sync.
Start with the hosted flow on this page, then move the same validation into your own React or Next.js component when you need a productized workbench.
vastlint-cli
Use the CLI in CI, fixtures, and pre-flight scripts when validation belongs in a pipeline instead of a browser tab.
vastlint-core
Use the Rust crate when validation belongs inline inside an SSP, DSP, SSAI worker, or ad server request path.
vastlint-go
Use the Go module when you want the same core rules in Go services without pushing validation into a subprocess.
vastlint-grpc
Use the gRPC sidecar when validation belongs next to a Java ad server, SSAI stitcher, or agent pipeline that already speaks gRPC.
vastlint
Use the Python package for in-process validation in ad-ops tooling, FastAPI or Flask services, and data pipelines.
vastlint-erlang
Use the BEAM module when validation belongs in Erlang or Elixir delivery paths.
Why trust this validator
VASTlint is an independent open-source validator against the published IAB Tech Lab standards, not an official IAB Tech Lab tool. Where IAB publishes VAST XSD schemas, VASTlint derives machine-verifiable structural rules from those schemas. Where the spec uses RFC 2119 normative prose, VASTlint derives rules from that text. If you already run IAB XSD validation in CI, keep it as a baseline. VASTlint complements it with prose-derived, XML, URI, media-type, and operational checks built for production CTV, streaming, SSP, DSP, SSAI, and ad-server workflows.
Published IAB XSD schemas first
Where IAB Tech Lab publishes VAST XSD schemas, VASTlint derives machine-verifiable structural rules directly from those schemas.
RFC 2119 prose where schemas stop
When the VAST or SIMID specs use MUST, REQUIRED, SHALL, or SHOULD, VASTlint derives rules from that normative prose. That is especially important for VAST 4.3, where no IAB XSD exists.
Baseline plus real-world rigor
Keep IAB XSD validation in CI if you already run it. VASTlint complements it with prose-derived, XML, URI, media-type, and operational checks, but player, SDK, exchange, and business rules can still matter.
How this VAST tag validator works
- → Validates against IAB VAST 2.0 through 4.4 specs. 4.3 is the current final spec. 4.4 is draft. Rules come from published IAB XSD schemas where IAB ships them and RFC 2119 normative prose where schemas stop. Version is detected automatically from the
versionattribute. - → Checks for missing required fields, malformed URLs, empty elements, deprecated features, VPAID, version mismatches, and more.
- → This is an independent validator against the published IAB standards, not an official IAB Tech Lab tool.
- → Your XML is validated in your browser. A copy of tags you paste or fetch may be stored (device IDs and IPs stripped) to improve vastlint's rules and for research described in the terms. Built-in samples are not sent. Opt out on this page or see privacy.
- → Want validation in CI/CD? Use the VASTlint CLI
brew install aleksUIX/tap/vastlint - → Need a REST API? VASTlint is on RapidAPI: validate VAST tags with a single HTTP call. Subscribe free →
VAST tag validator FAQ
What is the difference between the VAST validator and the VAST tester?
The validator checks VAST XML against the spec: required fields, versions, macros, SIMID envelope, tracking event names. It does not fetch a live URL or preview creative. The tester fetches a tag URL, previews the ad, and inspects tracking and click URLs. If you only have a live VAST URL, start on the tester. If you already have resolved XML, start on the validator. Use the inspector when the failure is in the wrapper chain.
Why will a Campaign Manager ins tag not validate as VAST?
A Campaign Manager 360 ins, iframe, or img tag is a display page slot, not a VAST document. Export the in-stream pre-fetch (pfadx) tag from the video placement. Wrapping the HTML in HTMLResource will not make a player play it as video. See vastlint.org/docs/html-display-tag/.
What is a VAST tag validator?
A VAST tag validator checks a VAST tag or VAST XML document against the IAB Tech Lab VAST specification. It catches missing required fields, malformed URLs, deprecated elements, and other compliance issues before launch.
How do I validate a VAST tag?
Paste raw VAST XML into the editor, upload a .xml file, or type directly in the validator. If you need to fetch a live VAST URL or preview the creative, use the VAST Tag Tester. If you need to inspect wrapper behavior hop by hop, use the VAST Inspector.
Which VAST versions does this validator support?
This VAST tag validator supports VAST 2.0, 3.0, 4.0, 4.1, 4.2, 4.3, and 4.4. Version detection is automatic from the VAST version attribute. 4.3 is the current IAB final spec; 4.4 is draft coverage.
Is VASTlint an official IAB validator?
No. VASTlint is an independent, open-source validator that checks VAST tags against published IAB Tech Lab specifications and schemas. It is not affiliated with or operated by IAB Tech Lab.
Does this validator use IAB XSD schemas?
Yes. Where IAB publishes VAST XSD schemas, VASTlint derives machine-verifiable structural rules directly from those schemas. It then complements them with RFC 2119 prose-derived rules and other standards checks.
What happens for VAST 4.3 where no XSD exists?
IAB Tech Lab did not publish a VAST 4.3 XSD. For VAST 4.3, VASTlint derives rules from the normative prose in the published VAST 4.3 specification.
Should I still keep IAB XSD validation in CI?
Yes, if you already run it. IAB XSD validation is a strong baseline. VASTlint complements it with prose-derived rules, XML well-formedness, URI and media-type checks, and operational guidance that XSD alone does not cover.
Does passing VASTlint guarantee playback everywhere?
No. Passing VASTlint means the tag is structurally compliant with the published standards and related checks. Players, SDKs, exchanges, CTV environments, and business-specific rules can still impose additional requirements.
Is VASTlint legitimate for production CTV, streaming, or ad-server workflows?
Yes. VASTlint is self-hostable, signed, fuzz-tested, and designed for latency-sensitive CTV, streaming, SSP, DSP, SSAI, and ad-server workflows. The same core ships as a library, CLI, web validator, editor extension, and MCP server.
Which standards besides IAB VAST does it check?
Beyond IAB VAST and SIMID, VASTlint checks W3C XML 1.0 well-formedness, RFC 3986 URI syntax, IANA Media Types, ISO 4217 currency codes, and Ad-ID formatting where applicable.
Does this validator store the VAST tags I paste?
Validation still runs in your browser. Tags you paste or fetch may be stored with device IDs and IPs stripped, so the rules can be improved and for research described in the terms. Submitted XML is not published as a public dataset. Built-in samples are not sent. Same-tab samples may be grouped. Use Don't send my tags on this page, or see the privacy and terms pages.
Keep going
Search visitors who land on the validator usually need one of three things next: a fix guide, a version explainer, an automation path, or a live wrapper-debugging flow. These pages cover the most common follow-up jobs.
- How to validate VAST XML step by step
- Common VAST errors and what to fix first
- VAST versions explained: 2.0 through 4.4
- MCP server for automated VAST validation
- VAST macros: full list with meanings
- What Is SIMID, then paste into the tester
- Error 303: no ads after wrappers
- Error 403: no supported media file
- Error 901: general VPAID failure
- Nonlinear overlay ads
- Pause ads in VAST
- What is VMAP
- Use the VAST Tag Tester for URL fetches and creative preview
- Open the IAB-style VAST tester for SIMID studio and host transport
- Inspect a wrapper chain hop by hop