Endpoints List GraphQL API
The Defactor Postman Collection comprises a suite of pre-configured API requests designed for seamless integration into the Postman application, facilitating access to the services offered by the Defactor API.
This API offers dual modes of interaction with the IPFS node: firstly, via the RESTful API; and secondly, through the GraphQL API.
Security Details
To secure the API access control, all requests are made through Hasura which provides secure GraphQL, and RESTful endpoints restricted by a role-based authorization system.
Those endpoints that return public data do not require authentication for use. Query type requests are opened under the guest
role, while mutation type needs a token with admin
role.
For those that can modify data the API expects a valid authorization header containing a bearer token. These tokens are implemented as JSON Web Tokens (JWTs) issued by the server.
The security of the JWT is because it is signed by a secret key and has a configurable expiration time, which by default is 60 minutes.
Upon receiving a request, Hasura decodes and validates the JWT, which contains user account data, and their corresponding role. If the role lacks the necessary permissions or the token is invalid, expired or missing, the request is promptly rejected.
IPFS
Interact with a private IPFS node to upload and retrieve files. Interact with a private IPFS node to upload and retrieve files. Since GraphQL operates with JSON
payloads and responses, binary data needs to be represented as a string. This API supports both byte arrays (bytea
) and base64-encoded strings.
Upload File
Upload a file to the private IPFS node. The endpoint expects a string with a byte array, for example: [130, 20, 8]
or a base64
encoded string. In other words, the binary data in the file must be encoded in any of these string formats.
The response CID
hash and file type must then be stored so that the file can be retrieved and reconstructed correctly.
HTTP Request Method: POST
GraphQL URL: {{BASE_URL}}/v1/graphql
GraphQL Body
mutation ($file: bytea!) {
v1UploadFile(file: $file) {
res
success
}
}
GraphQL Variables
{
"file": "PHN2ZyB3aWR0aD0iMjI4IiBoZWlnaHQ9IjQ0IiB2aWV3Qm94PSIwIDAgMjI4IDQ0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMzkuOTM4NCAwLjAzMzIzMTZMMjIuODgzIDEuNDg4MkMyMC45NjE3IDEuNjUyMTIgMTkuOTMzNyAzLjg4OTgzIDIxLjAzMjUgNS41MTYwOEwzMC43ODczIDE5Ljk1MTZDMzEuODg2MSAyMS41Nzc5IDM0LjI4ODIgMjEuMzczNCAzNS4xMDk5IDE5LjU4MzNMNDIuNDEwNSAzLjY5Mjc2QzQzLjIzMyAxLjkwMTY3IDQxLjg1OTcgLTAuMTMwNjgzIDM5LjkzODQgMC4wMzMyMzE2WiIgZmlsbD0iI0QyMUE0RCIvPgo8cGF0aCBkPSJNMC4wMjgzNTE3IDIuNzg3NjRMMS40NDU2IDIwLjI5N0MxLjYwNTI2IDIyLjI2OTUgMy43ODQ5NSAyMy4zMjQ4IDUuMzY5MDMgMjIuMTk2OEwxOS40MzAyIDEyLjE4MjNDMjEuMDE0MyAxMS4wNTQzIDIwLjgxNTIgOC41ODgxOCAxOS4wNzE0IDcuNzQ0NjdMMy41OTI5OSAwLjI0OTcyMkMxLjg0ODM1IC0wLjU5NDcxMyAtMC4xMzEzMTMgMC44MTUxMzggMC4wMjgzNTE3IDIuNzg3NjRaIiBmaWxsPSIjNUE1QkVCIi8+CjxwYXRoIGQ9Ik0yLjcxNTM1IDQzLjc1N0wxOS43NzA3IDQyLjMwMkMyMS42OTIxIDQyLjEzODEgMjIuNzIgMzkuOTAwNCAyMS42MjEyIDM4LjI3NDJMMTEuODY2NCAyMy44Mzg2QzEwLjc2NzYgMjIuMjEyNCA4LjM2NTQ5IDIyLjQxNjggNy41NDM4NSAyNC4yMDdMMC4yNDMyNDcgNDAuMDk3NUMtMC41NzkyOTIgNDEuODg4NiAwLjc5NCA0My45MjA5IDIuNzE1MzUgNDMuNzU3WiIgZmlsbD0iI0UwQTIyNSIvPgo8cGF0aCBkPSJNNDIuNjM5NCA0MC45ODYyTDQxLjIyMjEgMjMuNDc2OEM0MS4wNjI1IDIxLjUwNDMgMzguODgyOCAyMC40NDkgMzcuMjk4NyAyMS41NzcxTDIzLjIzNjYgMzEuNTkxNUMyMS42NTI1IDMyLjcxOTYgMjEuODUxNiAzNS4xODU3IDIzLjU5NTQgMzYuMDI5MkwzOS4wNzM5IDQzLjUyNDFDNDAuODE4NSA0NC4zNjg2IDQyLjc5ODIgNDIuOTU4NyA0Mi42Mzk0IDQwLjk4NjJaIiBmaWxsPSIjMjZBNjZCIi8+CjxwYXRoIGQ9Ik02Ni45NjA4IDM3LjQwODVDNjQuOTMgMzcuNDA4NSA2My4xMTcyIDM2LjkwMjEgNjEuNTIyMyAzNS44OUM1OS45MjY2IDM0Ljg3OCA1OC42NjU0IDMzLjQ5MyA1Ny43MzcgMzEuNzM2QzU2LjgwODcgMjkuOTc5OSA1Ni4zNDQ5IDI3Ljk4NDQgNTYuMzQ0OSAyNS43NTA0QzU2LjM0NDkgMjMuNTE3MyA1Ni44MDg3IDIxLjUyOTEgNTcuNzM3IDE5Ljc4NzdDNTguNjY1NCAxOC4wNDU1IDU5LjkyNjYgMTYuNjc2MSA2MS41MjIzIDE1LjY3NzlDNjMuMTE3MiAxNC42ODA2IDY0LjkzMDkgMTQuMTgxNSA2Ni45NjA4IDE0LjE4MTVDNjguNTg1MiAxNC4xODE1IDcwLjAwNjEgMTQuNDk0NiA3MS4yMjQyIDE1LjExOTlDNzIuNDQyMyAxNS43NDUxIDczLjQyODEgMTYuNjIzNiA3NC4xODI1IDE3Ljc1NTRWNS4zMDI0OUg3OS43NTE5TDc5Ljg4MSAzNy40MDg1SDc0LjkyMDdMNzQuMTgzNCAzMy43MDExQzczLjQ4NzMgMzQuNjgzNyA3Mi41NjYxIDM1LjU0NzUgNzEuNDIwNiAzNi4yOTE1QzcwLjI3NDMgMzcuMDM1NiA2OC43ODggMzcuNDA4NSA2Ni45NjA4IDM3LjQwODVaTTY4LjEzNTggMzIuNDA1NUM2OS45MzQzIDMyLjQwNTUgNzEuNDA1NCAzMS43ODc2IDcyLjU1MTcgMzAuNTUxOEM3My42OTcyIDI5LjMxNjkgNzQuMjcwNCAyNy43MzAyIDc0LjI3MDQgMjUuNzk0NkM3NC4yNzA0IDIzLjg1ODkgNzMuNjk3MiAyMi4yNzMyIDcyLjU1MTcgMjEuMDM3NEM3MS40MDU0IDE5LjgwMTYgNjkuOTMzNCAxOS4xODM3IDY4LjEzNTggMTkuMTgzN0M2Ni4zNjYxIDE5LjE4MzcgNjQuOTAxMyAxOS43OTQyIDYzLjc0MTUgMjEuMDE0M0M2Mi41ODA4IDIyLjIzNjMgNjIuMDAxMyAyMy44MTM4IDYyLjAwMTMgMjUuNzQ5NEM2Mi4wMDEzIDI3LjY4NiA2Mi41ODE3IDI5LjI3ODIgNjMuNzQxNSAzMC41Mjg3QzY0LjkwMTMgMzEuNzgwMiA2Ni4zNjYxIDMyLjQwNTUgNjguMTM1OCAzMi40MDU1WiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTkzLjkxODggMzcuNDA4NUM5MS43NDM2IDM3LjQwODUgODkuODE0MiAzNi45MzE1IDg4LjEzMjMgMzUuOTc5M0M4Ni40NDk2IDM1LjAyNjIgODUuMTMwMSAzMy42ODY0IDg0LjE3MyAzMS45NTk3QzgzLjIxNTkgMzAuMjMzMSA4Mi43MzY5IDI4LjIzNzYgODIuNzM2OSAyNS45NzQxQzgyLjczNjkgMjMuNjgxMSA4My4yMDc5IDIxLjY0MTQgODQuMTUwNiAxOS44NTQ5Qzg1LjA5MjQgMTguMDY4NCA4Ni4zOTg0IDE2LjY3NjEgODguMDY2OCAxNS42Nzg4Qzg5LjczNDQgMTQuNjgxNSA5MS42OTk3IDE0LjE4MjQgOTMuOTYyOCAxNC4xODI0Qzk2LjA3OTcgMTQuMTgyNCA5Ny45NTA4IDE0LjY1OTQgOTkuNTc1MiAxNS42MTE2QzEwMS4yIDE2LjU2NDcgMTAyLjQ2OSAxNy44Njc3IDEwMy4zODIgMTkuNTE5N0MxMDQuMjk1IDIxLjE3MTggMTA0Ljc1MyAyMy4wMTE3IDEwNC43NTMgMjUuMDM1N0MxMDQuNzUzIDI1LjM2MzYgMTA0Ljc0NSAyNS43MDYxIDEwNC43MzEgMjYuMDYzNEMxMDQuNzE2IDI2LjQyMDcgMTA0LjY5NCAyNi43OTM3IDEwNC42NjYgMjcuMTgwNEg4OC4yNjMzQzg4LjM3OSAyOC45MDggODguOTY2NSAzMC4yNjI2IDkwLjAyNSAzMS4yNDUxQzkxLjA4MzQgMzIuMjI3NyA5Mi4zNjcgMzIuNzE5NCA5My44NzU4IDMyLjcxOTRDOTUuMDA2OSAzMi43MTk0IDk1Ljk1NjggMzIuNDU4OCA5Ni43MjU1IDMxLjkzNzZDOTcuNDkzMyAzMS40MTczIDk4LjA2NjUgMzAuNzM5NiA5OC40NDQxIDI5LjkwNTNIMTA0LjEwMUMxMDMuNjk0IDMxLjMwNSAxMDMuMDIgMzIuNTc4NiAxMDIuMDc4IDMzLjcyNDFDMTAxLjEzNSAzNC44NzA2IDk5Ljk3NDQgMzUuNzcyMSA5OC41OTc1IDM2LjQyNjlDOTcuMjE3OSAzNy4wODA3IDk1LjY1OSAzNy40MDg1IDkzLjkxODggMzcuNDA4NVpNOTMuOTYxOSAxOC44MjcyQzkyLjU5ODQgMTguODI3MiA5MS4zOTQ3IDE5LjIyMjMgOTAuMzUwNiAyMC4wMTA1Qzg5LjMwNjUgMjAuNzk5NyA4OC42MzkxIDIxLjk5ODcgODguMzQ5NCAyMy42MDY1SDk5LjA5NjJDOTkuMDA5MiAyMi4xNDc5IDk4LjQ4NzIgMjAuOTg2NyA5Ny41MzAxIDIwLjEyMkM5Ni41NzMgMTkuMjU5MSA5NS4zODI3IDE4LjgyNzIgOTMuOTYxOSAxOC44MjcyWiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTExMC41NjcgMzcuNDA4NFYyMC4wMzI2SDEwNy42MDhWMTUuMjUzM0gxMTAuNTY3VjEyLjY2MjlDMTEwLjU2NyA5Ljk4MzE1IDExMS4yMjYgOC4wNzc4OCAxMTIuNTQ2IDYuOTQ1MjFDMTEzLjg2NiA1LjgxNDM4IDExNS42NTcgNS4yNDgwNSAxMTcuOTIgNS4yNDgwNUgxMjAuMzEzVjEwLjExNjdIMTE4Ljc5QzExNy44MzMgMTAuMTE2NyAxMTcuMTUxIDEwLjMxMSAxMTYuNzQ1IDEwLjY5NzdDMTE2LjMzOSAxMS4wODQ1IDExNi4xMzYgMTEuNzQwMiAxMTYuMTM2IDEyLjY2MjlWMTUuMjUzM0gxMjAuNzkxVjIwLjAzMjZIMTE2LjEzNlYzNy40MDg0SDExMC41NjdaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMTMxLjczOSAzNy40MDg2QzEyOS44ODIgMzcuNDA4NiAxMjguMzU5IDM3LjEwMjkgMTI3LjE3MSAzNi40OTI0QzEyNS45ODEgMzUuODgyOCAxMjUuMDk3IDM1LjA3MDYgMTI0LjUxNiAzNC4wNTg1QzEyMy45MzYgMzMuMDQ2NSAxMjMuNjQ2IDMxLjkzMDQgMTIzLjY0NiAzMC43MDg0QzEyMy42NDYgMjguNjUzOSAxMjQuNDI5IDI2Ljk4NjMgMTI1Ljk5NiAyNS43MDYyQzEyNy41NjIgMjQuNDI2MiAxMjkuOTEyIDIzLjc4NTMgMTMzLjA0NCAyMy43ODUzSDEzOC41MjdWMjMuMjQ5NEMxMzguNTI3IDIxLjczMDkgMTM4LjEwNiAyMC42MTM4IDEzNy4yNjUgMTkuODk5M0MxMzYuNDI0IDE5LjE4NDcgMTM1LjM3OSAxOC44Mjc0IDEzNC4xMzIgMTguODI3NEMxMzMuMDAxIDE4LjgyNzQgMTMyLjAxNCAxOS4xMDI3IDEzMS4xNzQgMTkuNjUzNEMxMzAuMzMzIDIwLjIwNSAxMjkuODEgMjEuMDE1MyAxMjkuNjA4IDIyLjA4NzJIMTI0LjE2OUMxMjQuMzE0IDIwLjQ3OTQgMTI0Ljg0NCAxOS4wNzk3IDEyNS43NTcgMTcuODg4MUMxMjYuNjcxIDE2LjY5NzQgMTI3Ljg1MiAxNS43ODIxIDEyOS4zMDMgMTUuMTQxMUMxMzAuNzUzIDE0LjUwMTEgMTMyLjM3NyAxNC4xODA3IDEzNC4xNzYgMTQuMTgwN0MxMzcuMjUgMTQuMTgwNyAxMzkuNjcyIDE0Ljk2OTggMTQxLjQ0MiAxNi41NDgyQzE0My4yMTEgMTguMTI2NiAxNDQuMDk2IDIwLjM1OTcgMTQ0LjA5NiAyMy4yNDg1VjM3LjI1OTVIMTM5LjM1NEwxMzguODMyIDMzLjI5NzlDMTM4LjE5MyAzNC40ODk1IDEzNy4zMDEgMzUuNDcyMSAxMzYuMTU2IDM2LjI0NTZDMTM1LjAwOSAzNy4wMjEgMTMzLjUzNyAzNy40MDg2IDEzMS43MzkgMzcuNDA4NlpNMTMzIDMyLjk0MTVDMTM0LjU5NSAzMi45NDE1IDEzNS44MzUgMzIuNDA1NiAxMzYuNzIgMzEuMzMyOEMxMzcuNjA0IDMwLjI2MDkgMTM4LjE2MiAyOC45MzY3IDEzOC4zOTUgMjcuMzU3NEgxMzMuNjUyQzEzMi4xNzMgMjcuMzU3NCAxMzEuMTE0IDI3LjYzMjcgMTMwLjQ3NiAyOC4xODM0QzEyOS44MzggMjguNzM1IDEyOS41MTkgMjkuNDExOCAxMjkuNTE5IDMwLjIxNTdDMTI5LjUxOSAzMS4wNzk1IDEyOS44MzggMzEuNzQ5OSAxMzAuNDc2IDMyLjIyNkMxMzEuMTE1IDMyLjcwMzkgMTMxLjk1NiAzMi45NDE1IDEzMyAzMi45NDE1WiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTE1OC4yMTkgMzcuNDA4NUMxNTYuMDE0IDM3LjQwODUgMTU0LjA3IDM2LjkxNzcgMTUyLjM4OCAzNS45MzQyQzE1MC43MDUgMzQuOTUxNiAxNDkuMzc5IDMzLjU4MjMgMTQ4LjQwNyAzMS44MjUzQzE0Ny40MzUgMzAuMDY4MyAxNDYuOTUgMjguMDU4IDE0Ni45NSAyNS43OTU0QzE0Ni45NSAyMy41MzI5IDE0Ny40MzUgMjEuNTIyNiAxNDguNDA3IDE5Ljc2NTZDMTQ5LjM3OSAxOC4wMDk1IDE1MC43MDUgMTYuNjM5MyAxNTIuMzg4IDE1LjY1NjdDMTU0LjA3IDE0LjY3NDEgMTU2LjAxNCAxNC4xODI0IDE1OC4yMTkgMTQuMTgyNEMxNjAuOTc0IDE0LjE4MjQgMTYzLjI5NCAxNC45MTkxIDE2NS4xOCAxNi4zOTM0QzE2Ny4wNjUgMTcuODY3NyAxNjguMjY5IDE5LjkgMTY4Ljc5MSAyMi40OTA0SDE2Mi45MThDMTYyLjYyNyAyMS40MTg2IDE2Mi4wNTQgMjAuNTc2OSAxNjEuMTk5IDE5Ljk2NjNDMTYwLjM0NCAxOS4zNTY3IDE1OS4zMzUgMTkuMDUxIDE1OC4xNzYgMTkuMDUxQzE1Ni42MzggMTkuMDUxIDE1NS4zMzIgMTkuNjQ2OCAxNTQuMjU5IDIwLjgzNzVDMTUzLjE4NiAyMi4wMjgyIDE1Mi42NDkgMjMuNjgxMSAxNTIuNjQ5IDI1Ljc5NTRDMTUyLjY0OSAyNy45MDk4IDE1My4xODYgMjkuNTYyNyAxNTQuMjU5IDMwLjc1MzRDMTU1LjMzMiAzMS45NDUgMTU2LjYzOCAzMi41Mzk5IDE1OC4xNzYgMzIuNTM5OUMxNTkuMzM1IDMyLjUzOTkgMTYwLjM0NCAzMi4yNDI0IDE2MS4xOTkgMzEuNjQ2NkMxNjIuMDU0IDMxLjA1MTggMTYyLjYyNyAzMC4yMDI3IDE2Mi45MTggMjkuMTAwNEgxNjguNzkxQzE2OC4yNjkgMzEuNjAxNSAxNjcuMDY1IDMzLjYxMTggMTY1LjE4IDM1LjEzMDNDMTYzLjI5NCAzNi42NDg4IDE2MC45NzQgMzcuNDA4NSAxNTguMjE5IDM3LjQwODVaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMTgyLjgyOCAzNy40MDg0QzE4MC41NjUgMzcuNDA4NCAxNzguNzUyIDM2Ljg0MyAxNzcuMzg5IDM1LjcxMTNDMTc2LjAyNiAzNC41ODA0IDE3NS4zNDQgMzIuNTcwMiAxNzUuMzQ0IDI5LjY4MTRWMjAuMDMyNkgxNzEuNjQ3VjE1LjI1MzNIMTc1LjM0NEwxNzUuOTk3IDkuMzEyNzRIMTgwLjkxNFYxNS4yNTMzSDE4Ni43NDNWMjAuMDMyNkgxODAuOTE0VjI5LjcyNTZDMTgwLjkxNCAzMC43OTc1IDE4MS4xMzggMzEuNTM1MSAxODEuNTg4IDMxLjkzNjZDMTgyLjAzNyAzMi4zMzkgMTgyLjgxMyAzMi41Mzk4IDE4My45MTYgMzIuNTM5OEgxODYuNjEzVjM3LjQwODRIMTgyLjgyOFoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik0yMDAuNjUgMzcuNDA4NkMxOTguNTYxIDM3LjQwODYgMTk2LjY4MiAzNi45MTc4IDE5NS4wMTUgMzUuOTM0M0MxOTMuMzQ3IDM0Ljk1MTggMTkyLjAyNyAzMy41ODg5IDE5MS4wNTYgMzEuODQ3NUMxOTAuMDg0IDMwLjEwNTIgMTg5LjU5OSAyOC4wODg1IDE4OS41OTkgMjUuNzk0N0MxODkuNTk5IDIzLjUwMTcgMTkwLjA5MSAyMS40ODQxIDE5MS4wNzggMTkuNzQxOEMxOTIuMDY0IDE3Ljk5OTUgMTkzLjM5IDE2LjYzNzUgMTk1LjA2IDE1LjY1NUMxOTYuNzI3IDE0LjY3MjQgMTk4LjYwNSAxNC4xODA3IDIwMC42OTQgMTQuMTgwN0MyMDIuNzUyIDE0LjE4MDcgMjA0LjYxNiAxNC42NzE1IDIwNi4yODUgMTUuNjU1QzIwNy45NTIgMTYuNjM3NSAyMDkuMjcyIDE3Ljk5OTUgMjEwLjI0NCAxOS43NDE4QzIxMS4yMTUgMjEuNDg0MSAyMTEuNzAxIDIzLjUwMTcgMjExLjcwMSAyNS43OTQ3QzIxMS43MDEgMjguMDg4NSAyMTEuMjE1IDMwLjEwNTIgMjEwLjI0NCAzMS44NDc1QzIwOS4yNzIgMzMuNTg5OCAyMDcuOTQ1IDM0Ljk1MTggMjA2LjI2MiAzNS45MzQzQzIwNC41NzkgMzYuOTE3OCAyMDIuNzA4IDM3LjQwODYgMjAwLjY1IDM3LjQwODZaTTIwMC42NSAzMi40NTA3QzIwMi4wOTkgMzIuNDUwNyAyMDMuMzYxIDMxLjg5MjYgMjA0LjQzNSAzMC43NzU2QzIwNS41MDggMjkuNjU4NiAyMDYuMDQ1IDI3Ljk5OTIgMjA2LjA0NSAyNS43OTU2QzIwNi4wNDUgMjMuNTkxOSAyMDUuNTA4IDIxLjkzMTYgMjA0LjQzNSAyMC44MTU1QzIwMy4zNjEgMTkuNjk4NSAyMDIuMTE0IDE5LjE0MDUgMjAwLjY5MyAxOS4xNDA1QzE5OS4yMTQgMTkuMTQwNSAxOTcuOTQzIDE5LjY5ODUgMTk2Ljg4NSAyMC44MTU1QzE5NS44MjYgMjEuOTMyNSAxOTUuMjk3IDIzLjU5MTkgMTk1LjI5NyAyNS43OTU2QzE5NS4yOTcgMjcuOTk5MiAxOTUuODI2IDI5LjY1OTUgMTk2Ljg4NSAzMC43NzU2QzE5Ny45NDQgMzEuODkyNiAxOTkuMTk4IDMyLjQ1MDcgMjAwLjY1IDMyLjQ1MDdaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMjE0LjU1NiAzNy40MDg0VjE1LjI1MzJIMjE5LjUxNkwyMjAuMDM4IDE5LjQwNzNDMjIwLjgyMSAxNy45NzgxIDIyMS44ODcgMTYuODM5IDIyMy4yMzYgMTUuOTkwOEMyMjQuNTg1IDE1LjE0MTggMjI2LjE3MyAxNC43MTczIDIyOCAxNC43MTczVjIwLjc0NzFIMjI2LjQzNEMyMjUuMjE2IDIwLjc0NzEgMjI0LjEyOCAyMC45NDE0IDIyMy4xNzEgMjEuMzI3M0MyMjIuMjE0IDIxLjcxNSAyMjEuNDY2IDIyLjM4NDQgMjIwLjkzIDIzLjMzNzVDMjIwLjM5MyAyNC4yOTE1IDIyMC4xMjUgMjUuNjE1OCAyMjAuMTI1IDI3LjMxMjlWMzcuNDA3NUwyMTQuNTU2IDM3LjQwODRaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K"
}
Response
Upon successful completion of a request, the server will issue a status code of 200 along with a JSON object encapsulating the hash. This object encompasses the following attributes:
{
"v1UploadFile": {
"res": {
"hash": "QmPktZrLGnHZSAU3WVNYFZ4V7JUqi16yhK3eiCht4nECsp"
},
"success": true
}
}
In the previous example an xml file with an svg was uploaded, so in a database it's necessary to store the hash of the response and that the file is an xml.
Get File
Retrieve a file from the private IPFS node using the CID
hash. The response must be processed to retrieve the data from the file. In the res
property is the data that must be used to rebuild the file.
The encoding
parameter determines how the data response is encoded, it could be a base64
string or a byte array, for example: [130, 20, 8]
. It's important to know the type of file to build it correctly.
Property | Description |
---|---|
hash | The content identifier CID in version 0 or 1 |
encoding | One of the following values: bytea , base64 . Default: bytea |
HTTP Request Method: POST
GraphQL URL: {{BASE_URL}}/v1/graphql
GraphQL Body
mutation ($hash: String!, $encoding: String) {
v1GetFile(hash: $hash, encoding: $encoding) {
res
success
}
}
GraphQL Variables
{
"hash": "QmPktZrLGnHZSAU3WVNYFZ4V7JUqi16yhK3eiCht4nECsp",
"encoding": "base64"
}
Response
Upon successful completion of a request, the server will issue a status code of 200 along with a JSON object encapsulating the file. This object encompasses the following attributes:
{
"v1GetFile": {
"res": "PHN2ZyB3aWR0aD0iMjI4IiBoZWlnaHQ9IjQ0IiB2aWV3Qm94PSIwIDAgMjI4IDQ0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMzkuOTM4NCAwLjAzMzIzMTZMMjIuODgzIDEuNDg4MkMyMC45NjE3IDEuNjUyMTIgMTkuOTMzNyAzLjg4OTgzIDIxLjAzMjUgNS41MTYwOEwzMC43ODczIDE5Ljk1MTZDMzEuODg2MSAyMS41Nzc5IDM0LjI4ODIgMjEuMzczNCAzNS4xMDk5IDE5LjU4MzNMNDIuNDEwNSAzLjY5Mjc2QzQzLjIzMyAxLjkwMTY3IDQxLjg1OTcgLTAuMTMwNjgzIDM5LjkzODQgMC4wMzMyMzE2WiIgZmlsbD0iI0QyMUE0RCIvPgo8cGF0aCBkPSJNMC4wMjgzNTE3IDIuNzg3NjRMMS40NDU2IDIwLjI5N0MxLjYwNTI2IDIyLjI2OTUgMy43ODQ5NSAyMy4zMjQ4IDUuMzY5MDMgMjIuMTk2OEwxOS40MzAyIDEyLjE4MjNDMjEuMDE0MyAxMS4wNTQzIDIwLjgxNTIgOC41ODgxOCAxOS4wNzE0IDcuNzQ0NjdMMy41OTI5OSAwLjI0OTcyMkMxLjg0ODM1IC0wLjU5NDcxMyAtMC4xMzEzMTMgMC44MTUxMzggMC4wMjgzNTE3IDIuNzg3NjRaIiBmaWxsPSIjNUE1QkVCIi8+CjxwYXRoIGQ9Ik0yLjcxNTM1IDQzLjc1N0wxOS43NzA3IDQyLjMwMkMyMS42OTIxIDQyLjEzODEgMjIuNzIgMzkuOTAwNCAyMS42MjEyIDM4LjI3NDJMMTEuODY2NCAyMy44Mzg2QzEwLjc2NzYgMjIuMjEyNCA4LjM2NTQ5IDIyLjQxNjggNy41NDM4NSAyNC4yMDdMMC4yNDMyNDcgNDAuMDk3NUMtMC41NzkyOTIgNDEuODg4NiAwLjc5NCA0My45MjA5IDIuNzE1MzUgNDMuNzU3WiIgZmlsbD0iI0UwQTIyNSIvPgo8cGF0aCBkPSJNNDIuNjM5NCA0MC45ODYyTDQxLjIyMjEgMjMuNDc2OEM0MS4wNjI1IDIxLjUwNDMgMzguODgyOCAyMC40NDkgMzcuMjk4NyAyMS41NzcxTDIzLjIzNjYgMzEuNTkxNUMyMS42NTI1IDMyLjcxOTYgMjEuODUxNiAzNS4xODU3IDIzLjU5NTQgMzYuMDI5MkwzOS4wNzM5IDQzLjUyNDFDNDAuODE4NSA0NC4zNjg2IDQyLjc5ODIgNDIuOTU4NyA0Mi42Mzk0IDQwLjk4NjJaIiBmaWxsPSIjMjZBNjZCIi8+CjxwYXRoIGQ9Ik02Ni45NjA4IDM3LjQwODVDNjQuOTMgMzcuNDA4NSA2My4xMTcyIDM2LjkwMjEgNjEuNTIyMyAzNS44OUM1OS45MjY2IDM0Ljg3OCA1OC42NjU0IDMzLjQ5MyA1Ny43MzcgMzEuNzM2QzU2LjgwODcgMjkuOTc5OSA1Ni4zNDQ5IDI3Ljk4NDQgNTYuMzQ0OSAyNS43NTA0QzU2LjM0NDkgMjMuNTE3MyA1Ni44MDg3IDIxLjUyOTEgNTcuNzM3IDE5Ljc4NzdDNTguNjY1NCAxOC4wNDU1IDU5LjkyNjYgMTYuNjc2MSA2MS41MjIzIDE1LjY3NzlDNjMuMTE3MiAxNC42ODA2IDY0LjkzMDkgMTQuMTgxNSA2Ni45NjA4IDE0LjE4MTVDNjguNTg1MiAxNC4xODE1IDcwLjAwNjEgMTQuNDk0NiA3MS4yMjQyIDE1LjExOTlDNzIuNDQyMyAxNS43NDUxIDczLjQyODEgMTYuNjIzNiA3NC4xODI1IDE3Ljc1NTRWNS4zMDI0OUg3OS43NTE5TDc5Ljg4MSAzNy40MDg1SDc0LjkyMDdMNzQuMTgzNCAzMy43MDExQzczLjQ4NzMgMzQuNjgzNyA3Mi41NjYxIDM1LjU0NzUgNzEuNDIwNiAzNi4yOTE1QzcwLjI3NDMgMzcuMDM1NiA2OC43ODggMzcuNDA4NSA2Ni45NjA4IDM3LjQwODVaTTY4LjEzNTggMzIuNDA1NUM2OS45MzQzIDMyLjQwNTUgNzEuNDA1NCAzMS43ODc2IDcyLjU1MTcgMzAuNTUxOEM3My42OTcyIDI5LjMxNjkgNzQuMjcwNCAyNy43MzAyIDc0LjI3MDQgMjUuNzk0NkM3NC4yNzA0IDIzLjg1ODkgNzMuNjk3MiAyMi4yNzMyIDcyLjU1MTcgMjEuMDM3NEM3MS40MDU0IDE5LjgwMTYgNjkuOTMzNCAxOS4xODM3IDY4LjEzNTggMTkuMTgzN0M2Ni4zNjYxIDE5LjE4MzcgNjQuOTAxMyAxOS43OTQyIDYzLjc0MTUgMjEuMDE0M0M2Mi41ODA4IDIyLjIzNjMgNjIuMDAxMyAyMy44MTM4IDYyLjAwMTMgMjUuNzQ5NEM2Mi4wMDEzIDI3LjY4NiA2Mi41ODE3IDI5LjI3ODIgNjMuNzQxNSAzMC41Mjg3QzY0LjkwMTMgMzEuNzgwMiA2Ni4zNjYxIDMyLjQwNTUgNjguMTM1OCAzMi40MDU1WiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTkzLjkxODggMzcuNDA4NUM5MS43NDM2IDM3LjQwODUgODkuODE0MiAzNi45MzE1IDg4LjEzMjMgMzUuOTc5M0M4Ni40NDk2IDM1LjAyNjIgODUuMTMwMSAzMy42ODY0IDg0LjE3MyAzMS45NTk3QzgzLjIxNTkgMzAuMjMzMSA4Mi43MzY5IDI4LjIzNzYgODIuNzM2OSAyNS45NzQxQzgyLjczNjkgMjMuNjgxMSA4My4yMDc5IDIxLjY0MTQgODQuMTUwNiAxOS44NTQ5Qzg1LjA5MjQgMTguMDY4NCA4Ni4zOTg0IDE2LjY3NjEgODguMDY2OCAxNS42Nzg4Qzg5LjczNDQgMTQuNjgxNSA5MS42OTk3IDE0LjE4MjQgOTMuOTYyOCAxNC4xODI0Qzk2LjA3OTcgMTQuMTgyNCA5Ny45NTA4IDE0LjY1OTQgOTkuNTc1MiAxNS42MTE2QzEwMS4yIDE2LjU2NDcgMTAyLjQ2OSAxNy44Njc3IDEwMy4zODIgMTkuNTE5N0MxMDQuMjk1IDIxLjE3MTggMTA0Ljc1MyAyMy4wMTE3IDEwNC43NTMgMjUuMDM1N0MxMDQuNzUzIDI1LjM2MzYgMTA0Ljc0NSAyNS43MDYxIDEwNC43MzEgMjYuMDYzNEMxMDQuNzE2IDI2LjQyMDcgMTA0LjY5NCAyNi43OTM3IDEwNC42NjYgMjcuMTgwNEg4OC4yNjMzQzg4LjM3OSAyOC45MDggODguOTY2NSAzMC4yNjI2IDkwLjAyNSAzMS4yNDUxQzkxLjA4MzQgMzIuMjI3NyA5Mi4zNjcgMzIuNzE5NCA5My44NzU4IDMyLjcxOTRDOTUuMDA2OSAzMi43MTk0IDk1Ljk1NjggMzIuNDU4OCA5Ni43MjU1IDMxLjkzNzZDOTcuNDkzMyAzMS40MTczIDk4LjA2NjUgMzAuNzM5NiA5OC40NDQxIDI5LjkwNTNIMTA0LjEwMUMxMDMuNjk0IDMxLjMwNSAxMDMuMDIgMzIuNTc4NiAxMDIuMDc4IDMzLjcyNDFDMTAxLjEzNSAzNC44NzA2IDk5Ljk3NDQgMzUuNzcyMSA5OC41OTc1IDM2LjQyNjlDOTcuMjE3OSAzNy4wODA3IDk1LjY1OSAzNy40MDg1IDkzLjkxODggMzcuNDA4NVpNOTMuOTYxOSAxOC44MjcyQzkyLjU5ODQgMTguODI3MiA5MS4zOTQ3IDE5LjIyMjMgOTAuMzUwNiAyMC4wMTA1Qzg5LjMwNjUgMjAuNzk5NyA4OC42MzkxIDIxLjk5ODcgODguMzQ5NCAyMy42MDY1SDk5LjA5NjJDOTkuMDA5MiAyMi4xNDc5IDk4LjQ4NzIgMjAuOTg2NyA5Ny41MzAxIDIwLjEyMkM5Ni41NzMgMTkuMjU5MSA5NS4zODI3IDE4LjgyNzIgOTMuOTYxOSAxOC44MjcyWiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTExMC41NjcgMzcuNDA4NFYyMC4wMzI2SDEwNy42MDhWMTUuMjUzM0gxMTAuNTY3VjEyLjY2MjlDMTEwLjU2NyA5Ljk4MzE1IDExMS4yMjYgOC4wNzc4OCAxMTIuNTQ2IDYuOTQ1MjFDMTEzLjg2NiA1LjgxNDM4IDExNS42NTcgNS4yNDgwNSAxMTcuOTIgNS4yNDgwNUgxMjAuMzEzVjEwLjExNjdIMTE4Ljc5QzExNy44MzMgMTAuMTE2NyAxMTcuMTUxIDEwLjMxMSAxMTYuNzQ1IDEwLjY5NzdDMTE2LjMzOSAxMS4wODQ1IDExNi4xMzYgMTEuNzQwMiAxMTYuMTM2IDEyLjY2MjlWMTUuMjUzM0gxMjAuNzkxVjIwLjAzMjZIMTE2LjEzNlYzNy40MDg0SDExMC41NjdaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMTMxLjczOSAzNy40MDg2QzEyOS44ODIgMzcuNDA4NiAxMjguMzU5IDM3LjEwMjkgMTI3LjE3MSAzNi40OTI0QzEyNS45ODEgMzUuODgyOCAxMjUuMDk3IDM1LjA3MDYgMTI0LjUxNiAzNC4wNTg1QzEyMy45MzYgMzMuMDQ2NSAxMjMuNjQ2IDMxLjkzMDQgMTIzLjY0NiAzMC43MDg0QzEyMy42NDYgMjguNjUzOSAxMjQuNDI5IDI2Ljk4NjMgMTI1Ljk5NiAyNS43MDYyQzEyNy41NjIgMjQuNDI2MiAxMjkuOTEyIDIzLjc4NTMgMTMzLjA0NCAyMy43ODUzSDEzOC41MjdWMjMuMjQ5NEMxMzguNTI3IDIxLjczMDkgMTM4LjEwNiAyMC42MTM4IDEzNy4yNjUgMTkuODk5M0MxMzYuNDI0IDE5LjE4NDcgMTM1LjM3OSAxOC44Mjc0IDEzNC4xMzIgMTguODI3NEMxMzMuMDAxIDE4LjgyNzQgMTMyLjAxNCAxOS4xMDI3IDEzMS4xNzQgMTkuNjUzNEMxMzAuMzMzIDIwLjIwNSAxMjkuODEgMjEuMDE1MyAxMjkuNjA4IDIyLjA4NzJIMTI0LjE2OUMxMjQuMzE0IDIwLjQ3OTQgMTI0Ljg0NCAxOS4wNzk3IDEyNS43NTcgMTcuODg4MUMxMjYuNjcxIDE2LjY5NzQgMTI3Ljg1MiAxNS43ODIxIDEyOS4zMDMgMTUuMTQxMUMxMzAuNzUzIDE0LjUwMTEgMTMyLjM3NyAxNC4xODA3IDEzNC4xNzYgMTQuMTgwN0MxMzcuMjUgMTQuMTgwNyAxMzkuNjcyIDE0Ljk2OTggMTQxLjQ0MiAxNi41NDgyQzE0My4yMTEgMTguMTI2NiAxNDQuMDk2IDIwLjM1OTcgMTQ0LjA5NiAyMy4yNDg1VjM3LjI1OTVIMTM5LjM1NEwxMzguODMyIDMzLjI5NzlDMTM4LjE5MyAzNC40ODk1IDEzNy4zMDEgMzUuNDcyMSAxMzYuMTU2IDM2LjI0NTZDMTM1LjAwOSAzNy4wMjEgMTMzLjUzNyAzNy40MDg2IDEzMS43MzkgMzcuNDA4NlpNMTMzIDMyLjk0MTVDMTM0LjU5NSAzMi45NDE1IDEzNS44MzUgMzIuNDA1NiAxMzYuNzIgMzEuMzMyOEMxMzcuNjA0IDMwLjI2MDkgMTM4LjE2MiAyOC45MzY3IDEzOC4zOTUgMjcuMzU3NEgxMzMuNjUyQzEzMi4xNzMgMjcuMzU3NCAxMzEuMTE0IDI3LjYzMjcgMTMwLjQ3NiAyOC4xODM0QzEyOS44MzggMjguNzM1IDEyOS41MTkgMjkuNDExOCAxMjkuNTE5IDMwLjIxNTdDMTI5LjUxOSAzMS4wNzk1IDEyOS44MzggMzEuNzQ5OSAxMzAuNDc2IDMyLjIyNkMxMzEuMTE1IDMyLjcwMzkgMTMxLjk1NiAzMi45NDE1IDEzMyAzMi45NDE1WiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTE1OC4yMTkgMzcuNDA4NUMxNTYuMDE0IDM3LjQwODUgMTU0LjA3IDM2LjkxNzcgMTUyLjM4OCAzNS45MzQyQzE1MC43MDUgMzQuOTUxNiAxNDkuMzc5IDMzLjU4MjMgMTQ4LjQwNyAzMS44MjUzQzE0Ny40MzUgMzAuMDY4MyAxNDYuOTUgMjguMDU4IDE0Ni45NSAyNS43OTU0QzE0Ni45NSAyMy41MzI5IDE0Ny40MzUgMjEuNTIyNiAxNDguNDA3IDE5Ljc2NTZDMTQ5LjM3OSAxOC4wMDk1IDE1MC43MDUgMTYuNjM5MyAxNTIuMzg4IDE1LjY1NjdDMTU0LjA3IDE0LjY3NDEgMTU2LjAxNCAxNC4xODI0IDE1OC4yMTkgMTQuMTgyNEMxNjAuOTc0IDE0LjE4MjQgMTYzLjI5NCAxNC45MTkxIDE2NS4xOCAxNi4zOTM0QzE2Ny4wNjUgMTcuODY3NyAxNjguMjY5IDE5LjkgMTY4Ljc5MSAyMi40OTA0SDE2Mi45MThDMTYyLjYyNyAyMS40MTg2IDE2Mi4wNTQgMjAuNTc2OSAxNjEuMTk5IDE5Ljk2NjNDMTYwLjM0NCAxOS4zNTY3IDE1OS4zMzUgMTkuMDUxIDE1OC4xNzYgMTkuMDUxQzE1Ni42MzggMTkuMDUxIDE1NS4zMzIgMTkuNjQ2OCAxNTQuMjU5IDIwLjgzNzVDMTUzLjE4NiAyMi4wMjgyIDE1Mi42NDkgMjMuNjgxMSAxNTIuNjQ5IDI1Ljc5NTRDMTUyLjY0OSAyNy45MDk4IDE1My4xODYgMjkuNTYyNyAxNTQuMjU5IDMwLjc1MzRDMTU1LjMzMiAzMS45NDUgMTU2LjYzOCAzMi41Mzk5IDE1OC4xNzYgMzIuNTM5OUMxNTkuMzM1IDMyLjUzOTkgMTYwLjM0NCAzMi4yNDI0IDE2MS4xOTkgMzEuNjQ2NkMxNjIuMDU0IDMxLjA1MTggMTYyLjYyNyAzMC4yMDI3IDE2Mi45MTggMjkuMTAwNEgxNjguNzkxQzE2OC4yNjkgMzEuNjAxNSAxNjcuMDY1IDMzLjYxMTggMTY1LjE4IDM1LjEzMDNDMTYzLjI5NCAzNi42NDg4IDE2MC45NzQgMzcuNDA4NSAxNTguMjE5IDM3LjQwODVaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMTgyLjgyOCAzNy40MDg0QzE4MC41NjUgMzcuNDA4NCAxNzguNzUyIDM2Ljg0MyAxNzcuMzg5IDM1LjcxMTNDMTc2LjAyNiAzNC41ODA0IDE3NS4zNDQgMzIuNTcwMiAxNzUuMzQ0IDI5LjY4MTRWMjAuMDMyNkgxNzEuNjQ3VjE1LjI1MzNIMTc1LjM0NEwxNzUuOTk3IDkuMzEyNzRIMTgwLjkxNFYxNS4yNTMzSDE4Ni43NDNWMjAuMDMyNkgxODAuOTE0VjI5LjcyNTZDMTgwLjkxNCAzMC43OTc1IDE4MS4xMzggMzEuNTM1MSAxODEuNTg4IDMxLjkzNjZDMTgyLjAzNyAzMi4zMzkgMTgyLjgxMyAzMi41Mzk4IDE4My45MTYgMzIuNTM5OEgxODYuNjEzVjM3LjQwODRIMTgyLjgyOFoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik0yMDAuNjUgMzcuNDA4NkMxOTguNTYxIDM3LjQwODYgMTk2LjY4MiAzNi45MTc4IDE5NS4wMTUgMzUuOTM0M0MxOTMuMzQ3IDM0Ljk1MTggMTkyLjAyNyAzMy41ODg5IDE5MS4wNTYgMzEuODQ3NUMxOTAuMDg0IDMwLjEwNTIgMTg5LjU5OSAyOC4wODg1IDE4OS41OTkgMjUuNzk0N0MxODkuNTk5IDIzLjUwMTcgMTkwLjA5MSAyMS40ODQxIDE5MS4wNzggMTkuNzQxOEMxOTIuMDY0IDE3Ljk5OTUgMTkzLjM5IDE2LjYzNzUgMTk1LjA2IDE1LjY1NUMxOTYuNzI3IDE0LjY3MjQgMTk4LjYwNSAxNC4xODA3IDIwMC42OTQgMTQuMTgwN0MyMDIuNzUyIDE0LjE4MDcgMjA0LjYxNiAxNC42NzE1IDIwNi4yODUgMTUuNjU1QzIwNy45NTIgMTYuNjM3NSAyMDkuMjcyIDE3Ljk5OTUgMjEwLjI0NCAxOS43NDE4QzIxMS4yMTUgMjEuNDg0MSAyMTEuNzAxIDIzLjUwMTcgMjExLjcwMSAyNS43OTQ3QzIxMS43MDEgMjguMDg4NSAyMTEuMjE1IDMwLjEwNTIgMjEwLjI0NCAzMS44NDc1QzIwOS4yNzIgMzMuNTg5OCAyMDcuOTQ1IDM0Ljk1MTggMjA2LjI2MiAzNS45MzQzQzIwNC41NzkgMzYuOTE3OCAyMDIuNzA4IDM3LjQwODYgMjAwLjY1IDM3LjQwODZaTTIwMC42NSAzMi40NTA3QzIwMi4wOTkgMzIuNDUwNyAyMDMuMzYxIDMxLjg5MjYgMjA0LjQzNSAzMC43NzU2QzIwNS41MDggMjkuNjU4NiAyMDYuMDQ1IDI3Ljk5OTIgMjA2LjA0NSAyNS43OTU2QzIwNi4wNDUgMjMuNTkxOSAyMDUuNTA4IDIxLjkzMTYgMjA0LjQzNSAyMC44MTU1QzIwMy4zNjEgMTkuNjk4NSAyMDIuMTE0IDE5LjE0MDUgMjAwLjY5MyAxOS4xNDA1QzE5OS4yMTQgMTkuMTQwNSAxOTcuOTQzIDE5LjY5ODUgMTk2Ljg4NSAyMC44MTU1QzE5NS44MjYgMjEuOTMyNSAxOTUuMjk3IDIzLjU5MTkgMTk1LjI5NyAyNS43OTU2QzE5NS4yOTcgMjcuOTk5MiAxOTUuODI2IDI5LjY1OTUgMTk2Ljg4NSAzMC43NzU2QzE5Ny45NDQgMzEuODkyNiAxOTkuMTk4IDMyLjQ1MDcgMjAwLjY1IDMyLjQ1MDdaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMjE0LjU1NiAzNy40MDg0VjE1LjI1MzJIMjE5LjUxNkwyMjAuMDM4IDE5LjQwNzNDMjIwLjgyMSAxNy45NzgxIDIyMS44ODcgMTYuODM5IDIyMy4yMzYgMTUuOTkwOEMyMjQuNTg1IDE1LjE0MTggMjI2LjE3MyAxNC43MTczIDIyOCAxNC43MTczVjIwLjc0NzFIMjI2LjQzNEMyMjUuMjE2IDIwLjc0NzEgMjI0LjEyOCAyMC45NDE0IDIyMy4xNzEgMjEuMzI3M0MyMjIuMjE0IDIxLjcxNSAyMjEuNDY2IDIyLjM4NDQgMjIwLjkzIDIzLjMzNzVDMjIwLjM5MyAyNC4yOTE1IDIyMC4xMjUgMjUuNjE1OCAyMjAuMTI1IDI3LjMxMjlWMzcuNDA3NUwyMTQuNTU2IDM3LjQwODRaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K"
"success": true
}
}
Error Reference
Error Response Format
The errors have the GraphQL error schema, an object with an errors
array property where each item has the following schema:
Property | Description |
---|---|
message | The description of the error |
extensions | An object with the path to the field that caused the error, and the error code |
Examples
The variable has a wrong type:
{
"errors": [
{
"message": "expected a string for type 'String', but found a number",
"extensions": {
"path": "$.selectionSet.v1UploadFile.args.file",
"code": "validation-failed"
}
}
]
}
The variable is missing in the request body:
{
"errors": [
{
"message": "missing required field 'hash'",
"extensions": {
"path": "$.selectionSet.v1GetFile.args.hash",
"code": "validation-failed"
}
}
]
}
The field does not exists or the role has no permissions:
{
"errors": [
{
"message": "field 'v1UploadFile' not found in type: 'mutation_root'",
"extensions": {
"path": "$.selectionSet.v1UploadFile",
"code": "validation-failed"
}
}
]
}
The variable is not in the request body schema:
{
"errors": [
{
"message": "Unexpected variable data",
"extensions": {
"path": "$",
"code": "bad-request"
}
}
]
}
The GraphQL variables object is not a valid json:
{
"errors": [
{
"message": "Error in $: Failed reading: satisfy. Expecting object value at X",
"extensions": {
"path": "$",
"code": "invalid-json"
}
}
]
}
The endpoint does not exists:
{
"errors": [
{
"message": "Endpoint not found",
"extensions": {
"path": "$",
"code": "not-found"
}
}
]
}
Error processing the request:
{
"errors": [
{
"message": "The hash is an invalid CID",
"extensions": {
"path": "$",
"code": "unexpected"
}
}
]
}
Types of Error
General
Error Message | Reason |
---|---|
Could not verify JWT: JWT error | The JWT is invalid |
Invalid request payload input | The data format is not as expected. |
IPFS
Error Message | Reason |
---|---|
An error occurred while interacting with the ipfs endpoint | An error occurs on the server |
The hash is an invalid CID | The provided string is not a content identifier. |
The IPFS file with the hash "hash" cannot be found | The file does not exist or the IPFS node failed |