Eightfold API Authorization Guide

Overview

The Eightfold API uses a permission-based authorization system to secure endpoints. Each API key can be configured with specific permissions that determine which API endpoints it can access. This document explains how permissions work and provides a comprehensive reference for configuring API access.

Authorization Process

  • API Key Generation: Users generate an API key from the Eightfold platform via the API tab in the Integration section.
  • Permission Assignment: Each API key is assigned specific permissions through the permission configuration UI.
  • Permission Structure: Permissions follow a hierarchical structure:
    logical_entity[:logical_subentity]:SCOPE
    Where:
    • logical_entity is the primary resource (e.g., ATS Position, Profile)
    • logical_subentity is optional and represents a sub-resource (e.g., Application, Feedback)
    • SCOPE is either READ or WRITE

  • Access Control: When making API requests, the system verifies that your API key has the required permission for the endpoint. If the permission is missing, access is denied.

Configuring API Permissions

Accessing the Permission Configuration UI

  1. Navigate to the Eightfold Admin Console and Go to Integration → Eightfold API

  2. Click on the edit icon next to an existing API key or click "Generate a new API key" to create a new one

Using the Permission Configuration UI

The permission configuration interface is organized hierarchically:

  • Entity Level: The top level shows all available entities (e.g., Ats Position, Profile, Position)

  • Sub-Entity Level: Some entities have a few associated sub-entities (eg Profile->Skills)

  • Read/Write Toggle: Each entity/subentity has checkboxes for READ and WRITE permissions

  • Global Read/Write Toggle: Alternatively, if we want to allow access permissions to all READ or all WRITE endpoints, we can select the global toggles on top.

Here are a few examples of API permissions selected and what endpoints they give access to:

  • ATS Position Permissions
    Ats Position:READ - Grants access to:

    1. GET /api/v2/core/ats-systems/{systemId}/ats-positions/{atsPositionId} (ATS Position Get)
    2. GET /api/v2/core/ats-systems/{systemId}/ats-positions (ATS Position List)

    ats_position:WRITE - Grants access to:

    1. PUT /api/v2/core/ats-systems/{systemId}/ats-positions/{atsPositionId} (ATS Position Update)
    2. PATCH /api/v2/core/ats-systems/{systemId}/ats-positions/{atsPositionId} (ATS Position Patch)
    3. POST /api/v2/core/ats-systems/{systemId}/ats-positions (ATS Position Create)


API endpoints and required permissions reference

Below is a comprehensive table listing all API endpoints with their HTTP methods and required permissions from the Eightfold API.


