> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rated.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Private Sets

> Private Sets enable users to put together arbitrary groupings of Ethereum validators, and to easily track aggregated statistics of these persistent clusters.

export const Endpoint = ({type, path, url}) => {
  const methodColors = {
    post: 'bg-blue-400/20 text-blue-700 dark:bg-blue-400/20 dark:text-blue-400',
    get: 'bg-green-400/20 text-green-700 dark:bg-green-400/20 dark:text-green-400',
    put: 'bg-yellow-400/20 text-yellow-700 dark:bg-yellow-400/20 dark:text-yellow-400',
    delete: 'bg-red-400/20 text-red-700 dark:bg-red-400/20 dark:text-red-400',
    patch: 'bg-orange-400/20 text-orange-700 dark:bg-orange-400/20 dark:text-orange-400'
  };
  const pathParts = path.startsWith('/') ? path.substring(1).split('/') : path.split('/');
  return <a href={url} className="relative flex-1 flex gap-2 min-w-0 rounded-xl items-center cursor-pointer p-1.5 border-standard">
        <div className={`rounded-lg font-bold px-1.5 py-0.5 text-sm leading-5 ${methodColors[type.toLowerCase()]}`}>
          {type}
        </div>
        <div className="flex items-center space-x-2 overflow-x-auto flex-1 no-scrollbar">
          <div className="group flex items-center flex-1 gap-0.5 font-mono">
            {url && <div className="absolute right-0 p-2 rounded-lg hidden group-hover:block">
                <Icon icon="arrow-right" />
              </div>}
            {pathParts.map((part, i) => {
    const isParam = part.includes('{');
    return <>
                  <div className="text-sm text-gray-400">/</div>
                  {isParam ? <div className="text-sm font-mono font-medium rounded-md px-1 border-2 min-w-max text-[#2AB673] bg-[#2AB673]/10 border-[#2AB673]/30">
                      {part}
                    </div> : <div className="text-sm font-medium text-gray-800 dark:text-white min-w-max">
                      {part}
                    </div>}
                </>;
  })}
          </div>
        </div>
      </a>;
};

<Note>
  Private sets endpoints are available to Build \[4 sets], Growth \[20 sets] and Enterprise plans on the Rated API. Head on over to [Plans](/rated-api/pricing/plans) to learn more.
</Note>

## Introducing Private Sets

Private sets empower organizations to implement sophisticated monitoring strategies, including A/B testing, performance benchmarking, and multivariate analysis.

By organizing validators into private sets, orgs can execute controlled experiments and analyses to assess various aspects of their validators' performance. This strategic grouping not only enhances the understanding of individual and collective validator efficiency but also informs decisions aimed at optimizing overall performance.

<Info>
  Head to our [Private Sets](/rated-api/guides/use-cases/private-sets) guide to get a detailed walk through on how to create and manage tags and call the sets performance and rewards endpoints.
</Info>

### Get all tags

<Endpoint type="GET" path="/v1/tags" url="/rated-api/api-reference/v1/ethereum/private-sets/get-all-tags" />

### Create a new tag

<Endpoint type="POST" path="/v1/tags" url="/rated-api/api-reference/v1/ethereum/private-sets/create-a-new-tag" />

<Note>
  Build tier orgs can create upto 4 tags while Growth tier orgs can create upto 20 tags.
</Note>

### Get details about a tag

<Endpoint type="GET" path="/v1/tags/{id}" url="/rated-api/api-reference/v1/ethereum/private-sets/get-details-about-a-tag" />

### Update a tag

<Endpoint type="PATCH" path="/v1/tags/{id}" url="/rated-api/api-reference/v1/ethereum/private-sets/update-a-tag" />

### Get all validators in a tag

<Endpoint type="GET" path="/v1/tags/{id}/validators" url="/rated-api/api-reference/v1/ethereum/private-sets/get-all-validators-in-a-tag" />

### Add validators to a tag

<Endpoint type="POST" path="/v1/tags/{id}/validators" url="/rated-api/api-reference/v1/ethereum/private-sets/add-validators-to-a-tag" />

<Note>
  You can add upto 1,000 validators at a time with an upper bound of 15,000 validators per tag. If you'd like to add more than that per tag, please reach out to us at [hello@rated.network](mailto:hello@rated.network)!
</Note>

### Remove validator pubkey from a tag

<Endpoint type="DELETE" path="/v1/tags/{id}/validators/{pubkey}" url="/rated-api/api-reference/v1/ethereum/private-sets/remove-validator-pubkey-from-a-tag" />

### Remove group of validator pubkeys from a tag

<Endpoint type="POST" path="/v1/tags/{id}/validators/remove" url="/rated-api/api-reference/v1/ethereum/private-sets/remove-multiple-validator-pubkeys-from-a-tag" />

<Warning>
  Note that removing a validator key from a tag has the same impact on the historical performance of the private set as exiting your key from a cluster would ie, the exited key still impacts the historical view of the set's perfomance.
</Warning>

### Delete private set

<Endpoint type="DELETE" path="/v1/tags/{id}" url="/rated-api/api-reference/v1/ethereum/private-sets/delete-private-set-tag" />

<Note>
  This endpoint removes all validators from a private set then deletes the private set tag itself.
</Note>

***

As a reminder, note that this page only walks you through the creation and management of your tags, which is a precursor to calling the set's performance and rewards endpoints. You can find the effectiveness endpoint for sets [here](/rated-api/api-reference/v1/ethereum/performance/get-effectiveness-for-a-private-set), and rewards endpoint for sets [here](/rated-api/api-reference/v1/ethereum/rewards/get-rewards-metrics-for-a-private-set) or head to our [Private Sets](/rated-api/guides/use-cases/private-sets) user guide!
