REST API Documentation
The REST API requires at least xltrail v4.0.2
API Key
In xltrail, go to Settings > Access > API Key
to create and copy your API key.
NOTE: There are two types of API keys, Personal API Key
and Group API Key
. As of now, the Group API Key
can only be used for incoming webhooks. For anything API related, use the Personal API Key
.
Headers
All requests must include the following headers:
X-API-KEY: your_api_key
Accept: application/json
Content-Type: application/json
Base URL
The base URL is the URL of your xltrail app + /api
. If you are using the cloud, it is
https://app.xltrail.com/api
. Always prepend the base URL in front of the endpoints below.
Endpoints
GET /repos
Lists all repositories.
Sample Request
curl --request GET \
--header "X-API-KEY: your_api_key" \
--header "Accept: application/json" \
--header "Content-type: application/json" \
"https://app.xltrail.com/api/repos"
Sample Response
[
{
"id": "62ab6fb3-a152-44bd-b566-59acce5eff24",
"name": "Accounting",
"full_name": "Accounting",
"url": null,
"created_at": "2024-03-14T13:52:56.866088+00:00"
},
{
"id": "0500a155-d85a-4eae-a45e-5ec4087b4b43",
"name": "salesplan",
"full_name": "github.com/fzumstein/salesplan.git",
"url": "https://github.com/fzumstein/salesplan.git",
"created_at": "2024-03-14T13:52:16.272240+00:00"
}
]
POST /repos
Create a new repository.
Sample Request (Drag and drop)
curl --request POST \
--header "X-API-KEY: your_api_key" \
--header "Accept: application/json" \
--header "Content-type: application/json" \
--data '{"name": "Accounting"}' \
"https://app.xltrail.com/api/repos"
Sample Response (Drag and drop)
{
"id": "62ab6fb3-a152-44bd-b566-59acce5eff24",
"name": "Accounting",
"full_name": "Accounting",
"url": null,
"created_at": "2024-03-14T13:52:56.866088+00:00"
}
Sample Request (external Git repo)
curl --request POST \
--header "X-API-KEY: your_api_key" \
--header "Accept: application/json" \
--header "Content-type: application/json" \
--data '{"url": "https://github.com/fzumstein/salesplan.git", "username": "...", "password": "..."}' \
"https://app.xltrail.com/api/repos"
Sample Response (external Git repo)
{
"id": "0500a155-d85a-4eae-a45e-5ec4087b4b43",
"name": "salesplan",
"full_name": "github.com/fzumstein/salesplan.git",
"url": "https://github.com/fzumstein/salesplan.git",
"created_at": "2024-03-14T13:52:16.272240+00:00"
}
GET /repos/{repo}/contents
Get a workbook or the content of a folder.
Sample Request (entire project)
Returns the content of the my-repo
repository and writes it to repo.zip
.
curl \
--output repo.zip \
--header "X-API-KEY: your_api_key" \
--request GET \
"https://app.xltrail.com/api/repos/my-repo/contents"
Sample Request (folder)
Returns the /path/to/folder
folder content of the my-repo
repository and writes it to folder.zip
.
curl \
--output repo.zip \
--header "X-API-KEY: your_api_key" \
--request GET \
"https://app.xltrail.com/api/repos/my-repo/contents/path/to/folder"
Sample Request (folder on branch dev)
Returns the /path/to/folder
folder content of the dev
branch of the my-repo
repository and writes it to folder.zip
.
curl \
--output repo.zip \
--header "X-API-KEY: your_api_key" \
--request GET \
"https://app.xltrail.com/api/repos/my-repo/contents/path/to/folder?branch=dev"
Sample Request (workbook)
Returns the /path/to/folder/workbook1.xlsx
workbook and writes it to workbook1.xlsx
.
curl \
--output repo.zip \
--header "X-API-KEY: your_api_key" \
--request GET \
"https://app.xltrail.com/api/repos/my-repo/contents/path/to/folder/workbook1.xlsx"