What is MIME type "application/vnd.api+json"?
A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.
application/vnd.api+json is a vendor-specific MIME type used with the JSON API spec. It tells browsers and applications that the content is formatted as a structured JSON document meant for API communication.It standardizes how resources, relationships, and errors are represented in the data. This helps both clients and servers process and understand the information uniformly.
- Main use case: Handling web API responses in a well-defined format.
- Key facts:
- It defines the structure of resource objects.
- It standardizes links and relationships between data.
- It offers uniform error handling rules.
- Usage: Files delivering JSON API data often use this MIME type.
For deeper details, visit the JSON API site or review the IANA registration at IANA Media Types.
Associated file extensions
Usage Examples
HTTP Header
When serving content with this MIME type, set the Content-Type header:
Content-Type: application/vnd.api+json
HTML
In HTML, you can specify the MIME type in various elements:
<a href="file.dat" type="application/vnd.api+json">Download file</a>
Server-side (Node.js)
Setting the Content-Type header in Node.js:
const http = require('http');
http.createServer((req, res) => {
res.setHeader('Content-Type', 'application/vnd.api+json');
res.end('Content here');
}).listen(3000);
Associated file extensions
FAQs
What is the difference between application/json and application/vnd.api+json?
While application/json is for generic JSON data, application/vnd.api+json indicates the data specifically follows the JSON API specification. This tells the client to expect a strict structure for resources, relationships, and metadata, allowing for standardized caching and client-side processing.
Why am I getting a 415 Unsupported Media Type error?
The JSON API specification requires strict header compliance. If you send a request with Content-Type: application/json or include extra parameters like charset=utf-8 (e.g., application/vnd.api+json; charset=utf-8), a compliant server must reject it with a 415 error. You must send exactly application/vnd.api+json.
Can I include 'charset=utf-8' with this MIME type?
No. The JSON API specification explicitly forbids media type parameters. Although the content is encoded as UTF-8, appending ; charset=utf-8 to the Content-Type or Accept headers violates the spec and often causes server errors.
How do I configure Nginx to serve this MIME type?
You can add the type definition inside your mime.types file or within a types block in your nginx.conf. Add the line: application/vnd.api+json json;. This ensures that .json files or API responses are labeled correctly.
How do I add support for this MIME type in Apache?
You can use the AddType directive in your .htaccess file or main server configuration. Add the line AddType application/vnd.api+json .json to associate the MIME type with the file extension.
Do web browsers automatically display application/vnd.api+json?
Not always. While Firefox and Chrome handle standard application/json by pretty-printing it, they may treat application/vnd.api+json as a downloadable file or plain text. You often need a browser extension (like a JSON Formatter) to view these API responses comfortably in the browser.
General FAQ
What is a MIME type?
A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.
MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.
MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.
How do I find the MIME type for a file?
You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.
Why are multiple MIME types listed for one extension?
Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.