JSON: API Specification

JSON: API Specification Checklist
Checks are saved to your local storage

JSON:API v1.0

Content Negotiation

Client Responsibilities

Server Responsibilities

Document Structure

Top Level

Resource Objects

Identification

Fields

Attributes

Relationships

Resource Linkage

Resource Identifier Objects

Compound Documents

Meta Information

JSON:API Object

Member Names

Allowed Characters

    • U+0061 to U+007A, “a-z”
    • U+0041 to U+005A, “A-Z”
    • U+0030 to U+0039, “0-9”
    • U+0080 and above (non-ASCII Unicode characters; not recommended, not URL safe) Additionally, the following characters are allowed in member names, except as the first or last character:
    • U+002D HYPHEN-MINUS, “-“
    • U+005F LOW LINE, “_”
    • U+0020 SPACE, “ “ (not recommended, not URL safe)
    • U+002B PLUS SIGN, “+” (used for ordering)
    • U+002C COMMA, “,” (used as a separator between relationship paths)
    • U+002E PERIOD, “.” (used as a separator within relationship paths)
    • U+005B LEFT SQUARE BRACKET, “[” (used in sparse fieldsets)
    • U+005D RIGHT SQUARE BRACKET, “]” (used in sparse fieldsets)
    • U+0021 EXCLAMATION MARK, “!”
    • U+0022 QUOTATION MARK, ‘”’
    • U+0023 NUMBER SIGN, “#”
    • U+0024 DOLLAR SIGN, “$”
    • U+0025 PERCENT SIGN, “%”
    • U+0026 AMPERSAND, “&”
    • U+0027 APOSTROPHE, “’”
    • U+0028 LEFT PARENTHESIS, “(“
    • U+0029 RIGHT PARENTHESIS, “)”
    • U+002A ASTERISK, “*”
    • U+002F SOLIDUS, “/”
    • U+003A COLON, “:”
    • U+003B SEMICOLON, “;”
    • U+003C LESS-THAN SIGN, “<”
    • U+003D EQUALS SIGN, “=”
    • U+003E GREATER-THAN SIGN, “>”
    • U+003F QUESTION MARK, “?”
    • U+0040 COMMERCIAL AT, “@”
    • U+005C REVERSE SOLIDUS, “\”
    • U+005E CIRCUMFLEX ACCENT, “^”
    • U+0060 GRAVE ACCENT, “`”
    • U+007B LEFT CURLY BRACKET, “{“
    • U+007C VERTICAL LINE, “|”
    • U+007D RIGHT CURLY BRACKET, “}”
    • U+007E TILDE, “~”
    • U+007F DELETE
    • U+0000 to U+001F (C0 Controls)

Fetching Data

Fetching Resources

Responses

200 OK

404 Not Found

Other Responses

Fetching Relationships

Responses

200 OK

404 Not Found

Other Responses

Sparse Fieldsets

Sorting

Pagination

Filtering

Creating, Updating and Deleting Resources

Creating Resources

Client-Generated IDs

Responses

201 Created

202 Accepted

204 No Content

403 Forbidden

404 Not Found

409 Conflict

Other Responses

Updating Resources

Updating a Resource’s Attributes

Updating a Resource’s Relationships

Responses

202 Accepted

200 OK

204 No Content

403 Forbidden

404 Not Found

409 Conflict

Other Responses

Updating Relationships

Updating To-One Relationships

Updating To-Many Relationships

Responses

202 Accepted

204 No Content

200 OK

403 Forbidden

Other Responses

Deleting Resources

Responses

202 Accepted

204 No Content

200 OK

404 NOT FOUND

Other Responses

Query Parameters

Errors

Processing Errors

Error Objects