Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/amex-gbt-custom-data-fields-cdf-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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: OpenAPI definition Custom Data Fields (CDF) API
version: v0
description: CDF APIs to retrieve Definitions and Manage Values.
servers:
- url: https://apis.egencia.com/openconnect/api
description: Generated server url
tags:
- description: CDF APIs to retrieve Definitions and Manage Values.
name: Custom Data Fields (CDF)
paths:
/v1/companies/{companyId}/cdfs:
get:
description: 'Request Parameters
Attribute
Type
Description
metadata
companyId
Integer
Id of the company for which CDFs needs to be fetched
name
String
Name of the CDF if only a particular CDF needs to be fetched
Examples:
Retrieving CDFs for company_id : 42219
GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs
-> 200 OK
{
"cdfs": [
{
"id": 27,
"name": "Main cost centre",
"code": "COST_CENTER_1",
"status": "ACTIVE",
"field_type": "LIST"
},
{
"id": 30,
"name": "Secondary cost centre",
"code": "COST_CENTER_2",
"status": "ACTIVE",
"field_type": "LIST"
},
{
"id": 1884,
"name": "Employee ID",
"code": "COST_CENTER_3",
"status": "ACTIVE",
"field_type": "FREE_FIELD"
},
{
"id": 31,
"name": "Free field 1",
"code": "BDC",
"status": "ACTIVE",
"field_type": "FREE_FIELD"
}
]
}'
operationId: getCdfDefinitions
parameters:
- in: path
name: companyId
required: true
schema:
type: integer
format: int64
- in: query
name: name
required: false
schema:
type: string
responses:
'200':
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/CdfDefinitions'
description: <b>OK</b>.
'400':
description: '<b>Bad Request</b> : Invalid input or request'
'401':
description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
'403':
description: '<b>Forbidden</b> : User not Validated for operation.'
'404':
description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
'422':
description: '<b>Invalid input</b> : invalid or missing required input.'
'500':
description: '<b>Internal Server Error</b> : unable to process request'
security:
- OAuth2: []
summary: Fetch all CDF definitions for a company or corresponding to a CDF name
tags:
- Custom Data Fields (CDF)
/v1/companies/{companyId}/cdfs/{definitionId}/values:
get:
description: 'Request Parameters
Attribute
Type
Description
metadata
companyId
Integer
Id of the company
definitionId
Integer
Id of the CDF definition for which values needs to be fetched
value
String
CDF value to search based on display value/label
count
Integer
Count of CDF values to be fetched
start
Integer
Start to support pagination
Examples:
Successful response while retrieving CDF values for company_id : 42219 and definition_id : 27
GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/27/values?count=2&start=0
-> 200 OK
{
"values": [
{
"id": 84429607,
"value": "test A&B",
"description" : "test A&B"
},
{
"id": 84740706,
"value": "test AB",
"description" : "test AB"
}
],
"_links": {
"next": {
"href": "https://apis-eu-west-1.lab.egencia.cloud/openconnect-service/v1/companies/42219/cdfs/27/values?count=2&start=2"
}
}
}
Successful response to search CDF value : test for company_id : 42219 and definition_id : 27
GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/27/values?value=test
-> 200 OK
{
"values": [
{
"id": 83932305,
"value": "Testcc1",
"child_count":0
},
{
"id": 84429607,
"value": "testValue1",
"child_count":0
},
{
"id": 84429608,
"value": "testingCdf",
"child_count":0
}
]
}
Error response while retrieving CDF values for company_id : 42219 and definition_id : 1884
GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/1884/values?count=2&start=0
-> 422 Unprocessable Entity
{
"error": {
"code": "EGE-ER-OS-4006",
"message": "CDF given in request has field type as free field."
}
}'
operationId: getCdfValues
parameters:
- in: path
name: companyId
required: true
schema:
type: integer
format: int64
- in: path
name: definitionId
required: true
schema:
type: integer
format: int64
- in: query
name: value
required: false
schema:
type: string
- in: query
name: count
required: false
schema:
type: integer
format: int32
- in: query
name: start
required: false
schema:
type: integer
format: int32
responses:
'200':
content:
application/hal+json:
schema:
$ref: '#/components/schemas/CdfValuesResponse'
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/CdfValuesResponse'
description: <b>OK</b>.
'400':
description: '<b>Bad Request</b> : Invalid input or request'
'401':
description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
'403':
description: '<b>Forbidden</b> : User not Validated for operation.'
'404':
description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
'422':
description: '<b>Invalid input</b> : invalid or missing required input.'
'500':
description: '<b>Internal Server Error</b> : unable to process request'
security:
- OAuth2: []
summary: Fetch all CDF values for a company and a CDF definition or corresponding to a…
tags:
- Custom Data Fields (CDF)
post:
description: 'Request Parameters
Attribute
Type
Description
metadata
companyId
Integer
Id of the company
definitionId
Integer
Id of the CDF definition
value
String
Value of the CDF
description
String
Description of the CDF Value
Examples:
Creating CDF value : testws for company_id : 42219 and definition_id : 27
POST https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/27/values
{
"value":"testws",
"description":"testws"
}
Successful Response:
-> 201 Created
{
"id": 84736648
}'
operationId: createCdfValue
parameters:
- in: path
name: companyId
required: true
schema:
type: integer
format: int64
- in: path
name: definitionId
required: true
schema:
type: integer
format: int64
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CdfValue'
required: true
responses:
'201':
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/CdfValuesResponse'
description: <b>Created</b>.
'400':
description: '<b>Bad Request</b> : Invalid input or request'
'401':
description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
'403':
description: '<b>Forbidden</b> : User not Validated for operation.'
'404':
description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
'422':
description: '<b>Invalid input</b> : invalid or missing required input.'
'500':
description: '<b>Internal Server Error</b> : unable to process request'
security:
- OAuth2: []
summary: Create a new CDF value for a CDF of field type List
tags:
- Custom Data Fields (CDF)
/v1/companies/{companyId}/cdfs/{definitionId}/values/{valueId}:
delete:
description: 'Request Parameters
Attribute
Type
Description
metadata
companyId
Integer
Id of the company
definitionId
Integer
Id of the CDF definition
valueId
Integer
Id of the CDF value for which values needs to be updated
Examples:
Delete CDF value with id : 676598 for company_id : 42219 and definition_id : 27
DELETE https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/27/values/676598
Successful Response:
-> 204 No Content'
operationId: deleteCdfValue
parameters:
- in: path
name: companyId
required: true
schema:
type: integer
format: int64
- in: path
name: definitionId
required: true
schema:
type: integer
format: int64
- in: path
name: valueId
required: true
schema:
type: integer
format: int64
responses:
'204':
description: <b>No Content</b>.
'401':
description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
'403':
description: '<b>Forbidden</b> : User not Validated for operation.'
'404':
description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
'500':
description: '<b>Internal Server Error</b> : unable to process request'
security:
- OAuth2: []
summary: Delete a CDF value for a CDF of field type List
tags:
- Custom Data Fields (CDF)
get:
description: 'Request Parameters
Attribute
Type
Description
metadata
companyId
Integer
Id of the company
definitionId
Integer
Id of the CDF definition for which values needs to be fetched
value
String
CDF value to search based on display value/label
count
Integer
Count of CDF values to be fetched
start
Integer
Start to support pagination
include_links
Boolean
Fetch CDF Links Flag
Examples:
Successful response while retrieving linked CDF values for company_id : 53092, definition_id : 27, value=84428977
GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/53092/cdfs/27/values/84428977?start=0&count=100&include_links=false
-> 200 OK
{
{
"id": 84428977,
"value": "Value 1",
"child_count": 4
}
Successful response to retrieve linked CDF value : test for company_id : 53092, definition_id : 27, value : 84428977
GET https://apis-eu-west-1.lab.egencia.cloud/openconnect/api//v1/companies/53092/cdfs/27/values/84428977?start=0&count=100&include_links=true
-> 200 OK
{
{
"id": 84428977,
"value": "Value 1",
"child_count": 4,
"links": {
"child": [
{
"value": "Link with CC1 - 1",
"id": "6171129"
},
{
"value": "Link with CC1 - 2",
"id": "6171130"
},
{
"value": "Link with CC1 - 3",
"id": "6171131"
},
{
"value": "Link with CC1 - 4",
"id": "7685276"
}
]
}
}'
operationId: getCdfLinkedValue
parameters:
- in: path
name: companyId
required: true
schema:
type: integer
format: int64
- in: path
name: definitionId
required: true
schema:
type: integer
format: int64
- in: path
name: valueId
required: true
schema:
type: string
- in: query
name: start
required: false
schema:
type: integer
format: int32
default: 0
- in: query
name: count
required: false
schema:
type: integer
format: int32
default: 100
- in: query
name: include_links
required: false
schema:
type: boolean
default: false
responses:
'200':
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/CdfValueLinks'
description: <b>OK</b>.
'400':
description: '<b>Bad Request</b> : Invalid input or request'
'401':
description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
'403':
description: '<b>Forbidden</b> : User not Validated for operation.'
'404':
description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
'422':
description: '<b>Invalid input</b> : invalid or missing required input.'
'500':
description: '<b>Internal Server Error</b> : unable to process request'
security:
- OAuth2: []
summary: Fetch all linked CDF values
tags:
- Custom Data Fields (CDF)
put:
description: 'Request Parameters
Attribute
Type
Description
metadata
companyId
Integer
Id of the company
definitionId
Integer
Id of the CDF definition
valueId
Integer
Id of the CDF value for which values needs to be updated
value
String
Value of the CDF
description
String
Description of the CDF Value
Examples:
Updating CDF value for company_id : 42219, definition_id : 27 and value_id : 676598
PUT https://apis-eu-west-1.lab.egencia.cloud/openconnect/api/v1/companies/42219/cdfs/27/values/676598
{
"value":"testWSNew",
"description":"testWSNew"
}
Successful Response:
-> 204 No Content'
operationId: updateCdfValue
parameters:
- in: path
name: companyId
required: true
schema:
type: integer
format: int64
- in: path
name: definitionId
required: true
schema:
type: integer
format: int64
- in: path
name: valueId
required: true
schema:
type: integer
format: int64
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CdfValue'
required: true
responses:
'204':
description: <b>No Content</b>.
'400':
description: '<b>Bad Request</b> : Invalid input or request'
'401':
description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
'403':
description: '<b>Forbidden</b> : User not Validated for operation.'
'404':
description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
'422':
description: '<b>Invalid input</b> : invalid or missing required input.'
'500':
description: '<b>Internal Server Error</b> : unable to process request'
security:
- OAuth2: []
summary: Update a CDF value for a CDF of field type List
tags:
- Custom Data Fields (CDF)
/v1/companies/{companyId}/cdfs/{definitionId}/values/{valueId}/link:
patch:
description: 'Request Parameters
Attribute
Type
Description
metadata
companyId
Integer
Id of the company
definitionId
Integer
Id of the CDF definition
valueId
Integer
Id of the CDF value for which values needs to be updated
op
String
Operation to be perfomed on Cdf Link
link
String
Cdf link on which operation is to be perfomed
value
List
Value of the CDF which should be numeric'
operationId: patchCdfValue
parameters:
- in: path
name: companyId
required: true
schema:
type: integer
format: int64
- in: path
name: definitionId
required: true
schema:
type: integer
format: int64
- in: path
name: valueId
required: true
schema:
type: integer
format: int64
requestBody:
content:
application/json-patch+json:
examples:
'Request to link child value to parent CDF for company_id : 53092, definition_id : 27 and value_id : 84428977':
description: 'Request to link child value to parent CDF for company_id : 53092, definition_id : 27 and value_id : 84428977'
summary: Add child value to parent CDF
value:
- op: add
path: /child
value:
- 6171131
'Request to link parent value to child CDF for company_id : 53092, definition_id : 30 and value_id : 7685276':
description: 'Request to link parent value to child CDF for company_id : 53092, definition_id : 30 and value_id : 7685276'
summary: Add parent value to child CDF
value:
- op: add
path: /parent
value:
- 85273140
'Request to unlink child value from parent CDF for company_id : 53092, definition_id : 27 and value_id : 84428977':
description: 'Request to unlink child value from parent CDF for company_id : 53092, definition_id : 27 and value_id : 84428977'
summary: Remove child value from parent CDF
value:
- op: remove
path: /child/7685276
'Request to unlink parent value from child CDF for company_id : 53092, definition_id : 30 and value_id : 7685276':
description: 'Request to unlink parent value from child CDF for company_id : 53092, definition_id : 30 and value_id : 7685276'
summary: Remove parent value from child CDF
value:
- op: remove
path: /parent/85273140
schema:
type: array
items:
$ref: '#/components/schemas/JsonPatchRequest'
description: CDF PATCH request schema
required: true
responses:
'204':
description: <b>No Content</b>.
'400':
description: '<b>Bad Request</b> : Invalid input or request'
'401':
description: '<b>Unauthorized</b> : <i>authentication token</i> empty, invalid or expired.'
'403':
description: '<b>Forbidden</b> : User not Validated for operation.'
'404':
description: '<b>Not Found</b> : You are trying to access an invalid or non existent resource.'
'415':
description: '<b>Unsupported Media Type</b> : Incorrect media type provided'
'422':
content:
application/json;charset=utf-8:
example:
error:
code: EGE-ER-OS-4022
message: Invalid CDF Value IDs [7685276] passed for linking
description: '<b>Unprocessable Entity</b> : Invalid or missing required input.'
'500':
description: '<b>Internal Server Error</b> : unable to process request'
security:
- OAuth2: []
summary: Update CDF Value by adding or removing child/parent links.
tags:
- Custom Data Fields (CDF)
components:
schemas:
JsonPatchRequest:
type: object
properties:
op:
type: string
path:
type: string
value: {}
CdfDefinitionRule:
type: object
properties:
editable:
type: boolean
description: Indicates if the CDF is editable for specific user type and placement.
mandatory:
type: boolean
description: Indicates if the CDF is mandatory for specific user type and placement.
placement:
type: string
description: CDF placement
enum:
- CHECKOUT
- USER_PROFILE
- GUEST_TEMPLATE
- GUEST_REGISTRATION_FORM
- EXPENSE
userType:
type: string
description: Specifies the type of user associated with the rule. If this field is not set, rule applies for travelers.
required:
- placement
title: CdfDefinitionRule
Link:
type: object
properties:
deprecation:
type: string
href:
type: string
hreflang:
type: string
name:
type: string
profile:
type: string
templated:
type: boolean
title:
type: string
type:
type: string
CdfValueLinks:
type: object
description: Linked CDF value response based on different user filters
properties:
childCount:
type: integer
format: int32
description: Count of child links
description:
type: string
description: CDF value description. This field is mandatory for creating/updating NA Department Code CDF values
id:
type: integer
format: int64
description: CDF value ID
links:
$ref: '#/components/schemas/CdfLinks'
description: Linked Cdf values
parentCount:
type: integer
format: int32
description: Count of parent links
value:
type: string
description: CDF value name. By default, maximum supported characters is 30 for LIST type and 50 for FREE_FIELD.
minLength: 1
required:
- value
title: CdfValueLinks
CdfLinkValue:
type: object
description: Link values
properties:
id:
type: string
description: Linked CDF id
value:
type: string
description: Linked CDF value
title: LinkValues
CdfValuesResponse:
type: object
description: CDF values response based on different user filters
properties:
_links:
$ref: '#/components/schemas/Links'
values:
type: array
description: CDF Values
items:
$ref: '#/components/schemas/CdfValue'
title: CDFValuesResponse
Links:
type: object
additionalProperties:
$ref: '#/components/schemas/Link'
CdfLinks:
type: object
description: Linked CDF value
properties:
child:
type: array
description: Child linked value
items:
$ref: '#/components/schemas/CdfLinkValue'
parent:
type: array
description: Parent linked value
items:
$ref: '#/components/schemas/CdfLinkValue'
title: Links
CdfValue:
type: object
description: CDF value response based on different user filters
properties:
childCount:
type: integer
format: int32
description: Count of child links
description:
type: string
description: CDF value description. This field is mandatory for creating/updating NA Department Code CDF values
id:
type: integer
format: int64
description: CDF value ID
parentCount:
type: integer
format: int32
description: Count of parent links
value:
type: string
description: CDF value name. By default, maximum supported characters is 30 for LIST type and 50 for FREE_FIELD.
minLength: 1
required:
- value
title: CDFValueResponse
CdfDefinition:
type: object
description: CDF Definition
properties:
code:
type: string
description: CDF definition code
fieldType:
type: string
description: CDF type
enum:
- FREE_FIELD, LIST
id:
type: integer
format: int64
description: CDF definition id
maxLength:
type: integer
format: int32
description: CDF max length
name:
type: string
description: CDF definition name
rules:
type: array
description: CDF definition rule
items:
$ref: '#/components/schemas/CdfDefinitionRule'
status:
type: string
description: CDF definition status
enum:
- ACTIVE
- PENDING
- DELETED
- INACTIVE
title: CDFDefinition
CdfDefinitions:
type: object
description: CDF Definitions
properties:
cdfs:
type: array
description: List of CDF Definitions for the company
items:
$ref: '#/components/schemas/CdfDefinition'
title: CDFDefinitions
securitySchemes:
OAuth2:
flows:
clientCredentials:
tokenUrl: https://apis.egencia.com/auth/v1/token
type: oauth2