---
title: "MemberAdd adds a member into the cluster."
method: POST
path: "/v3/cluster/member/add"
tags: ["Cluster"]
---

# MemberAdd adds a member into the cluster.

`POST /v3/cluster/member/add`

## Request

- Base URL: `https://etcd.io` (the document declares no server; this is the origin it was published from)
- URL: `https://etcd.io/v3/cluster/member/add`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/etcd/apis/api-etcdserverpb-rpc-proto/docs/v3/cluster/member/add/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- EtcdserverpbMemberAddRequest
  - `isLearner` boolean: isLearner indicates if the added member is raft learner.
  - `peerURLs` string[]: peerURLs is the list of URLs the added member will use to communicate with the cluster.

## Response `200`

A successful response.

- EtcdserverpbMemberAddResponse
  - `header` EtcdserverpbResponseHeader
    - `cluster_id` string, uint64: cluster_id is the ID of the cluster which sent the response.
    - `member_id` string, uint64: member_id is the ID of the member which sent the response.
    - `raft_term` string, uint64: raft_term is the raft term when the request was applied.
    - `revision` string, int64: revision is the key-value store revision when the request was applied. For watch progress responses, the header.revision indicates progress. All future events recieved in this stream are guaranteed to have a higher revision number than the header.revision number.
  - `member` EtcdserverpbMember
    - `ID` string, uint64: ID is the member ID for this member.
    - `clientURLs` string[]: clientURLs is the list of URLs the member exposes to clients for communication. If the member is not started, clientURLs will be empty.
    - `isLearner` boolean: isLearner indicates if the member is raft learner.
    - `name` string: name is the human-readable name of the member. If the member is not started, the name will be an empty string.
    - `peerURLs` string[]: peerURLs is the list of URLs the member exposes to the cluster for communication.
  - `members` EtcdserverpbMember[]: members is a list of all members after adding the new member.
    - `ID` string, uint64: ID is the member ID for this member.
    - `clientURLs` string[]: clientURLs is the list of URLs the member exposes to clients for communication. If the member is not started, clientURLs will be empty.
    - `isLearner` boolean: isLearner indicates if the member is raft learner.
    - `name` string: name is the human-readable name of the member. If the member is not started, the name will be an empty string.
    - `peerURLs` string[]: peerURLs is the list of URLs the member exposes to the cluster for communication.

## Other responses

- `default`: An unexpected error response

---

[API](https://skmtc.dev/etcd/apis/api-etcdserverpb-rpc-proto.md) - [All operations](https://skmtc.dev/etcd/apis/api-etcdserverpb-rpc-proto/llms.txt) - [OpenAPI document](https://skmtc.dev/etcd/apis/api-etcdserverpb-rpc-proto/revisions/79259377f328?raw)
