> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://apidoc.dreamclass.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://apidoc.dreamclass.io/_mcp/server.

# AssignProfessor

POST https://dreamclassapi/v1/professors/assign
Content-Type: application/json

Assign a professor to a class course.

If the professor is not yet enrolled in the given school period, the enrollment is created automatically. The response echoes back the resolved professorSemesterInfoId and the created professorToClassesCourseId.

professorId: Check the GetProfessors call

semesterId: Check the GetSchoolPeriods call

classesCourseId: Check the GetPeriodClassCourses call

Reference: https://apidoc.dreamclass.io/dream-class-api/professors/assign-professor

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: collection
  version: 1.0.0
paths:
  /dreamclassapi/v1/professors/assign:
    post:
      operationId: assign-professor
      summary: AssignProfessor
      description: >-
        Assign a professor to a class course.


        If the professor is not yet enrolled in the given school period, the
        enrollment is created automatically. The response echoes back the
        resolved professorSemesterInfoId and the created
        professorToClassesCourseId.


        professorId: Check the GetProfessors call


        semesterId: Check the GetSchoolPeriods call


        classesCourseId: Check the GetPeriodClassCourses call
      tags:
        - professors
      parameters:
        - name: tenant
          in: header
          required: false
          schema:
            type: string
        - name: schoolCode
          in: header
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Professors_AssignProfessor_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                professorId:
                  type: integer
                semesterId:
                  type: integer
                classesCourseId:
                  type: integer
              required:
                - professorId
                - semesterId
                - classesCourseId
servers:
  - url: https:/
    description: https://{server}
  - url: https://your-webhook-url
    description: https://your-webhook-url
components:
  schemas:
    Professors_AssignProfessor_Response_200:
      type: object
      properties:
        professorId:
          type: integer
        semesterId:
          type: integer
        classesCourseId:
          type: integer
        professorSemesterInfoId:
          type: integer
        professorToClassesCourseId:
          type: integer
      required:
        - professorId
        - semesterId
        - classesCourseId
        - professorSemesterInfoId
        - professorToClassesCourseId
      title: Professors_AssignProfessor_Response_200

```

## Examples



**Request**

```json
{
  "professorId": 12,
  "semesterId": 3,
  "classesCourseId": 45
}
```

**Response**

```json
{
  "professorId": 12,
  "semesterId": 3,
  "classesCourseId": 45,
  "professorSemesterInfoId": 87,
  "professorToClassesCourseId": 201
}
```

**SDK Code**

```python Professors_AssignProfessor_example
import requests

url = "https://https/dreamclassapi/v1/professors/assign"

payload = {
    "professorId": 12,
    "semesterId": 3,
    "classesCourseId": 45
}
headers = {
    "tenant": "{{tenant}}",
    "schoolCode": "{{schoolCode}}",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Professors_AssignProfessor_example
const url = 'https://https/dreamclassapi/v1/professors/assign';
const options = {
  method: 'POST',
  headers: {
    tenant: '{{tenant}}',
    schoolCode: '{{schoolCode}}',
    'Content-Type': 'application/json'
  },
  body: '{"professorId":12,"semesterId":3,"classesCourseId":45}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Professors_AssignProfessor_example
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://https/dreamclassapi/v1/professors/assign"

	payload := strings.NewReader("{\n  \"professorId\": 12,\n  \"semesterId\": 3,\n  \"classesCourseId\": 45\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("tenant", "{{tenant}}")
	req.Header.Add("schoolCode", "{{schoolCode}}")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Professors_AssignProfessor_example
require 'uri'
require 'net/http'

url = URI("https://https/dreamclassapi/v1/professors/assign")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["tenant"] = '{{tenant}}'
request["schoolCode"] = '{{schoolCode}}'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"professorId\": 12,\n  \"semesterId\": 3,\n  \"classesCourseId\": 45\n}"

response = http.request(request)
puts response.read_body
```

```java Professors_AssignProfessor_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://https/dreamclassapi/v1/professors/assign")
  .header("tenant", "{{tenant}}")
  .header("schoolCode", "{{schoolCode}}")
  .header("Content-Type", "application/json")
  .body("{\n  \"professorId\": 12,\n  \"semesterId\": 3,\n  \"classesCourseId\": 45\n}")
  .asString();
```

```php Professors_AssignProfessor_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://https/dreamclassapi/v1/professors/assign', [
  'body' => '{
  "professorId": 12,
  "semesterId": 3,
  "classesCourseId": 45
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'schoolCode' => '{{schoolCode}}',
    'tenant' => '{{tenant}}',
  ],
]);

echo $response->getBody();
```

```csharp Professors_AssignProfessor_example
using RestSharp;

var client = new RestClient("https://https/dreamclassapi/v1/professors/assign");
var request = new RestRequest(Method.POST);
request.AddHeader("tenant", "{{tenant}}");
request.AddHeader("schoolCode", "{{schoolCode}}");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"professorId\": 12,\n  \"semesterId\": 3,\n  \"classesCourseId\": 45\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Professors_AssignProfessor_example
import Foundation

let headers = [
  "tenant": "{{tenant}}",
  "schoolCode": "{{schoolCode}}",
  "Content-Type": "application/json"
]
let parameters = [
  "professorId": 12,
  "semesterId": 3,
  "classesCourseId": 45
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://https/dreamclassapi/v1/professors/assign")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```