Skip to main content
POST
/
api
/
v1
/
recipes
/
library
/
submit
Submit community recipe
import requests

url = "https://api.example.com/api/v1/recipes/library/submit"

payload = {
    "slug": "<string>",
    "title": "<string>",
    "description": "<string>",
    "content_markdown": "",
    "chains": ["<string>"],
    "tokens": {},
    "tags": ["<string>"],
    "category": ["<string>"],
    "example_prompts": ["<string>"],
    "icon": "https://d.cobo.com/public/logos/logo_placeholder.png",
    "author_name": "<string>",
    "sdk_example_path": "<string>",
    "locale": "en"
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
{
  "result": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "slug": "<string>",
    "url": "<string>",
    "status": "draft"
  },
  "success": true,
  "suggestion": "",
  "message": "",
  "meta": {
    "total": 123,
    "offset": 123,
    "limit": 123,
    "has_more": true,
    "after": "<string>",
    "before": "<string>"
  }
}

Headers

X-API-Key
string | null

Body

application/json
slug
string
required
Required string length: 1 - 128
title
string
required
Required string length: 1 - 255
description
string
required
Minimum string length: 1
content_markdown
string
default:""
chains
string[]
tokens
Tokens · object
tags
string[]
category
string[]
example_prompts
string[]
icon
string | null
default:https://d.cobo.com/public/logos/logo_placeholder.png

Icon URL

Maximum string length: 512
author_name
string | null
Maximum string length: 128
sdk_example_path
string | null
Maximum string length: 255
locale
string
default:en
Maximum string length: 8

Response

Already exists (idempotent). Successful Response

result
RecipeCreateResult · object
required

Result returned after creating or submitting a recipe.

success
boolean
default:true
suggestion
string
default:""
message
string
default:""
meta
PaginationMeta · object

Pagination metadata for list responses.

Supports both legacy offset-based and cursor-based pagination. Cursor fields (has_more, after, before) are populated for cursor-paginated endpoints. Legacy fields (offset, limit) are populated when the caller uses the deprecated offset parameter.