{"name":"Logbook API","version":"v1","description":"Read-only access to public Logbook data. Writing and private campaigns go through the SDK, the MCP servers or the Move package directly; `deployment` names the package, Config and Registry ids.","docs":"https://logbook.zone/docs?doc=api-sdk","sdk":"@logbookprotocol/sdk","mcp":"https://www.npmjs.com/package/@logbookprotocol/mcp","deployment":{"network":"testnet","packageId":"0xeae8956e21056a0c2bb15d9578f5dc2ea6117241c8acfb7279a1b2677b929dcc","latestPackageId":"0xeae8956e21056a0c2bb15d9578f5dc2ea6117241c8acfb7279a1b2677b929dcc","configId":"0x2ddf86cb9add1dc40812ddf32304bbf02ff3e7d54b6baaa9ea223c6e3e088aae","registryId":"0xda0562629077ba1c99174159761426421d1729feac87fe989eb90c96c6b97fbb","module":"logbook","grpcUrl":"https://fullnode.testnet.sui.io:443","graphqlUrl":"https://graphql.testnet.sui.io/graphql","seal":{"threshold":2,"servers":[{"objectId":"0xb012378c9f3799fb5b1a7083da74a4069e3c3f1c93de0b27212a5799ce1e1e98","aggregatorUrl":"https://seal-aggregator-testnet.mystenlabs.com","weight":1},{"objectId":"0x73d05d62c18d9374e3ea529e8e0ed6161da1a141a94d3f76ae3fe4e99356db75","weight":1},{"objectId":"0xf5d14a81a982144ae441cd7d64b09027f116a468bd36e7eca494f750591623c8","weight":1}]}},"pagination":"Lists come a page at a time: pass nextCursor back as cursor until it is null. A page can hold fewer items than limit. There is no offset. Answers are cached at the edge for about 10 seconds.","endpoints":{"campaigns":"/api/v1/campaigns?creator=<address>&status=<active|ended>&limit=<1-100>&cursor=<nextCursor>","campaign":"/api/v1/campaigns/{id}","responses":"/api/v1/campaigns/{id}/responses?limit=<1-500>&cursor=<nextCursor>","results":"/api/v1/campaigns/{id}/results","sponsor":"Gas sponsorship for calls into the Logbook package, in two steps: POST /api/sponsor {txSerialized, sender} answers {txBytes, ticket, sponsorAddress, expiresAt} (the ticket is valid about 5 minutes); after the sender has signed txBytes, POST /api/sponsor/sign {txBytes, ticket, signature} answers {sponsorSignature}. Nothing is charged to the sender address before it has signed. Daily quotas per sender address, per IP (IPv6 per /64 and per /48) and per API key; optional X-Logbook-Api-Key on both requests; txSerialized is JSON.stringify(tx.getData()) (tx.serialize() is still accepted); bodies up to 512 KiB (prepare) and about 200 KiB (sign)","openapi":"/api/v1/openapi.json"},"sponsorship":{"anonymousPerSenderPerDay":30,"apiKeyDefaultPerDay":1000}}