Repository

Looks good to me!

User Tools

Site Tools


kb:intranet:services:project:openproject:api

OpenProject API

Introduction

If webserver is configured correctly, the interactive API documentation is found at https://OPENPROJECT_DOMAIN/api/docs

Example

Enable API keys as admin, then create an API key for the corresponding user. For example, using curl to query:

user:~$ cat query.sh
API_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
curl -u apikey:$API_KEY "https://openproject.pyuxiang.com/api/v3/$1" 2>/dev/null
user:~$ query.sh 'projects'
{
  "_type": "Collection",
  "total": 1,
  "count": 1,
  "pageSize": 100,
  "offset": 1,
  "_embedded": {
    "elements": [
      {
        "_type": "Project",
        "id": 1,
        "identifier": "nus",
        "name": "NUS",
        "active": false,
        "public": false,
...

curl with client p12 certificate

To force URL-encoding of the JSON, use the following (escaping brackets in curl does not seem to work):

text=$(echo '[{ "id": { "operator": "=", "values": ["5"] } }]' | jq -r tostring)
alias urlencode3='python3 -c "import sys, urllib.parse; print (urllib.parse.quote(sys.stdin.read()))"'
echo $text | urlencode3
# %5B%7B%22id%22%3A%7B%22operator%22%3A%22%3D%22%2C%22values%22%3A%5B%225%22%5D%7D%7D%5D%0A
kb/intranet/services/project/openproject/api.txt · Last modified: 38 hours ago ( 9 July 2025) by justin