Skip to content

Requests

B2SHARE Requests API:s#

Get a request#

Get a specific request by id.

  HTTP method: GET

  URL path: /api/requests/<request-id>

  Required parameters: request-id

  Status code on success: 200

  Returns: The request in a JSON format.

Command:

curl "https://$B2SHARE_HOST/api/requests/<request-id>"
Returns:
{
  "id": "request-id",
  "created": "2025-01-01T08:00:00.000000+00:00",
  "updated": "2025-01-01T08:00:00.000000+00:00",
  "links": {
    "actions": {},
    "self": "https://b2share.eudat.eu/api/requests/request-id",
    "self_html": "https://b2share.eudat.eu/requests/request-id",
    "comments": "https://b2share.eudat.eu/api/requests/request-id/comments",
    "timeline": "https://b2share.eudat.eu/api/requests/request-id/timeline"
  },
  "revision_id": 1,
  "type": "community-submission",
  "title": "Lorem ipsum dolor",
  "number": "2h",
  "status": "accepted",
  "is_closed": true,
  "is_open": false,
  "expires_at": null,
  "is_expired": false,
  "created_by": {
    "user": "user-id"
  },
  "receiver": {
    "community": "community-id"
  },
  "topic": {
    "record": "record-id"
  }
}

Search requests#

Get all requests with a search query

  HTTP method: GET

  URL path: /api/requests

  Required parameters: None

  Optional parameters: q, sort, size, page

  Status code on success: 200

  Returns: A list of requests in a JSON format.

Command:

curl "https://$B2SHARE_HOST/api/requests"
Returns:
{
  "hits": {
    "hits": [
        {
            "id": "request-id",
            "created": "2025-01-01T08:00:00.000000+00:00",
            "updated": "2025-01-01T08:00:00.000000+00:00",
            "links": {
                "actions": {},
                "self": "https://b2share.eudat.eu/api/requests/request-id",
                "self_html": "https://b2share.eudat.eu/requests/request-id",
                "comments": "https://b2share.eudat.eu/api/requests/request-id/comments",
                "timeline": "https://b2share.eudat.eu/api/requests/request-id/timeline"
            },
            "revision_id": 1,
            "type": "community-submission",
            "title": "Lorem ipsum dolor",
            "number": "2h",
            "status": "accepted",
            "is_closed": true,
            "is_open": false,
            "expires_at": null,
            "is_expired": false,
            "created_by": {
                "user": "user-id"
            },
            "receiver": {
                "community": "community-id"
            },
            "topic": {
                "record": "record-id"
            }
        },
        ...
    ],
    "total": 31
  },
  "aggregations": {
    "type": {
      "buckets": [
        {
          "key": "community-submission",
          "doc_count": 30,
          "label": "Draft review",
          "is_selected": false
        },
        {
          "key": "community-invitation",
          "doc_count": 1,
          "label": "Member invitation",
          "is_selected": false
        }
      ],
      "label": "Type"
    },
    "status": {
      "buckets": [
        {
          "key": "accepted",
          "doc_count": 23,
          "label": "Accepted",
          "is_selected": false
        },
        {
          "key": "created",
          "doc_count": 7,
          "label": "created",
          "is_selected": false
        },
        {
          "key": "submitted",
          "doc_count": 1,
          "label": "Submitted",
          "is_selected": false
        }
      ],
      "label": "Status"
    }
  },
  "sortBy": "newest",
  "links": {
    "self": "https://b2share.eudat.eu/api/requests?page=1&size=25&sort=newest",
    "next": "https://b2share.eudat.eu/api/requests?page=2&size=25&sort=newest"
  }
}

Accept a request#

Accept a request.

  HTTP method: POST

  URL path: /api/requests/<request-id>/actions/accept

  Required parameters: request-id

  Request body: Payload that is a comment to the request

  Status code on success: 200

  Returns: The accepted request in JSON format.

Request body

{
    "payload": {
        "content": "Comment content",
        "format": "html"
    }
}

Command:

