Skip to main content

Fluree HTTP API

/fluree/create


POST /fluree/create

Request Object

KeyRequiredValue
@contextnoobject • a map of terms for the creation transaction (See our Guide on Using Context)
ledgeryesstring • the name of the created ledger
insertyesobject 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

KeyRequiredValue
@contextnoobject • a map of terms for the transaction (See our Guide on Using Context)
ledgeryesstring • the name of the existing ledger
insertnoobject or array • data to be asserted
wherenoobject or array • a subquery to bind logic variables for use in your delete and/or insert clauses
deletenoobject or array • data to be retracted

NOTE: While insert, delete, and where are not required, either/both insert & delete must be used to qualify a valid transaction. You could only insert data, you could only delete data, or you could use both insert + 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

KeyRequiredValue
@contextnoobject • a map of terms for the query and the result set (See our Guide on Using Context)
fromyesstring • the name of the existing ledger
wherenoobject 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
selectyesobject or array • a clause used to format the projected result set of your query See our Reference Doc on FlureeQL Query Syntax
groupBynostring • an optional clause used to group the projected result set of your query See our Reference Doc on FlureeQL Query Syntax
havingnostring or array • an optional clause used to filter the projected result set of your query (requires the use of groupBy)
orderBynostring • an optional clause used to order the projected result set of your query See our Reference Doc on FlureeQL Query Syntax
optsnoobject • 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

KeyRequiredValue
@contextnoobject • a map of terms for the history query and the result set (See our Guide on Using Context)
fromyesstring • the name of the existing ledger
historyyesstring or array • used to express the entity or entity patterns for which you are auditing history (See the Reference section for Constraining Nodes)
tyesobject • used to express individual commit/time values or ranges of commit/time values (See the Reference section for Constraining by Time)
commit-detailsnoboolean. 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": []
}
]