{ "openapi": "3.1.0", "paths": { "/v1/publications/{publicationId}": { "get": { "description": "Retrieve detailed information about a specific publication", "summary": "Get publication by ID", "tags": [ "publications" ], "parameters": [ { "name": "publicationId", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the publication" } ], "responses": { "200": { "description": "Publication details retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the publication" }, "name": { "type": "string", "description": "Display name of the publication" }, "ownerUserId": { "type": "string", "description": "ID of the user who owns this publication" }, "slug": { "type": "string", "minLength": 1, "maxLength": 256, "description": "URL-friendly identifier for the publication; accessible at paragraph.com/@[slug]" }, "customDomain": { "type": "string", "format": "uri", "description": "Custom domain configured for this publication" }, "summary": { "type": "string", "maxLength": 500, "description": "Brief description of the publication (max 500 characters)" }, "logoUrl": { "type": "string", "format": "uri", "description": "URL to the publication's logo image" } }, "required": [ "id", "name", "ownerUserId", "slug" ], "description": "Publication details retrieved successfully" } } } }, "404": { "description": "Publication not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Publication not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getPublicationById", "x-mint": { "mcp": { "enabled": true, "name": "get-publication-by-id", "description": "Get a publication by its unique ID" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get publication by ID", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst publication = await api.getPublication(\"BMV6abfvCSUl51ErCVzd\")" } ] } }, "/v1/publications/slug/{slug}": { "get": { "description": "Retrieve publication details using its URL-friendly slug. Optionally include an @ before the slug.", "summary": "Get publication by slug", "tags": [ "publications" ], "parameters": [ { "name": "slug", "in": "path", "required": true, "schema": { "type": "string", "minLength": 1, "maxLength": 256 }, "description": "URL-friendly identifier of the publication" } ], "responses": { "200": { "description": "Publication details retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the publication" }, "name": { "type": "string", "description": "Display name of the publication" }, "ownerUserId": { "type": "string", "description": "ID of the user who owns this publication" }, "slug": { "type": "string", "minLength": 1, "maxLength": 256, "description": "URL-friendly identifier for the publication; accessible at paragraph.com/@[slug]" }, "customDomain": { "type": "string", "format": "uri", "description": "Custom domain configured for this publication" }, "summary": { "type": "string", "maxLength": 500, "description": "Brief description of the publication (max 500 characters)" }, "logoUrl": { "type": "string", "format": "uri", "description": "URL to the publication's logo image" } }, "required": [ "id", "name", "ownerUserId", "slug" ], "description": "Publication details retrieved successfully" } } } }, "404": { "description": "Publication not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Publication not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getPublicationBySlug", "x-mint": { "mcp": { "enabled": true, "name": "get-publication-by-slug", "description": "Get a publication by its URL-friendly slug (for example, for URL paragraph.com/@blog, the slug would be 'blog'" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get publication by slug", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst publication = await api.getPublicationBySlug(\"blog\")" } ] } }, "/v1/publications/domain/{domain}": { "get": { "description": "Retrieve publication details using its custom domain", "summary": "Get publication by custom domain", "tags": [ "publications" ], "parameters": [ { "name": "domain", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Custom domain of the publication" } ], "responses": { "200": { "description": "Publication details retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the publication" }, "name": { "type": "string", "description": "Display name of the publication" }, "ownerUserId": { "type": "string", "description": "ID of the user who owns this publication" }, "slug": { "type": "string", "minLength": 1, "maxLength": 256, "description": "URL-friendly identifier for the publication; accessible at paragraph.com/@[slug]" }, "customDomain": { "type": "string", "format": "uri", "description": "Custom domain configured for this publication" }, "summary": { "type": "string", "maxLength": 500, "description": "Brief description of the publication (max 500 characters)" }, "logoUrl": { "type": "string", "format": "uri", "description": "URL to the publication's logo image" } }, "required": [ "id", "name", "ownerUserId", "slug" ], "description": "Publication details retrieved successfully" } } } }, "404": { "description": "Publication not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Publication not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getPublicationByDomain", "x-mint": { "mcp": { "enabled": true, "name": "get-publication-by-domain", "description": "Get a publication by its custom domain" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get publication by domain", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst publication = await api.getPublicationByDomain(\"avc.xyz\")" } ] } }, "/v1/publications/{publicationId}/subscribers/count": { "get": { "description": "Retrieve the total number of subscribers for a publication", "summary": "Get subscriber count", "tags": [ "publications" ], "parameters": [ { "name": "publicationId", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the publication" } ], "responses": { "200": { "description": "Subscriber count retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "count": { "type": "number", "description": "Total number of subscribers" } }, "required": [ "count" ], "description": "Subscriber count retrieved successfully" } } } }, "404": { "description": "Publication not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Publication not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getSubscriberCount", "x-mint": { "mcp": { "enabled": true, "name": "get-subscriber-count", "description": "Get the total number of subscribers for a publication" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get subscriber count", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst count = await api.getSubscriberCount(\"BMV6abfvCSUl51ErCVzd\")" } ] } }, "/v1/publications/{publicationId}/posts": { "get": { "description": "Retrieve a paginated list of posts from a publication", "summary": "List posts in a publication", "tags": [ "posts" ], "parameters": [ { "name": "publicationId", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the publication" }, { "name": "cursor", "in": "query", "description": "Cursor for pagination", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of items to return (1-100, default: 10)", "schema": { "default": 10, "type": "integer", "minimum": 1, "maximum": 100 } }, { "name": "includeContent", "in": "query", "description": "Include full content fields (markdown, json, staticHtml). Default: false", "schema": { "type": "boolean", "nullable": true } } ], "responses": { "200": { "description": "Posts retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the post" }, "title": { "type": "string", "maxLength": 200, "description": "Title of the post" }, "imageUrl": { "type": "string", "format": "uri", "description": "Optional URL to the post's main image" }, "publishedAt": { "type": "string", "description": "Epoch timestamp when the post was published" }, "updatedAt": { "type": "string", "description": "Epoch timestamp when the post was last updated" }, "subtitle": { "type": "string", "maxLength": 300, "description": "Optional subtitle or brief summary" }, "slug": { "type": "string", "minLength": 1, "maxLength": 256, "description": "URL-friendly identifier for the post; accessible at paragraph.com/@[publicationSlug]/[slug]" }, "staticHtml": { "type": "string", "description": "Rendered HTML content of the post" }, "json": { "type": "string", "description": "TipTap JSON representation of the post content structure. This is the source of truth that the staticHtml and markdown is generated from" }, "markdown": { "type": "string", "description": "Markdown source of the post content" }, "coinId": { "type": "string", "description": "ID of the associated coin, if the post is coined" } }, "required": [ "id", "title", "slug" ] }, "description": "Array of items in this page" }, "pagination": { "type": "object", "properties": { "cursor": { "type": "string", "description": "Cursor for fetching the next page of results" }, "hasMore": { "type": "boolean", "description": "Whether more results are available" }, "total": { "type": "number", "description": "Total number of items available" } }, "required": [ "hasMore" ] } }, "required": [ "items", "pagination" ], "description": "Posts retrieved successfully" } } } }, "400": { "description": "Invalid request parameters", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Invalid request parameters" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getPosts", "x-mint": { "mcp": { "enabled": true, "name": "list-publication-posts", "description": "List posts from a publication with pagination" } }, "x-codeSamples": [ { "lang": "typescript", "label": "List posts with pagination", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst posts = await api.getPosts(\"BMV6abfvCSUl51ErCVzd\", {\n limit: 20,\n cursor: \"next-cursor\"\n})" } ] } }, "/v1/posts/{postId}": { "get": { "description": "Retrieve detailed information about a specific post", "summary": "Get post by ID", "tags": [ "posts" ], "parameters": [ { "name": "postId", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the post" }, { "name": "includeContent", "in": "query", "description": "Include full content fields (markdown, json, staticHtml). Default: false", "schema": { "type": "boolean", "nullable": true } } ], "responses": { "200": { "description": "Post details retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the post" }, "title": { "type": "string", "maxLength": 200, "description": "Title of the post" }, "imageUrl": { "type": "string", "format": "uri", "description": "Optional URL to the post's main image" }, "publishedAt": { "type": "string", "description": "Epoch timestamp when the post was published" }, "updatedAt": { "type": "string", "description": "Epoch timestamp when the post was last updated" }, "subtitle": { "type": "string", "maxLength": 300, "description": "Optional subtitle or brief summary" }, "slug": { "type": "string", "minLength": 1, "maxLength": 256, "description": "URL-friendly identifier for the post; accessible at paragraph.com/@[publicationSlug]/[slug]" }, "staticHtml": { "type": "string", "description": "Rendered HTML content of the post" }, "json": { "type": "string", "description": "TipTap JSON representation of the post content structure. This is the source of truth that the staticHtml and markdown is generated from" }, "markdown": { "type": "string", "description": "Markdown source of the post content" }, "coinId": { "type": "string", "description": "ID of the associated coin, if the post is coined" } }, "required": [ "id", "title", "slug" ], "description": "Post details retrieved successfully" } } } }, "404": { "description": "Post not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Post not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getPostById", "x-mint": { "mcp": { "enabled": true, "name": "get-post-by-id", "description": "Get detailed information about a specific post by its ID" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get post by ID", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst post = await api.getPost({ id: \"3T2PQZlsdQtigUp4fhlb\" })" } ] } }, "/v1/publications/{publicationId}/posts/slug/{postSlug}": { "get": { "description": "Retrieve a post using its publication ID and its URL-friendly slug", "summary": "Get post by publication ID and post slug", "tags": [ "posts" ], "parameters": [ { "name": "publicationId", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the publication" }, { "name": "postSlug", "in": "path", "required": true, "schema": { "type": "string", "minLength": 1, "maxLength": 256 }, "description": "URL-friendly identifier of the post" }, { "name": "includeContent", "in": "query", "description": "Include full content fields (markdown, json, staticHtml). Default: false", "schema": { "type": "boolean", "nullable": true } } ], "responses": { "200": { "description": "Post details retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the post" }, "title": { "type": "string", "maxLength": 200, "description": "Title of the post" }, "imageUrl": { "type": "string", "format": "uri", "description": "Optional URL to the post's main image" }, "publishedAt": { "type": "string", "description": "Epoch timestamp when the post was published" }, "updatedAt": { "type": "string", "description": "Epoch timestamp when the post was last updated" }, "subtitle": { "type": "string", "maxLength": 300, "description": "Optional subtitle or brief summary" }, "slug": { "type": "string", "minLength": 1, "maxLength": 256, "description": "URL-friendly identifier for the post; accessible at paragraph.com/@[publicationSlug]/[slug]" }, "staticHtml": { "type": "string", "description": "Rendered HTML content of the post" }, "json": { "type": "string", "description": "TipTap JSON representation of the post content structure. This is the source of truth that the staticHtml and markdown is generated from" }, "markdown": { "type": "string", "description": "Markdown source of the post content" }, "coinId": { "type": "string", "description": "ID of the associated coin, if the post is coined" } }, "required": [ "id", "title", "slug" ], "description": "Post details retrieved successfully" } } } }, "404": { "description": "Post not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Post not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getPostByPublicationIdAndPostSlug", "x-mint": { "mcp": { "enabled": true, "name": "get-post-by-publication-id-and-slug", "description": "Get a post using its publication ID and slug" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get post by publication ID and slug", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst post = await api.getPost({ \n publicationId: \"BMV6abfvCSUl51ErCVzd\", \n postSlug: \"my-first-post\" \n})" } ] } }, "/v1/publications/slug/{publicationSlug}/posts/slug/{postSlug}": { "get": { "description": "Retrieve a post using its publication's slug and the post's slug. This is useful for building user-facing URLs.", "summary": "Get post by publication slug and post slug", "tags": [ "posts" ], "parameters": [ { "name": "publicationSlug", "in": "path", "required": true, "schema": { "type": "string", "minLength": 1, "maxLength": 256 }, "description": "URL-friendly identifier of the publication, e.g. 'blog'" }, { "name": "postSlug", "in": "path", "required": true, "schema": { "type": "string", "minLength": 1, "maxLength": 256 }, "description": "URL-friendly identifier of the post, e.g. 'my-first-post'" }, { "name": "includeContent", "in": "query", "description": "Include full content fields (markdown, json, staticHtml). Default: false", "schema": { "type": "boolean", "nullable": true } } ], "responses": { "200": { "description": "Post details retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the post" }, "title": { "type": "string", "maxLength": 200, "description": "Title of the post" }, "imageUrl": { "type": "string", "format": "uri", "description": "Optional URL to the post's main image" }, "publishedAt": { "type": "string", "description": "Epoch timestamp when the post was published" }, "updatedAt": { "type": "string", "description": "Epoch timestamp when the post was last updated" }, "subtitle": { "type": "string", "maxLength": 300, "description": "Optional subtitle or brief summary" }, "slug": { "type": "string", "minLength": 1, "maxLength": 256, "description": "URL-friendly identifier for the post; accessible at paragraph.com/@[publicationSlug]/[slug]" }, "staticHtml": { "type": "string", "description": "Rendered HTML content of the post" }, "json": { "type": "string", "description": "TipTap JSON representation of the post content structure. This is the source of truth that the staticHtml and markdown is generated from" }, "markdown": { "type": "string", "description": "Markdown source of the post content" }, "coinId": { "type": "string", "description": "ID of the associated coin, if the post is coined" } }, "required": [ "id", "title", "slug" ], "description": "Post details retrieved successfully" } } } }, "404": { "description": "Post not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Post not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getPostByPublicationSlugAndPostSlug", "x-mint": { "mcp": { "enabled": true, "name": "get-post-by-publication-and-post-slug", "description": "Get a post using its publication slug and post slug" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get post by publication & post slug", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst post = await api.getPost({ \n publicationSlug: \"blog\",\n postSlug: \"my-first-post\" \n})" } ] } }, "/v1/users/{userId}": { "get": { "description": "Retrieve detailed information about a specific user", "summary": "Get user by ID", "tags": [ "users" ], "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the user" } ], "responses": { "200": { "description": "User details retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the user" }, "walletAddress": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$", "description": "Wallet address of the user" }, "avatarUrl": { "type": "string", "format": "uri", "description": "URL to the user's avatar image" }, "publicationId": { "type": "string", "description": "ID of the publication this user belongs to" }, "name": { "type": "string", "description": "Display name of the user" }, "bio": { "type": "string", "maxLength": 500, "description": "Brief biography of the user (max 500 characters)" }, "farcaster": { "type": "object", "properties": { "username": { "type": "string", "description": "Farcaster username" }, "displayName": { "type": "string", "description": "Farcaster display name" }, "fid": { "type": "number", "description": "Farcaster fid" } }, "required": [ "username", "displayName", "fid" ], "description": "Farcaster profile information, if linked" } }, "required": [ "id", "publicationId" ], "description": "User details retrieved successfully" } } } }, "404": { "description": "User not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "User not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getUser", "x-mint": { "mcp": { "enabled": true, "name": "get-user-by-id", "description": "Get detailed information about a specific user" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get user by ID", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst user = await api.getUser(\"AeAOtR8TqKWyzG5apA1R\")" } ] } }, "/v1/users/wallet/{walletAddress}": { "get": { "description": "Retrieve user details using their Ethereum wallet address", "summary": "Get user by wallet address", "tags": [ "users" ], "parameters": [ { "name": "walletAddress", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$" }, "description": "Ethereum wallet address" } ], "responses": { "200": { "description": "User details retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the user" }, "walletAddress": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$", "description": "Wallet address of the user" }, "avatarUrl": { "type": "string", "format": "uri", "description": "URL to the user's avatar image" }, "publicationId": { "type": "string", "description": "ID of the publication this user belongs to" }, "name": { "type": "string", "description": "Display name of the user" }, "bio": { "type": "string", "maxLength": 500, "description": "Brief biography of the user (max 500 characters)" }, "farcaster": { "type": "object", "properties": { "username": { "type": "string", "description": "Farcaster username" }, "displayName": { "type": "string", "description": "Farcaster display name" }, "fid": { "type": "number", "description": "Farcaster fid" } }, "required": [ "username", "displayName", "fid" ], "description": "Farcaster profile information, if linked" } }, "required": [ "id", "publicationId" ], "description": "User details retrieved successfully" } } } }, "404": { "description": "User not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "User not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getUserByWallet", "x-mint": { "mcp": { "enabled": true, "name": "get-user-by-wallet", "description": "Get user details using their Ethereum wallet address" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get user by wallet address", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst user = await api.getUserByWallet(\"0xc9ddb5E37165827BBBFf15b582E232C06862C4E8\")" } ] } }, "/v1/coins/{id}": { "get": { "description": "Retrieve information about a tokenized post using its unique ID", "summary": "Get coin by ID", "tags": [ "coins" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Paragraph-internal unique identifier for the coin" } ], "responses": { "200": { "description": "Coin details retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the coin" }, "contractAddress": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$", "description": "Base contract address for the coin" }, "symbol": { "type": "string", "pattern": "^[A-Z0-9]{3,6}$", "description": "Token symbol" }, "postId": { "type": "string", "description": "ID of the post this coin is associated with" }, "blogId": { "type": "string", "description": "ID of the blog this coin is associated with" }, "type": { "type": "string", "enum": [ "post", "writer" ], "description": "The type of the coin, either a post coin or a writer coin" } }, "required": [ "id", "contractAddress", "symbol", "blogId", "type" ], "description": "Coin details retrieved successfully" } } } }, "404": { "description": "Coin not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Coin not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getCoin", "x-mint": { "mcp": { "enabled": true, "name": "get-coin-by-id", "description": "Get information about a coin by its ID" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get coin by ID", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst coin = await api.getCoin(\"S2AlaNG5Hw0NdNptmLTw\")" } ] } }, "/v1/coins/contract/{contractAddress}": { "get": { "description": "Retrieve information about a tokenized post using its contract address", "summary": "Get coin by contract address", "tags": [ "coins" ], "parameters": [ { "name": "contractAddress", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$" }, "description": "Contract address" } ], "responses": { "200": { "description": "Coin details retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the coin" }, "contractAddress": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$", "description": "Base contract address for the coin" }, "symbol": { "type": "string", "pattern": "^[A-Z0-9]{3,6}$", "description": "Token symbol" }, "postId": { "type": "string", "description": "ID of the post this coin is associated with" }, "blogId": { "type": "string", "description": "ID of the blog this coin is associated with" }, "type": { "type": "string", "enum": [ "post", "writer" ], "description": "The type of the coin, either a post coin or a writer coin" } }, "required": [ "id", "contractAddress", "symbol", "blogId", "type" ], "description": "Coin details retrieved successfully" } } } }, "404": { "description": "Coin not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Coin not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getCoinByContract", "x-mint": { "mcp": { "enabled": true, "name": "get-coin-by-contract", "description": "Get information about a coin by contract address" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get coin by contract address", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst coin = await api.getCoinByContract(\"0xe9bb3166ff5f96381e257d509a801303b68e5d34\")" } ] } }, "/v1/coins/{id}/holders": { "get": { "description": "Retrieve a paginated list of holders for a coined post", "summary": "List coin holders by ID", "tags": [ "coins" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique ID of the coin" }, { "name": "cursor", "in": "query", "description": "Cursor for pagination", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of items to return (1-100, default: 10)", "schema": { "default": 10, "type": "integer", "minimum": 1, "maximum": 100 } } ], "responses": { "200": { "description": "Holders retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "walletAddress": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$", "description": "Wallet address of the holder" }, "userId": { "type": "string", "description": "Paragraph user ID if the holder is a registered user" }, "balance": { "type": "string", "pattern": "^[0-9]+$", "description": "Token balance held (in wei)" }, "avatarUrl": { "type": "string", "format": "uri", "description": "URL to the user's avatar image, if available" } }, "required": [ "walletAddress", "balance" ] }, "description": "Array of items in this page" }, "pagination": { "type": "object", "properties": { "cursor": { "type": "string", "description": "Cursor for fetching the next page of results" }, "hasMore": { "type": "boolean", "description": "Whether more results are available" }, "total": { "type": "number", "description": "Total number of items available" } }, "required": [ "hasMore" ] } }, "required": [ "items", "pagination" ], "description": "Holders retrieved successfully" } } } }, "404": { "description": "Coin not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Coin not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getCoinHoldersById", "x-mint": { "mcp": { "enabled": true, "name": "list-coin-holders-by-id", "description": "List holders of a coined post by coin ID" } }, "x-codeSamples": [ { "lang": "typescript", "label": "List coin holders (with pagination)", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst holders = await api.getCoinHolders(\"S2AlaNG5Hw0NdNptmLTw\", {\n limit: 25,\n cursor: \"next-cursor\"\n})" } ] } }, "/v1/coins/contract/{contractAddress}/holders": { "get": { "description": "Retrieve a paginated list of holders for a tokenized post", "summary": "List coin holders by contract address", "tags": [ "coins" ], "parameters": [ { "name": "contractAddress", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$" }, "description": "Contract address" }, { "name": "cursor", "in": "query", "description": "Cursor for pagination", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of items to return (1-100, default: 10)", "schema": { "default": 10, "type": "integer", "minimum": 1, "maximum": 100 } } ], "responses": { "200": { "description": "Holders retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "walletAddress": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$", "description": "Wallet address of the holder" }, "userId": { "type": "string", "description": "Paragraph user ID if the holder is a registered user" }, "balance": { "type": "string", "pattern": "^[0-9]+$", "description": "Token balance held (in wei)" }, "avatarUrl": { "type": "string", "format": "uri", "description": "URL to the user's avatar image, if available" } }, "required": [ "walletAddress", "balance" ] }, "description": "Array of items in this page" }, "pagination": { "type": "object", "properties": { "cursor": { "type": "string", "description": "Cursor for fetching the next page of results" }, "hasMore": { "type": "boolean", "description": "Whether more results are available" }, "total": { "type": "number", "description": "Total number of items available" } }, "required": [ "hasMore" ] } }, "required": [ "items", "pagination" ], "description": "Holders retrieved successfully" } } } }, "404": { "description": "Coin not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Coin not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getCoinHoldersByContract", "x-mint": { "mcp": { "enabled": true, "name": "list-coin-holders-by-contract", "description": "List holders of a coined post by contract address" } }, "x-codeSamples": [ { "lang": "typescript", "label": "List coin holders (with pagination)", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst holders = await api.getCoinHoldersByContract(\"0xe9bb3166ff5f96381e257d509a801303b68e5d34\", {\n limit: 50,\n cursor: \"next-cursor\"\n})" } ] } }, "/v1/coins/buy/{id}": { "get": { "description": "Retrieve the args needed to buy a coin using a wallet", "summary": "Get coin's buy args by coin id", "tags": [ "coins" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Id of the coin" }, { "name": "walletAddress", "in": "query", "description": "Address of the wallet that is going to buy the coin", "required": true, "schema": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$" } }, { "name": "amount", "in": "query", "description": "Amount of Base ETH in wei that is going to be swapped for the coin", "required": true, "schema": { "type": "string", "pattern": "[0-9]+" } } ], "responses": { "200": { "description": "Buy args retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "commands": { "type": "string", "pattern": "^0x[a-fA-F0-9]*", "description": "Commands needed to do a token swap" }, "inputs": { "type": "array", "items": { "type": "string", "pattern": "^0x[a-fA-F0-9]*" }, "description": "Inputs needed to do a token swap" } }, "required": [ "commands", "inputs" ], "description": "Buy args retrieved successfully" } } } }, "404": { "description": "Buy args not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Buy args not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getBuyArgsById", "x-mint": { "mcp": { "enabled": true, "name": "get-buy-args-by-id", "description": "Get the args needed to buy a coin by its id" } } } }, "/v1/coins/buy/contract/{contractAddress}": { "get": { "description": "Retrieve the args needed to buy a coin using a wallet", "summary": "Get coin's buy args by contract address", "tags": [ "coins" ], "parameters": [ { "name": "contractAddress", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$" }, "description": "Contract address of the coin" }, { "name": "walletAddress", "in": "query", "description": "Address of the wallet that is going to buy the coin", "required": true, "schema": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$" } }, { "name": "amount", "in": "query", "description": "Amount of Base ETH in wei that is going to be swapped for the coin", "required": true, "schema": { "type": "string", "pattern": "[0-9]+" } } ], "responses": { "200": { "description": "Buy args retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "commands": { "type": "string", "pattern": "^0x[a-fA-F0-9]*", "description": "Commands needed to do a token swap" }, "inputs": { "type": "array", "items": { "type": "string", "pattern": "^0x[a-fA-F0-9]*" }, "description": "Inputs needed to do a token swap" } }, "required": [ "commands", "inputs" ], "description": "Buy args retrieved successfully" } } } }, "404": { "description": "Buy args not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Buy args not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getBuyArgsByContract", "x-mint": { "mcp": { "enabled": true, "name": "get-buy-args-by-contract", "description": "Get the args needed to buy a coin by its contract address" } } } }, "/v1/coins/sell/{id}": { "get": { "description": "Retrieve the args needed to sell a coin using a wallet that has it", "summary": "Get coin's sell args by coin id", "tags": [ "coins" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Id of the coin" }, { "name": "walletAddress", "in": "query", "description": "Address of the wallet that is going to sell the coin", "required": true, "schema": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$" } }, { "name": "amount", "in": "query", "description": "Amount of coin in wei that is going to be swapped to WETH", "required": true, "schema": { "type": "string", "pattern": "[0-9]+" } } ], "responses": { "200": { "description": "Sell args retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "commands": { "type": "string", "pattern": "^0x[a-fA-F0-9]*", "description": "Commands needed to do a token swap" }, "inputs": { "type": "array", "items": { "type": "string", "pattern": "^0x[a-fA-F0-9]*" }, "description": "Inputs needed to do a token swap" } }, "required": [ "commands", "inputs" ], "description": "Sell args retrieved successfully" } } } }, "404": { "description": "Sell args not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Sell args not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getSellArgsById", "x-mint": { "mcp": { "enabled": true, "name": "get-sell-args-by-id", "description": "Get the args needed to sell a coin by its id" } } } }, "/v1/coins/sell/contract/{contractAddress}": { "get": { "description": "Retrieve the args needed to sell a coin using a wallet that has it", "summary": "Get coin's sell args by contract address", "tags": [ "coins" ], "parameters": [ { "name": "contractAddress", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$" }, "description": "Contract address of the coin" }, { "name": "walletAddress", "in": "query", "description": "Address of the wallet that is going to sell the coin", "required": true, "schema": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}$" } }, { "name": "amount", "in": "query", "description": "Amount of coin in wei that is going to be swapped to WETH", "required": true, "schema": { "type": "string", "pattern": "[0-9]+" } } ], "responses": { "200": { "description": "Sell args retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "commands": { "type": "string", "pattern": "^0x[a-fA-F0-9]*", "description": "Commands needed to do a token swap" }, "inputs": { "type": "array", "items": { "type": "string", "pattern": "^0x[a-fA-F0-9]*" }, "description": "Inputs needed to do a token swap" } }, "required": [ "commands", "inputs" ], "description": "Sell args retrieved successfully" } } } }, "404": { "description": "Sell args not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Sell args not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getSellArgsByContract", "x-mint": { "mcp": { "enabled": true, "name": "get-sell-args-by-contract", "description": "Get the args needed to sell a coin by its contract address" } } } }, "/v1/coins/quote/{id}": { "get": { "description": "Retrieve a quote for the amount of coin in exchange of ETH", "summary": "Get coin quote by ID", "tags": [ "coins" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Paragraph-internal unique identifier for the coin" }, { "name": "amount", "in": "query", "description": "Amount of Base ETH in wei that is going to be swapped for the coin", "required": true, "schema": { "type": "string", "pattern": "[0-9]+" } } ], "responses": { "200": { "description": "Coin quote retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "quote": { "type": "string", "description": "Approximate number of coins that could be received in exchange of the amount of ETH entered" } }, "required": [ "quote" ], "description": "Coin quote retrieved successfully" } } } }, "404": { "description": "Coin quote not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Coin quote not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getQuoteById", "x-mint": { "mcp": { "enabled": true, "name": "get-quote-by-id", "description": "Get a quote of a coin by its ID" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get coin quote by ID", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst coin = await api.getQuoteById(\"S2AlaNG5Hw0NdNptmLTw\", \"1000000000000000000\")" } ] } }, "/v1/coins/quote/contract/{contractAddress}": { "get": { "description": "Retrieve a quote for the amount of the coin in exchange of ETH", "summary": "Get coin quote by contract address", "tags": [ "coins" ], "parameters": [ { "name": "contractAddress", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Contract address of the coin" }, { "name": "amount", "in": "query", "description": "Amount of Base ETH in wei that is going to be swapped for the coin", "required": true, "schema": { "type": "string", "pattern": "[0-9]+" } } ], "responses": { "200": { "description": "Coin quote retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "quote": { "type": "string", "description": "Approximate number of coins that could be received in exchange of the amount of ETH entered" } }, "required": [ "quote" ], "description": "Coin quote retrieved successfully" } } } }, "404": { "description": "Coin quote not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Coin quote not found" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [ false ], "description": "Always false for error responses" }, "msg": { "type": "string", "description": "Human-readable error message" }, "error": { "type": "string", "description": "Technical error details or error code" } }, "required": [ "success", "msg" ], "description": "Internal server error" } } } } }, "operationId": "getQuoteByContract", "x-mint": { "mcp": { "enabled": true, "name": "get-quote-by-contract", "description": "Get a quote of a coin by its contract address" } }, "x-codeSamples": [ { "lang": "typescript", "label": "Get coin quote by contract address", "source": "import { ParagraphAPI } from \"@paragraph_xyz/sdk\"\n\nconst api = new ParagraphAPI()\nconst coin = await api.getQuoteByContract(\"0xe9bb3166ff5f96381e257d509a801303b68e5d34\", \"1000000000000000000\")" } ] } } }, "info": { "title": "Paragraph API", "version": "1.0.0", "description": "Public API for interacting with Paragraph publications, posts, users, and coined writing.\n\n## Rate Limiting\nAPI requests are rate-limited to ensure fair usage. Contact support@paragraph.com for higher limits.\n\n## Pagination\nList endpoints support cursor-based pagination using `cursor` and `limit` parameters.", "contact": { "name": "Paragraph Support", "email": "support@paragraph.com", "url": "https://paragraph.com/support" }, "license": { "name": "MIT", "url": "https://opensource.org/licenses/MIT" } }, "servers": [ { "url": "https://public.api.paragraph.com/api", "description": "Production server" } ], "tags": [ { "name": "publications", "description": "Operations related to publications" }, { "name": "posts", "description": "Operations related to posts and content" }, { "name": "users", "description": "Operations related to users and authors" }, { "name": "coins", "description": "Operations related to tokenized content" } ], "security": [ {} ], "components": {}, "x-mint": { "mcp": { "enabled": true } } }