---
title: "Create a New Opportunity"
method: POST
path: "/api/v2/opportunities"
tags: ["Opportunity"]
---

# Create a New Opportunity

`POST /api/v2/opportunities`

This endpoint creates a new opportunity. <h3>Required Scope</h3>`opportunity:write`

## Request body

- OpportunityDataBody
  - `data` OpportunityDataBodyData
    - `attributes` OpportunityAttributesPostBody
      - `title` string, required — The title of the opportunity.
      - `description` string, required — The description of the opportunity.
      - `category` string, required — The category for the opportunity. For example, `FullTime`, `Temp`, etc. Category is dependent on your organization's settings, but may include the following: DynamicTeam Assignment, Mentorship, Other, Project, Shadowing, StretchAssignment, LookingForMentor, LookingForMentee, ReverseMentoring, PeerMentoring, Volunteer, or Pro Bono.
      - `department` string, nullable — The department of the opportunity.
      - `job-role` string, nullable — Must correspond to the name of a plan in order to be valid. The `name` attribute of the GET /skill-plans endpoint resource with `plan-type: Role` can be used.
      - `start-date` string, date-time, required — The start date of the opportunity.
      - `end-date` string, date-time — The end date of the opportunity.
      - `duration` number, double, nullable, required — The duration of the opportunity.
      - `status` string, required — The status of the opportunity. Can only be `open` or `closed`.
      - `duration-units` string, required — Must be one of the following: `EndDate`, `Years`, `Months`, `Weeks`, `Days`, `Hours`, `Seconds`, or `Unknown`.
      - `location` string, nullable — The location of the opportunity.
      - `visibility` string, required — Can only be `Private` or `Organization`.
      - `external-id` string, nullable — The external identifier of the opportunity.
      - `url` string, nullable — URL location where more information can be found.
      - `image-url` string, nullable — Cover image of the opportunity.
      - `matched-skills` OpportunityAttributesPostBodyMatchedskills[], required — The skills that match this opportunity.
        - `skill-name` string, nullable — Skill name of the matched skill for the opportunity.
        - `skill-id` string — The ID of the skill.
        - `minimum-rating` string, nullable — The minimum skill rating appropriate for the opportunity.

## Response `201`

Success

- PostedOpportunity
  - `data` PostedOpportunityData
    - `type` string, nullable
    - `id` string, nullable
    - `attributes` OpportunityAttributesDetailed
      - `degreed-url` string, nullable — URL location of the opportunity within Degreed UI.
      - `provider` string, nullable — Unique provider code.
      - `matched-skills` OpportunityAttributesPostBodyMatchedskills[] — The skills that match this opportunity.
        - `skill-name` string, nullable — Skill name of the matched skill for the opportunity.
        - `skill-id` string — The ID of the skill.
        - `minimum-rating` string, nullable — The minimum skill rating appropriate for the opportunity.
      - `title` string, nullable — The title of the opportunity.
      - `description` string, nullable — The description of the opportunity.
      - `category` string, nullable, required — The category for the opportunity. For example, `Full time`, `Temp`, etc.
      - `department` string, nullable — The department of the opportunity.
      - `job-role` string, nullable, required — Must correspond to the name of a plan in order to be valid. The `name` attribute of the GET /skill-plans endpoint resource with `plan-type&#58; Role` can be used.
      - `start-date` string, date-time, nullable — The start date of the opportunity. (UTC)
      - `end-date` string, date-time, nullable — The end date of the opportunity. (UTC)
      - `duration` number, double, nullable — The duration of the opportunity.
      - `status` string, nullable, required — The status of the opportunity. Can only be `open` or `closed`.
      - `duration-units` string, nullable, required — Must be one of the following: `EndDate`, `Years`, `Months`, `Weeks`, `Days`, `Hours`, `Seconds`, or `Unknown`.
      - `location` string, nullable — The location of the opportunity.
      - `visibility` string, nullable, required — Can only be `Private` or `Organization`.
      - `external-id` string, nullable — The external identifier of the opportunity.
      - `url` string, nullable — URL location where more information can be found.
      - `image-url` string, nullable — Cover image of the opportunity.
      - `is-obsolete` boolean
      - `created-at` string, date-time — The date the opportunity was created. (UTC)
      - `modified-at` string, date-time — The date the opportunity was last modified. (UTC)
    - `links` SelfLink
      - `self` string

---

[API](https://skmtc.net/degreed/apis/degreed-api-web.md) · [All operations](https://skmtc.net/degreed/apis/degreed-api-web/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/degreed/degreed-api-web/revisions/4a22b709515c/schema)