curl -XPOST -H "Content-Type:application/json" -d '{"payload": {"content": "Comment content", "format": "html"}}'  "https://$B2SHARE_HOST/api/requests/request-id/actions/accept"
Returns:
{
  "id": "request-id",
  "created": "2025-01-01T08:00:00.000000+00:00",
  "updated": "2025-01-01T08:00:00.000000+00:00",
  "links": {
    "actions": {},
    "self": "https://b2share.eudat.eu/api/requests/request-id",
    "self_html": "https://b2share.eudat.eu/requests/request-id",
    "comments": "https://b2share.eudat.eu/api/requests/request-id/comments",
    "timeline": "https://b2share.eudat.eu/api/requests/request-id/timeline"
  },
  "revision_id": 1,
  "type": "community-submission",
  "title": "Lorem ipsum dolor",
  "number": "2h",
  "status": "accepted",
  "is_closed": true,
  "is_open": false,
  "expires_at": null,
  "is_expired": false,
  "created_by": {
    "user": "user-id"
  },
  "receiver": {
    "community": "community-id"
  },
  "topic": {
    "record": "record-id"
  }
}

Decline a request#

Decline a request.

  HTTP method: POST

  URL path: /api/requests/<request-id>/actions/decline

  Required parameters: request-id

  Request body: Payload that is a comment to the request

  Status code on success: 200

  Returns: The declined request in JSON format.

Request body

{
    "payload": {
        "content": "Comment content",
        "format": "html"
    }
}

Command:

curl -XPOST -H "Content-Type:application/json" -d '{"payload": {"content": "Comment content", "format": "html"}}'  "https://$B2SHARE_HOST/api/requests/request-id/actions/decline"
Returns:
{
  "id": "request-id",
  "created": "2025-01-01T08:00:00.000000+00:00",
  "updated": "2025-01-01T08:00:00.000000+00:00",
  "links": {
    "actions": {},
    "self": "https://b2share.eudat.eu/api/requests/request-id",
    "self_html": "https://b2share.eudat.eu/requests/request-id",
    "comments": "https://b2share.eudat.eu/api/requests/request-id/comments",
    "timeline": "https://b2share.eudat.eu/api/requests/request-id/timeline"
  },
  "revision_id": 1,
  "type": "community-submission",
  "title": "Lorem ipsum dolor",
  "number": "2h",
  "status": "declined",
  "is_closed": true,
  "is_open": false,
  "expires_at": null,
  "is_expired": false,
  "created_by": {
    "user": "user-id"
  },
  "receiver": {
    "community": "community-id"
  },
  "topic": {
    "record": "record-id"
  }
}

Cancel a request#

Cancel a request.

  HTTP method: POST

  URL path: /api/requests/<request-id>/actions/cancel

  Required parameters: request-id

  Request body: Payload that is a comment to the request

  Status code on success: 200

  Returns: The accepted request in JSON format.

Request body

{
    "payload": {
        "content": "Comment content",
        "format": "html"
    }
}

Command:

curl -XPOST -H "Content-Type:application/json" -d '{"payload": {"content": "Comment content", "format": "html"}}'  "https://$B2SHARE_HOST/api/requests/request-id/actions/cancel"
Returns:
{
  "id": "request-id",
  "created": "2025-01-01T08:00:00.000000+00:00",
  "updated": "2025-01-01T08:00:00.000000+00:00",
  "links": {
    "actions": {},
    "self": "https://b2share.eudat.eu/api/requests/request-id",
    "self_html": "https://b2share.eudat.eu/requests/request-id",
    "comments": "https://b2share.eudat.eu/api/requests/request-id/comments",
    "timeline": "https://b2share.eudat.eu/api/requests/request-id/timeline"
  },
  "revision_id": 1,
  "type": "community-submission",
  "title": "Lorem ipsum dolor",
  "number": "2h",
  "status": "cancelled",
  "is_closed": true,
  "is_open": false,
  "expires_at": null,
  "is_expired": false,
  "created_by": {
    "user": "user-id"
  },
  "receiver": {
    "community": "community-id"
  },
  "topic": {
    "record": "record-id"
  }
}

Add a comment to a request#

Add a comment to a request.

  HTTP method: POST

  URL path: /api/requests/<request-id>/comments

  Required parameters: request-id

  Request body: payload

  Status code on success: 201

  Returns: The comment in JSON format.

Request body

{
    "payload": {
        "content": "Comment content",
        "format": "html"
    }
}

Command:

