---
title: "Search for eligible schools by domain name as part of the add school flow"
method: POST
path: "/organization/addSchool/search/domain"
tags: ["addSchool"]
---

# Search for eligible schools by domain name as part of the add school flow

`POST /organization/addSchool/search/domain`

Search for eligible schools by domain name as part of the add school flow

## Request body

- EligibleSchoolDomainSearch
  - `programId` string, required — The programId for the program the user is attempting to verify against
  - `schoolDomain` string, required — The domain name associated with the school
  - `schoolCountry` string, required — The two character country code where the school is located

## Response `200`

The results of the search

- EligibleSchoolSearchResult
  - `eligible` Organization[], required — The list of eligible schools
    - `name` string, required — The name of the organization
    - `id` integer, required — The unique identifier for the organization. This will be ignored if idExtended is specified.
    - `idExtended` string — The unique identifier for the Organization within the Organization service.
    - `source` 'EMPLOYER' | 'PLACE' — An identifier used for disambiguating the service which is providing the organization information.
  - `ineligible` Organization[], required — The list of schools that are not eligible for the offer
    - `name` string, required — The name of the organization
    - `id` integer, required — The unique identifier for the organization. This will be ignored if idExtended is specified.
    - `idExtended` string — The unique identifier for the Organization within the Organization service.
    - `source` 'EMPLOYER' | 'PLACE' — An identifier used for disambiguating the service which is providing the organization information.
  - `errorIds` ErrorId[], required — List of ErrorIds describing any errors that occurred during the search

## Other responses

- `400` — The search was not properly formatted
- `404` — The provided program was not found
- `429` — Too many requests. A `429` can mean one of two things — inspect the response body's `errorIds` before retrying: - A transient rate limit applied at the platform edge. If a `Retry-After` header is present, wait that many seconds (using exponential backoff) and retry. - A program/consumer limit such as `verificationLimitExceeded`, `reverificationDailyLimitExceeded`, or `docReviewLimitExceeded` — the consumer has exhausted an allowance defined by the program's limiting policy. This is a permanent rejection (`currentStep: error`, no `Retry-After`); do not retry.
- `500` — Internal server error.
- `503` — Service temporarily unavailable. The request can be safely retried after the interval given in the `Retry-After` header.

---

[API](https://skmtc.dev/sheerid/apis/sheerid-api.md) · [All operations](https://skmtc.dev/sheerid/apis/sheerid-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sheerid/apis/sheerid-api/revisions/1cf29eb46b99?raw)
