When deploying agents to LangSmith Deployment, your server automatically exposes routes for creating runs and threads, interacting with the long-term memory store, managing configurable assistants, and other core functionality (see all default API endpoints). You can add custom routes by providing your own app object and passing its path inDocumentation Index
Fetch the complete documentation index at: https://docs.langchain.com/llms.txt
Use this file to discover all available pages before exploring further.
langgraph.json (for example, a Starlette app in Python or a Hono app in TypeScript).
Defining a custom app object lets you add any routes you’d like, so you can do anything from adding a /login endpoint to writing an entire full-stack web-app, all deployed in a single Agent Server.
Below are examples for Python and TypeScript.
Create app
Starting from an existing LangSmith application, add the following custom route code to your app file. If you are starting from scratch, you can create a new app from a template using the CLI.- Python
- TypeScript
Configure langgraph.json
Add the following to your langgraph.json configuration file. Make sure the path points to the app instance you created in the previous section.
- Python
- TypeScript
Start server
Test the server out locally:- Python
- TypeScript
localhost:2024/hello in your browser (2024 is the default development port), you should see the /hello endpoint returning a JSON response. For the TypeScript example, navigate to localhost:2024/custom/hello.
The TypeScript http.app configuration works in both local development with langgraph dev and Docker with langgraph up.
Shadowing default endpoints
The routes you create in the app are given priority over the system defaults, meaning you can shadow and redefine the behavior of any default endpoint.
Deploying
You can deploy this app as-is to LangSmith or to your self-hosted platform.Next steps
Now that you’ve added a custom route to your deployment, you can use this same technique to further customize how your server behaves, such as defining custom middleware and custom lifespan events.Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

