COR Contract Positions API
The Contract Positions API from COR — 2 operation(s) for contract positions.
The Contract Positions API from COR — 2 operation(s) for contract positions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cor-contract-positions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: COR Attachments Contract Positions API
description: The COR API lets you integrate with projectcor.com applications using simple HTTP methods, in either XML or JSON formats, making this an ideal API for developing integrations with other softwares, external clients or mobile applications
version: 1.0.0
servers:
- url: https://api.projectcor.com/v1
description: Production server
security:
- bearerAuth: []
tags:
- name: Contract Positions
paths:
/contracts/{contract_id}/positions:
get:
tags:
- Contract Positions
summary: Get contract positions
description: Retrieves all positions associated with a contract.
parameters:
- name: contract_id
in: path
required: true
schema:
type: integer
- name: page
in: query
schema:
type:
- integer
- boolean
default: 1
description: 'Page number (default: 1). Set to `false` to disable pagination.'
- name: perPage
in: query
schema:
type: integer
default: 20
description: 'Number of items per page (default: 20).'
responses:
'200':
description: List of contract positions
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedContractPositionRatesResponse'
post:
tags:
- Contract Positions
summary: Create contract position
description: Creates a new position rate for the specified contract.
parameters:
- name: contract_id
in: path
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ContractPositionCreateInput'
responses:
'200':
description: Contract position created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ContractPositionRate'
/contracts/{contract_id}/positions/{contract_position_rate_id}:
put:
tags:
- Contract Positions
summary: Update contract position
description: Updates rate and/or hours for a contract position.
parameters:
- name: contract_id
in: path
required: true
schema:
type: integer
- name: contract_position_rate_id
in: path
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ContractPositionUpdateInput'
responses:
'200':
description: Contract position updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ContractPositionRate'
components:
schemas:
ContractPositionRate:
type: object
description: Contract position rate configuration
properties:
id:
type: integer
description: Contract position rate ID
user_positions_header_id:
type: integer
description: User positions header ID
contract_id:
type: integer
description: Contract ID
position_id:
type: integer
description: Position ID
team_id:
type: integer
description: Team ID
currency_id:
type: integer
description: Currency ID
rate:
type: number
description: Configured hourly rate
hours:
type: number
description: Configured contract hours
team:
type: object
properties:
id:
type: integer
description: Team ID
name:
type: string
description: Team name
currency:
type: object
properties:
id:
type: integer
description: Currency ID
name:
type: string
description: Currency name
position:
type: object
properties:
id:
type: integer
description: Position Id
name:
type: string
description: Position name
seniority:
type: string
description: Seniority name
PaginatedContractPositionRatesResponse:
type: object
description: Paginated response for contract positions list
properties:
total:
type:
- string
- integer
description: Total number of contract position rates
perPage:
type:
- string
- integer
description: Number of items per page
page:
type:
- string
- integer
description: Current page number
lastPage:
type: integer
description: Last available page number
data:
type: array
description: Array of contract positions for the current page
items:
$ref: '#/components/schemas/ContractPositionRate'
example:
total: '1'
perPage: 20
page: 1
lastPage: 1
data:
- id: 1
user_positions_header_id: 1
contract_id: 1
position_id: 1
team_id: 1
rate: 1.0
hours: 10
currency_id: 1
currency:
id: 1
name: USD
team:
id: 1
name: Team 1
workspace_id: null
position:
id: 1
name: User Position 1
ContractPositionUpdateInput:
type: object
properties:
rate:
type: number
description: Updated hourly rate
hours:
type: number
description: Updated hours
ContractPositionCreateInput:
type: object
required:
- position_id
- team_id
- rate
- hours
properties:
position_id:
type: integer
description: Position ID
team_id:
type: integer
description: Team ID
rate:
type: number
description: Hourly rate to assign
hours:
type: number
description: Hours to assign
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
basicAuth:
type: http
scheme: basic