Fluree HTTP API
/fluree/create
POST /fluree/create
Request Object
Key | Required | Value |
---|---|---|
@context | no | object • a map of terms for the creation transaction (See our Guide on Using Context) |
ledger | yes | string • the name of the created ledger |
insert | yes | object or array • the first transaction for the ledger (think of this as an initial commit when working with git ) |
Example Request Object
{ "@context": { "ex": "http://example.org/", "schema": "http://schema.org/" }, "ledger": "cookbook/base", "insert": [ { "@id": "ex:freddy", "@type": "ex:Yeti", "schema:age": 4, "schema:name": "Freddy", "ex:verified": true } ]}
Curl Example
curl --location 'http://localhost:58090/fluree/create' --header 'Content-Type: application/json' --data '{ "@context": { "ex": "http://example.org/", "schema": "http://schema.org/" }, "ledger": "cookbook/base", "insert": [ { "@id": "ex:freddy", "@type": "ex:Yeti", "schema:age": 4, "schema:name": "Freddy", "ex:verified": true } ]}'
Example response
{ "address": "fluree:file://cookbook/base/main/head", "alias": "cookbook/base", "t": 1}
/fluree/transact
POST /fluree/transact
Commit a transaction to a ledger.
Request Object
Key | Required | Value |
---|---|---|
@context | no | object • a map of terms for the transaction (See our Guide on Using Context) |
ledger | yes | string • the name of the existing ledger |
insert | no | object or array • data to be asserted |
where | no | object or array • a subquery to bind logic variables for use in your delete and/or insert clauses |
delete | no | object or array • data to be retracted |
NOTE: While
insert
,delete
, andwhere
are not required, either/bothinsert
&delete
must be used to qualify a valid transaction. You could only insert data, you could only delete data, or you could use bothinsert
+delete
to qualify a sort of update to data state.
Example Request Object
{ "@context": { "schema": "http://schema.org/" }, "ledger": "cookbook/base", "where": { "@id": "?s", "schema:description": "We ❤️ All Blood" }, "delete": { "@id": "?s", "schema:description": "We ❤️ All Blood" }, "insert": { "@id": "?s", "schema:description": ["We ❤️ Human Blood", "We ❤️ Animal Blood"] }}
Curl Example
curl --location 'http://localhost:58090/fluree/transact' --header 'Content-Type: application/json' --data $'{ "@context": { "schema": "http://schema.org/" }, "ledger": "cookbook/base", "where": { "@id": "?s", "schema:description": "We ❤️ All Blood" }, "delete": { "@id": "?s", "schema:description": "We ❤️ All Blood" }, "insert": { "@id": "?s", "schema:description": ["We ❤️ Human Blood", "We ❤️ Animal Blood"] }}'
Example Response
{ "address": "fluree:file://cookbook/base/main/head", "alias": "cookbook/base", "t": 2}
/fluree/query
POST /fluree/query
Request Object
Key | Required | Value |
---|---|---|
@context | no | object • a map of terms for the query and the result set (See our Guide on Using Context) |
from | yes | string • the name of the existing ledger |
where | no | object or array • a subquery to set query constraingts and bind logic variables for use in your select clause See our Reference Doc on FlureeQL Query Syntax |
select | yes | object or array • a clause used to format the projected result set of your query See our Reference Doc on FlureeQL Query Syntax |
groupBy | no | string • an optional clause used to group the projected result set of your query See our Reference Doc on FlureeQL Query Syntax |
having | no | string or array • an optional clause used to filter the projected result set of your query (requires the use of groupBy ) |
orderBy | no | string • an optional clause used to order the projected result set of your query See our Reference Doc on FlureeQL Query Syntax |
opts | no | object • an optional object used to set query options, such as the role or did identity of the querying entity |
Example Request Object
{ "@context": { "ex": "http://example.org/", "schema": "http://schema.org/" }, "from": "cookbook/base", "where": { "@id": "?s", "schema:name": "?name" }, "select": { "?s": ["*"] }}
Curl Example
curl --location 'http://localhost:58090/fluree/query' --header 'Content-Type: application/json' --data '{ "@context": { "ex": "http://example.org/", "schema": "http://schema.org/" }, "from": "cookbook/base", "where": { "@id": "?s", "schema:name": "?name" }, "select": {"?s": ["*"]}}'
Example Response
[ { "@id": "ex:andrew", "@type": "schema:Person", "schema:name": "Andrew Johnson", "schema:age": 35, "schema:follows": [ { "@id": "ex:freddy" }, { "@id": "ex:letty" }, { "@id": "ex:betty" } ] }, { "@id": "ex:betty", "@type": "ex:Yeti", "schema:name": "Betty", "schema:age": 82, "schema:follows": { "@id": "ex:freddy" } }, { "@id": "ex:freddy", "@type": "ex:Yeti", "schema:name": "Freddy", "schema:age": 4, "ex:verified": true }, { "@id": "ex:letty", "@type": "ex:Yeti", "schema:name": "Leticia", "schema:age": 2, "schema:follows": { "@id": "ex:freddy" }, "ex:nickname": "Letty" }]
/fluree/history
POST /fluree/history
Request Object
Key | Required | Value |
---|---|---|
@context | no | object • a map of terms for the history query and the result set (See our Guide on Using Context) |
from | yes | string • the name of the existing ledger |
history | yes | string or array • used to express the entity or entity patterns for which you are auditing history (See the Reference section for Constraining Nodes) |
t | yes | object • used to express individual commit/time values or ranges of commit/time values (See the Reference section for Constraining by Time) |
commit-details | no | boolean. A flag for whether or not to include the full details for each commit included in the history response (See the Reference section for Including Commit Details) |
Example Request Object
{ "@context": { "schema": "http://schema.org/" }, "from": "cookbook/base", "history": [null, "schema:name"], "t": { "from": 1 }}
Curl Example
curl --location 'http://localhost:58090/fluree/query' --header 'Content-Type: application/json' --data '{ "@context": { "schema": "http://schema.org/" }, "from": "cookbook/base", "history": [null, "schema:name"], "t": { "from": 1 }}'
Example Response
[ { "f:t": 1, "f:assert": [ { "schema:name": "Andrew Johnson", "id": "ex:andrew" }, { "schema:name": "Betty", "id": "ex:betty" }, { "schema:name": "Freddy", "id": "ex:freddy" }, { "schema:name": "Leticia", "id": "ex:letty" } ], "f:retract": [] }, { "f:t": 2, "f:assert": [ { "schema:name": "Andy the Yeti", "id": "ex:andrew" } ], "f:retract": [] }]