curl -XPOST -H "Content-Type:application/json" -d '{"payload": {"content": "Comment content", "format": "html"}}' "https://$B2SHARE_HOST/api/requests/request-id/comments"
Returns:
{
    "created_by": {"user": "user-id"},
    "created": "2025-01-01 09:00:00.000000",
    "id": "<comment-id>",
    "links": {
        "self": "https://b2share.eudat.eu/api/requests/<rquest-id>/comments/<comment-id>"
    },
    "payload": {
        "content": "Comment content",
        "format": "html"
    },
    "revision_id": 1,
    "type": "C",
    "updated": "2025-01-01 09:00:00.000000",
}

Get a comment of a request#

Get a comment of a request by comment id.

  HTTP method: GET

  URL path: /api/requests/<request-id>/comments/<comment-id>

  Required parameters: request-id, comment-id

  Status code on success: 200

  Returns: The comment in JSON format.

Command:

curl "https://$B2SHARE_HOST/api/requests/request-id/comments/comment-id"
Returns:
{
    "created_by": {"user": "user-id"},
    "created": "2025-01-01 09:00:00.000000",
    "id": "<comment-id>",
    "links": {
        "self": "https://b2share.eudat.eu/api/requests/<rquest-id>/comments/<comment-id>"
    },
    "payload": {
        "content": "Comment content",
        "format": "html"
    },
    "revision_id": 1,
    "type": "C",
    "updated": "2025-01-01 09:00:00.000000",
}

Update a comment of a request#

  HTTP method: PUT

  URL path: /api/requests/<request-id>/comments/<comment-id>

  Required parameters: request-id, comment-id

  Request body: payload

  Status code on success: 200

  Returns: ...

Request body

{
    "payload": {
        "content": "Updated comment content",
        "format": "html"
    }
}

Command:

curl -XPUT -H "Content-Type:application/json" -d '{"payload": {"content": "Updated comment content", "format": "html"}}'  "https://$B2SHARE_HOST/api/requests/request-id/comments/comment-id"
Returns:
{
    "created_by": {"user": "user-id"},
    "created": "2025-01-01 09:00:00.000000",
    "id": "<comment-id>",
    "links": {
        "self": "https://b2share.eudat.eu/api/requests/<rquest-id>/comments/<comment-id>"
    },
    "payload": {
        "content": "Updated comment content",
        "format": "html"
    },
    "revision_id": 2,
    "type": "C",
    "updated": "2025-01-02 09:00:00.000000",
}

Delete a comment of a request#

  HTTP method: DELETE

  URL path: /api/requests/<request-id>/comments/<comment-id>

  Required parameters: request-id, comment-id

  Status code on success: 204

  Returns: No content

Command:

curl -XDELETE "https://$B2SHARE_HOST/api/requests/request-id/comments/comment-id"

Get timeline of a request#

  HTTP method: GET

  URL path: /api/requests/<request-id>/timeline

  Required parameters: request-id

  Status code on success: 200

  Returns: Events of a request in JSON format

Command:

curl "https://$B2SHARE_HOST/api/requests/request-id/timeline"
Returns:
{
  "hits": {
    "hits": [
      {
        "id": "comment-id",
        "created": "2025-01-01T08:00:00.000000+00:00",
        "updated": "2025-01-01T08:00:00.000000+00:00",
        "links": {
          "self": "https://b2share.eudat.eu/api/requests/request-id/comments/comment-id"
        },
        "revision_id": 1,
        "type": "L",
        "created_by": {
          "user": "system"
        },
        "permissions": {},
        "payload": {
          "event": "accepted",
          "format": "html"
        }
      },
      {
        "id": "comment-id",
        "created": "2025-01-02T08:00:00.000000+00:00",
        "updated": "2025-01-02T08:00:00.000000+00:00",
        "links": {
          "self": "https://b2share.eudat.eu/api/requests/request-id/comments/comment-id"
        },
        "revision_id": 1,
        "type": "C",
        "created_by": {
          "user": "system"
        },
        "permissions": {
          "can_update_comment": false,
          "can_delete_comment": false
        },
        "payload": {
          "content": "This request has been automatically accepted, as the uploader can submit to community directly without review.",
          "format": "html"
        }
      }
    ],
    "total": 2
  },
  "sortBy": "oldest",
  "links": {
    "self": "https://b2share.eudat.eu/api/requests/request-id/timeline?page=1&size=25&sort=oldest"
  }
}

Last update : 18.11.2025

Last review : 18.11.2025