In modern development, we're drowning in a sea of APIs. We orchestrate microservices, integrate third-party vendors, and cobble together internal scripts. The result? A tangled web of endpoints, credentials, and SDKs that we call "API spaghetti." It's brittle, complex, and a nightmare to manage.
What if you could abstract all of that complexity away? What if every business capability, from a simple geocoding task to a complex KYC verification workflow, was available through a single, unified API?
This is the promise of services.do, your unified service registry. It's a fundamental shift in how we build and consume software, transforming messy business logic into clean, discoverable, and manageable Services-as-Software.
At its core, services.do is the central registry for the .do platform. Think of it as a universal directory for all your business operations. But it's more than just a list. It allows you to discover, manage, and interact with all available agentic workflows and business services as standardized software endpoints.
This is where the concept of Business-as-Code comes in. Instead of processes living in documents and diagrams, you define them as code—we call these Workflows. Once a Workflow is deployed, services.do automatically registers it, making it a discoverable and consumable API—a Service.
This powerful paradigm allows you to:
One of the most powerful concepts to grasp is the distinction between a Workflow and a Service.
In short, services.do turns the process (Workflow) into a product (Service).
The entire philosophy can be broken down into three simple steps.
No more hunting through internal wikis or asking colleagues for that "one script" that handles user onboarding. The services.do registry is your single source of truth. Using our SDK, you can programmatically list and search for any service you have access to.
Imagine needing to find a KYC service and a geocoding service. It's as simple as this:
import { Do } from '@do-inc/sdk';
// Initialize the .do client
const बिंदु = new Do(process.env.DO_API_KEY);
// List all available services in the registry
const services = await बिंदु.services.list();
console.log(services);
// {
// "data": [
// { "id": "svc_123", "name": "kyc.do", ... },
// { "id": "svc_456", "name": "geocode.do", ... }
// ],
// ...
// }
This enables dynamic service discovery, allowing your applications to adapt and integrate new capabilities on the fly.
Once you've discovered a service, integration is trivial. Forget about learning a new API, managing separate authentication keys, or installing another SDK. You already have everything you need. You interact with kyc.do, geocode.do, or any other registered service through the same unified .do client.
This dramatically reduces the complexity of your codebase and accelerates development time. You’re no longer an integrator of a dozen different systems; you’re a consumer of a single, unified API Management layer.
Your business isn't static, and your software shouldn't be either. What happens when your KYC verification process needs an extra step?
With a traditional architecture, this could trigger a cascade of breaking changes in every application that consumes that service. With services.do, you simply update the underlying Workflow. The Service endpoint remains stable. Consuming applications continue to function uninterrupted.
This decoupling of the interface from the implementation is the key to building scalable, resilient, and future-proof systems. Adding new capabilities is as easy as deploying a new Workflow, which is then automatically registered and ready for consumption.
Is services.do literally the last API you'll write a line of code for? Of course not. But it is the last integration pattern you'll ever need.
It provides a powerful abstraction layer that sits on top of all your business capabilities. It transforms chaos into order. It takes complex, multi-step agentic processes and turns them into simple, composable Services-as-Software. By providing a unified entry point, services.do simplifies discovery, streamlines integration, and empowers you to build at scale.
Welcome to the future of Service Registry & Management.
What is services.do?
services.do is the central registry for the .do platform. It allows you to discover, manage, and interact with all available agentic workflows and business services as standardized software endpoints.
How do I add a new service to the registry?
Services are created by defining Agentic Workflows using Business-as-Code. Once a workflow is deployed, it's automatically registered and becomes a discoverable and consumable API via services.do.
What is the difference between a Service and a Workflow?
A Workflow is the underlying business logic defined as code. A Service is the discoverable, managed, and versioned API endpoint for that workflow, exposed through the services.do registry. It turns the process (Workflow) into a product (Service).
Can I list all services programmatically?
Yes, using our SDKs, you can easily list, search, and get details for any service you have access to. This enables dynamic service discovery and integration within your applications.