Skip to main content
The IPED Web API provides RESTful HTTP endpoints for searching, retrieving, and manipulating evidence items remotely.

Starting the Web API Server

Start the Web API server using the command line:

Command Line Options

string
default:"0.0.0.0"
Host address to bind the server. Use 127.0.0.1 for local access only.
int
default:"8080"
Port number for the HTTP server
string
required
Path to JSON file or URL containing case source definitions

Sources Configuration

Create a sources.json file defining available cases:

Base URL

All endpoints are relative to: http://HOST:PORT Example: http://localhost:8080

Sources Endpoints

List Sources

Retrieve all available case sources.
array
Array of source objects
Response Example:

Get Source Details

Retrieve information about a specific source. Endpoint: GET /sources/{sourceID}
string
required
Source identifier
Response Example:

Add Source

Dynamically add a new case source. Endpoint: POST /sources
string
required
Unique identifier for the source
string
required
Filesystem path to the case directory

Search Endpoint

Search Documents

Search for documents across all sources or a specific source. Endpoint: GET /search
string
required
Lucene query string (see Search API for syntax)
string
Optional source identifier to search within a specific case. If omitted, searches all sources.
array
Array of document references
Response Example:

Query Examples

Document Endpoints

Get Document Properties

Retrieve all properties and metadata for a document. Endpoint: GET /sources/{sourceID}/docs/{id}
string
required
Source identifier
int
required
Item ID
string
Source identifier
int
Item ID
int
Internal Lucene document ID
object
Map of property names to arrays of values
array
Array of bookmark names assigned to this item
boolean
Whether the item is selected/checked
Response Example:

Get Document Content

Download the raw binary content of a document. Endpoint: GET /sources/{sourceID}/docs/{id}/content
string
required
Source identifier
int
required
Item ID
Response:
  • Content-Type: application/octet-stream
  • Content-Disposition: attachment; filename="original-filename.ext"
  • Binary content stream

Get Document Text

Retrieve the extracted text content of a document. Endpoint: GET /sources/{sourceID}/docs/{id}/text
string
required
Source identifier
int
required
Item ID
Response:
  • Content-Type: text/plain; charset=UTF-8
  • Extracted text content

Bookmark Endpoints

List Bookmarks

Get all bookmark names across all sources. Endpoint: GET /bookmarks
Response Example:

List Bookmark Documents

Get all documents in a specific bookmark. Endpoint: GET /bookmarks/{bookmark}
string
required
Bookmark name
Response Example:

Create Bookmark

Create a new bookmark. Endpoint: POST /bookmarks/{bookmark}
string
required
Name for the new bookmark

Add Documents to Bookmark

Add documents to an existing bookmark. Endpoint: PUT /bookmarks/{bookmark}/add
string
required
Bookmark name
array
required
Array of document references to add

Remove Documents from Bookmark

Remove documents from a bookmark. Endpoint: PUT /bookmarks/{bookmark}/remove
string
required
Bookmark name
array
required
Array of document references to remove

Delete Bookmark

Delete a bookmark and all its associations. Endpoint: DELETE /bookmarks/{bookmark}
string
required
Bookmark name to delete

Rename Bookmark

Rename an existing bookmark. Endpoint: PUT /bookmarks/{old}/rename/{new}
string
required
Current bookmark name
string
required
New bookmark name

Error Responses

API endpoints return standard HTTP status codes: Error Response Example:

Rate Limiting

The API does not currently implement built-in rate limiting. For production deployments, implement rate limiting via reverse proxy (see Authentication).

Swagger/OpenAPI

The API provides Swagger documentation: Endpoint: GET /application.wadl Access interactive API docs at: http://localhost:8080/application.wadl

See Also