API SummaryPathHTTP MethodRequired Permission
ATS Position Endpoints
ATS Position Get/api/v2/ats-systems/{systemId}/ats-positions/{atsPositionId}GETAts Position:READ
ATS Position Update/api/v2/ats-systems/{systemId}/ats-positions/{atsPositionId}PUTAts Position:WRITE
ATS Position Patch/api/v2/ats-systems/{systemId}/ats-positions/{atsPositionId}PATCHAts Position:WRITE
ATS Position List/api/v2/ats-systems/{systemId}/ats-positionsGETAts Position:READ
ATS Position Create/api/v2/ats-systems/{systemId}/ats-positionsPOSTAts Position:WRITE
Position Endpoints
Position Get/api/v2/positions/{positionId}GETPosition:READ
Position Update/api/v2/positions/{positionId}PUTPosition:WRITE
Position Patch/api/v2/positions/{positionId}PATCHPosition:WRITE
Position List/api/v2/positionsGETPosition:READ
Position Create/api/v2/positionsPOSTPosition:WRITE
Position List Matched Candidates/api/v2/positions/{positionId}/matched-candidatesGETProfile:READ
Position List Applicants/api/v2/position/{positionId}/applicantsGETPosition:READ
Position Batch Fetch/api/v2/positions/batch-fetchPOSTPosition:READ
Transaction Endpoints
Transaction Get/api/v2/transactions/{transactionId}GETTransaction:READ
Profile Endpoints
Profile Get/api/v2/profiles/{profileId}GETProfile:READ
Profile Update/api/v2/profiles/{profileId}PUTProfile:WRITE
Profile Delete/api/v2/profiles/{profileId}DELETEProfile:WRITE
Profile Patch/api/v2/profiles/{profileId}PATCHProfile:WRITE
Profile List/api/v2/profilesGETProfile:READ
Profile Create/api/v2/profilesPOSTProfile:WRITE
Profile List Matched Positions/api/v2/profiles/{profileId}/matched-positionsGETPosition:READ
Create or Advance Application Stage/api/v2/profiles/{profileId}/application/stagesPOSTApplication:WRITE
Profile Batch Fetch/api/v2/profiles/batch-fetchPOSTProfile:READ
Careerhub Endpoints
Suggest Skills Get/api/v2/profiles/suggest-skills/{profileSection}GETProfile:Skills:READ
Career Planner Role Get/api/v2/career-planner/{userEmail}/roles/{roleSection}GETProfile:Role:READ
Career Planner Role Patch/api/v2/career-planner/{userEmail}/roles/PATCHProfile:Role:WRITE
Career Planner Skill Gap Analysis Get/api/v2/career-planner/{userEmail}/skills/skill-gap-analysisGETProfile:Role:READ
Career Planner Recommeded Course Get/api/v2/career-planner/{userEmail}/courses/recommended-coursesGETProfile:Course:READ
Career Navigator Endpoints
Career Navigator Search/api/v2/career-navigator/recommended-paths/{userEmail}GETCareer Navigator:READ
Profile Feedback Endpoints
Profile Feedback Get/api/v2/profile-feedbacks/{profileFeedbackId}GETProfile:Feedback:READ
Profile Feedback Batch Fetch/api/v2/profile-feedbacks/batch-fetchPOSTProfile:Feedback:READ
Profile Feedback List/api/v2/profile-feedbacksGETProfile:Feedback:READ
Profile Note Endpoints
Profile Note Get/api/v2/profile-notes/{profileNoteId}GETProfile:Note:READ
Profile Note Batch Fetch/api/v2/profile-notes/batch-fetchPOSTProfile:Note:READ
Profile Note List/api/v2/profile-notesGETProfile:Role:READ
Profile Tag Endpoints
Profile Tag Get/api/v2/profile-tags/{profileTagId}GETProfile:Tag:READ
Profile Tag Batch Fetch/api/v2/profile-tags/batch-fetchPOSTProfile:Tag:READ
Profile Tag List/api/v2/profile-tagsGETProfile:Role:READ
Profile Application Endpoints
Profile Application Get/api/v2/profile-applications/{profileApplicationId}GETProfile:Application:READ
Profile Application Batch Fetch/api/v2/profile-applications/batch-fetchPOSTProfile:Application:READ
Succession Plan Endpoints
Succession Plan Get/api/v2/succession_plans/{positionId}GETPosition:Succession Plan:READ
Succession Plan Recommended Successors List/api/v2/succession_plans/{positionId}/recommended-successorsGETPosition:Succession Plan:READ
Succession Plan List/api/v2/succession_plansGETPosition:Succession Plan:READ
Succession Plan Create/api/v2/succession_plansPOSTPosition:Succession Plan:WRITE
Succession Plan Incumbent List/api/v2/succession_plans/{positionId}/incumbentsGETPosition:Succession Plan:READ
Succession Plan Successor Create/api/v2/succession_plans/{positionId}/successorsPOSTPosition:Succession Plan:WRITE
Succession Plan Successor Patch/api/v2/succession_plans/{positionId}/successors/{profileId}PATCHPosition:Succession Plan:WRITE
Succession Plan Successor Delete/api/v2/succession_plans/{positionId}/successors/{profileId}DELETEPosition:Succession Plan:WRITE
Succession Plan Caretaker Create/api/v2/succession_plans/{positionId}/caretakersPOSTPosition:Succession Plan:WRITE
Succession Plan Caretaker Delete/api/v2/succession_plans/{positionId}/caretakers/{profileId}DELETEPosition:Succession Plan:WRITE
Demand Endpoints
Demand Get/api/v2/demands/{demandId}GETResource Management:READ
Demand Patch/api/v2/demands/{demandId}PATCHResource Management:WRITE
Demand Update/api/v2/demands/{demandId}PUTResource Management:WRITE
Demand Delete/api/v2/demands/{demandId}DELETEResource Management:WRITE
Demand Create/api/v2/demandsPOSTResource Management:WRITE
Demand List/api/v2/demandsGETResource Management:READ
Batch Demand Fetch/api/v2/demands/batch-fetchPOSTResource Management:READ
External Demand Endpoints
External Demand Get/api/v2/ext-systems/resourcing/ext-demands/{extDemandId}GETExternal Resource Management:READ
External Demand Patch/api/v2/ext-systems/resourcing/ext-demands/{extDemandId}PATCHExternal Resource Management:WRITE
External Demand Update/api/v2/ext-systems/resourcing/ext-demands/{extDemandId}PUTExternal Resource Management:WRITE
External Demand Delete/api/v2/ext-systems/resourcing/ext-demands/{extDemandId}DELETEExternal Resource Management:WRITE
External Demand Create/api/v2/ext-systems/resourcing/ext-demandsPOSTExternal Resource Management:WRITE
External Demand List/api/v2/ext-systems/resourcing/ext-demandsGETExternal Resource Management:READ
External Demand Employee Application Update/api/v2/ext-systems/resourcing/ext-demands/{extDemandId}/employee-create-or-advance-application-stagePOSTExternal Resource Management:WRITE
Booking Endpoints
Booking Get/api/v2/bookings/{bookingId}GETResource Management:READ
Booking Patch/api/v2/bookings/{bookingId}PATCHResource Management:WRITE
Booking Update/api/v2/bookings/{bookingId}PUTResource Management:WRITE
Booking Delete/api/v2/bookings/{bookingId}DELETEResource Management:WRITE
Booking Create/api/v2/bookingsPOSTResource Management:WRITE
Booking List/api/v2/bookingsGETResource Management:READ
Batch Bookings Fetch/api/v2/bookings/batch-fetchPOSTResource Management:READ
External Booking Endpoints
External Booking Get/api/v2/ext-systems/resourcing/ext-bookings/{extBookingId}GETExternal Resource Management:READ
External Booking Patch/api/v2/ext-systems/resourcing/ext-bookings/{extBookingId}PATCHExternal Resource Management:WRITE
External Booking Update/api/v2/ext-systems/resourcing/ext-bookings/{extBookingId}PUTExternal Resource Management:WRITE
External Booking Delete/api/v2/ext-systems/resourcing/ext-bookings/{extBookingId}DELETEExternal Resource Management:WRITE
External Booking Create/api/v2/ext-systems/resourcing/ext-bookingsPOSTExternal Resource Management:WRITE
Holiday Endpoints
Holiday Get/api/v2/holidays/{holidayId}GETResource Management:READ
Holiday Patch/api/v2/holidays/{holidayId}PATCHResource Management:WRITE
Holiday Update/api/v2/holidays/{holidayId}PUTResource Management:WRITE
Holiday Delete/api/v2/holidays/{holidayId}DELETEResource Management:WRITE
Holiday Create/api/v2/holidaysPOSTResource Management:WRITE
Holiday List/api/v2/holidaysGETResource Management:READ
Batch Holidays Fetch/api/v2/holidays/batch-fetchPOSTResource Management:READ
Org Unit Endpoints
Org Unit Get/api/v2/org-units/{orgUnitId}GETT3s:READ
Org Unit List/api/v2/org-unitsGETT3s:READ
Batch Org Unit Fetch/api/v2/org-units/batch-fetchPOSTT3s:READ
Comment Endpoints
Comment Get/api/v2/comments/{commentId}GETResource Management:READ
Comments List/api/v2/commentsGETResource Management:READ