Learn
Raw Queries
Requires a connected Neo4j instance
This endpoint is only available when your project is connected to your own Neo4j database. Connecting a custom Neo4j instance is available on the free tier — see the RushDB dashboard to set it up.
Run arbitrary Cypher queries against your connected Neo4j database. This is intended for advanced use-cases where the SearchQuery API is not expressive enough.
Basic Usage
- Python
- TypeScript
- shell
db.query.raw()
from rushdb import RushDB
db = RushDB("RUSHDB_API_KEY")
result = db.query.raw({
"query": "MATCH (n:Person) RETURN n LIMIT $limit",
"params": {"limit": 10}
})
print(result.get("data"))
db.query.raw()
const result = await db.query.raw({
query: 'MATCH (n:Person) RETURN n LIMIT $limit',
params: { limit: 10 }
})
// `result` contains the server response with query records as returned by Neo4j driver
console.log(result)
POST /api/v1/query/raw
curl -X POST https://api.rushdb.com/api/v1/query/raw \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $RUSHDB_API_KEY" \
-d '{
"query": "MATCH (n:Person) RETURN n LIMIT $limit",
"params": { "limit": 10 }
}'
Response: raw Neo4j driver result object.
Real-World Example
Find people employed by a company and return selected fields:
- Python
- TypeScript
- shell
company = "Acme Corp"
result = db.query.raw({
"query": """
MATCH (c:Company { name: $company })<-[:EMPLOYS]-(p:Person)
RETURN p { .name, .email, company: c.name } AS employee
ORDER BY p.name
LIMIT $limit
""",
"params": {"company": company, "limit": 50}
})
print(result.get("data"))
const company = 'Acme Corp'
const result = await db.query.raw({
query: `
MATCH (c:Company { name: $company })<-[:EMPLOYS]-(p:Person)
RETURN p { .name, .email, company: c.name } AS employee
ORDER BY p.name
LIMIT $limit
`,
params: { company, limit: 50 }
})
console.log(result.data)
curl -X POST https://api.rushdb.com/api/v1/query/raw \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $RUSHDB_API_KEY" \
-d '{
"query": "MATCH (c:Company { name: $company })<-[:EMPLOYS]-(p:Person) RETURN p { .name, .email, company: c.name } AS employee ORDER BY p.name LIMIT $limit",
"params": { "company": "Acme Corp", "limit": 50 }
}'
See also
- Find & Query — SearchQuery API (recommended for most use cases)
- Connect Records — relationship traversal via SearchQuery