GraphQL API Reference¶
AIDDDMAP provides a powerful GraphQL API for flexible data querying and manipulation. This guide covers the available queries, mutations, and subscriptions.
Getting Started¶
Base URL¶
Authentication¶
All GraphQL requests require authentication using a Bearer token:
Schema Types¶
User¶
type User {
id: ID!
name: String
email: String
role: UserRole!
createdAt: DateTime!
updatedAt: DateTime!
}
enum UserRole {
USER
ADMIN
DEVELOPER
}
Dataset¶
type Dataset {
id: ID!
name: String!
description: String
owner: User!
isEncrypted: Boolean!
encryptionType: EncryptionType
createdAt: DateTime!
updatedAt: DateTime!
}
enum EncryptionType {
NONE
BASIC
FHE
ZK
}
Agent¶
type Agent {
id: ID!
name: String!
description: String
creator: User!
capabilities: [Capability!]!
status: AgentStatus!
}
enum AgentStatus {
ACTIVE
INACTIVE
TRAINING
}
Queries¶
Get User Profile¶
List Datasets¶
query ListDatasets($first: Int, $after: String) {
datasets(first: $first, after: $after) {
edges {
node {
id
name
description
isEncrypted
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
Get Agent Details¶
Mutations¶
Create Dataset¶
mutation CreateDataset($input: CreateDatasetInput!) {
createDataset(input: $input) {
dataset {
id
name
description
}
}
}
Deploy Agent¶
mutation DeployAgent($input: DeployAgentInput!) {
deployAgent(input: $input) {
agent {
id
status
}
}
}
Update Encryption Settings¶
mutation UpdateEncryption($input: UpdateEncryptionInput!) {
updateEncryption(input: $input) {
dataset {
id
isEncrypted
encryptionType
}
}
}
Subscriptions¶
Dataset Updates¶
Agent Status Changes¶
Error Handling¶
GraphQL errors follow this structure:
{
"errors": [
{
"message": "Error message",
"path": ["query", "field"],
"extensions": {
"code": "ERROR_CODE"
}
}
]
}
Common error codes:
UNAUTHORIZED: Authentication requiredFORBIDDEN: Insufficient permissionsNOT_FOUND: Resource not foundVALIDATION_ERROR: Invalid input
Rate Limiting¶
- 1000 requests per hour per API token
- Responses include rate limit headers:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset
Best Practices¶
- Use fragments for reusable fields
- Request only needed fields
- Implement proper error handling
- Use pagination for large datasets
- Consider caching frequently used queries
Tools and Resources¶
- GraphQL Playground: Available at
https://api.aidddmap.com/graphql - Schema Documentation: Auto-generated in the Playground
- Client Libraries:
- Apollo Client for JavaScript/TypeScript
- GraphQL Code Generator for type generation