# API Documentation The following API documentation is derived directly from [MISP RestResponseComponent's source code](app/Controller/Component/RestResponseComponent.php) # Attributes ## Add POST a MISP Attribute JSON to this API to create an Attribute. ``` /attributes/add/[event_id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | event_id | | | ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | value |string | | | type |string |The type of the attribute | #### Optional | Name |Type |Description | | -- |-- |-- | | category |string | | | to_ids |integer |The state of the `to_ids` flag | | uuid |string | | | distribution |integer | | | sharing_group_id |integer | | | timestamp |integer | | | comment |string | | | data |string |Base64 encoded file contents | | encrypt |integer |When uploading malicious samples, set this flag to tell MISP to encrypt the sample and extract the file hashes. This will create a MISP object with the appropriate attributes. | | first_seen |string |A valid ISO 8601 datetime format, up to milli-seconds. i.e.: 2019-06-13T15:56:56.856074+02:00 | | last_seen |string |A valid ISO 8601 datetime format, up to milli-seconds. i.e.: 2019-06-13T15:56:56.856074+02:00 | ## Edit POST a MISP Attribute JSON to this API to update an Attribute. If the timestamp is set, it has to be newer than the existing Attribute. ``` /attributes/edit/[attribute_id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | attribute_id | | | ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | value |string | | | type |string |The type of the attribute | | category |string | | | to_ids |integer |The state of the `to_ids` flag | | uuid |string | | | distribution |integer | | | sharing_group_id |integer | | | timestamp |integer | | | comment |string | | | date |date |The user set date field on the event level. If you are using restSearch, you can use any of the valid time related filters (examples: 7d, timestamps, [14d, 7d] for ranges, etc.) | | encrypt |integer |When uploading malicious samples, set this flag to tell MISP to encrypt the sample and extract the file hashes. This will create a MISP object with the appropriate attributes. | | first_seen |string |A valid ISO 8601 datetime format, up to milli-seconds. i.e.: 2019-06-13T15:56:56.856074+02:00 | | last_seen |string |A valid ISO 8601 datetime format, up to milli-seconds. i.e.: 2019-06-13T15:56:56.856074+02:00 | ## DeleteSelected POST a list of attribute IDs in JSON format to this API to delete the given attributes. This API also expects an event ID passed via the URL or via the event_id key. The id key also takes 'all' as a parameter for a wildcard search to mass delete attributes. If you want the function to also hard-delete already soft-deleted attributes, pass the allow_hard_delete key. ``` /attributes/deleteSelected/[event_id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | event_id |integer | | ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | id |integer | | #### Optional | Name |Type |Description | | -- |-- |-- | | event_id |integer | | | allow_hard_delete |integer |hard-delete already soft-deleted attributes | ## RestSearch Search MISP using a list of filter parameters and return the data in the selected format. The search is available on an event and an attribute level, just select the scope via the URL (/events/restSearch vs /attributes/restSearch). Besides the parameters listed, other, format specific ones can be passed along (for example: requested_attributes and includeContext for the CSV export). This API allows pagination via the page and limit parameters. ``` /attributes/restSearch ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | returnFormat |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | page |integer |Page number for the pagination | | limit |integer |Limit on the pagination | | value |string | | | type |string |The type of the attribute | | category |string | | | org |string |Can be either the ORG_ID or the ORG_NAME | | tags |string | | | date |date |The user set date field on the event level. If you are using restSearch, you can use any of the valid time related filters (examples: 7d, timestamps, [14d, 7d] for ranges, etc.) | | last |string |Events published within the last x amount of time, where x can be defined in days, hours, minutes (for example 5d or 12h or 30m) | | eventid |integer | | | withAttachments |integer | | | uuid |string | | | publish_timestamp |integer | | | timestamp |integer | | | attribute_timestamp |integer |The timestamp at which the attribute was last modified | | enforceWarninglist |integer |Should the warning list be enforced. Adds `blocked` field for matching attributes | | to_ids |integer |The state of the `to_ids` flag | | deleted |integer |Include deleted elements | | includeEventUuid |integer |Include matching eventUuids in the response | | includeEventTags |integer |Include tags of matching events in the response | | event_timestamp |integer |The timestamp at which the event was last modified | | threat_level_id |integer | | | eventinfo |string |Quick event description | | includeProposals |integer |Include proposals of matching events in the response | | includeDecayScore |integer |Include all enabled decaying score | | includeFullModel |integer |Include all model information of matching events in the response | | decayingModel |string |Specify the decaying model from which the decaying score should be calculated | | excludeDecayed |integer |Should the decayed elements by excluded | | score |integer |An alias to override on-the-fly the threshold of the decaying model | | first_seen |string |Seen within the last x amount of time, where x can be defined in days, hours, minutes (for example 5d or 12h or 30m) | | last_seen |string |Seen within the last x amount of time, where x can be defined in days, hours, minutes (for example 5d or 12h or 30m) | ## AddTag Add a tag or a tag collection to an attribute. ``` /attributes/addTag ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | attribute |string |Attribute id | | tag |string | | ## RemoveTag Remove a tag from an attribute. ``` /attributes/removeTag ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | attribute |string |Attribute id | | tag |string | | # Communities ## RequestAccess POST a request object describing yourself and your organisation to request access to the desired community. ``` /communities/requestAccess/[uuid] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | uuid | | | ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | org_name |string |Organisation identifier (name) | | org_uuid |string |Globally used uuid of an organisation | | sync |integer | | | org_description |string |Describe the organisation | | email |string |Filter on user email | | message |string |Message to be included | | anonymise |integer |Anonymise the information regarding the server on which the request was issued | | gpgkey |string |A valid GPG key | | mock |integer |Mock the query | # Events ## Add POST a MISP Event JSON to this API to create an Event. Contained objects can also be included (such as attributes, objects, tags, etc). ``` /events/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | info |string |Quick event description | #### Optional | Name |Type |Description | | -- |-- |-- | | threat_level_id |integer | | | analysis |integer |Maturity of the event | | distribution |integer | | | sharing_group_id |integer | | | uuid |string | | | published |integer | | | timestamp |integer | | | date |date |The user set date field on the event level. If you are using restSearch, you can use any of the valid time related filters (examples: 7d, timestamps, [14d, 7d] for ranges, etc.) | | Attribute |string |Not supported | | Object |string |Not supported | | Shadow_Attribute |string |Not supported | | EventTag |string | | ## Edit POST a MISP Event JSON to this API to update an Event. Contained objects can also be included (such as attributes, objects, tags, etc). If the timestamp is set, it has to be newer than the existing Attribute. ``` /events/edit/[event_id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | event_id | | | ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | info |string |Quick event description | | threat_level_id |integer | | | analysis |integer |Maturity of the event | | distribution |integer | | | sharing_group_id |integer | | | uuid |string | | | published |integer | | | timestamp |integer | | | date |date |The user set date field on the event level. If you are using restSearch, you can use any of the valid time related filters (examples: 7d, timestamps, [14d, 7d] for ranges, etc.) | | Attribute |string |Not supported | | Object |string |Not supported | | Shadow_Attribute |string |Not supported | | EventTag |string | | ## Index POST a JSON filter object to this API to get the meta-data about matching events. ``` /events/index ``` ### URL Parameters ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | all |string |Search for a full or a substring (delimited by % for substrings) in the event info, event tags, attribute tags, attribute values or attribute comment fields | | attribute |string |Filter on attribute value | | published |integer | | | eventid |integer | | | datefrom |date | | | dateuntil |date | | | org |string |Can be either the ORG_ID or the ORG_NAME | | eventinfo |string |Quick event description | | tag |string | | | tags |string | | | distribution |integer | | | sharinggroup |integer |Sharing group ID | | analysis |integer |Maturity of the event | | threatlevel |integer | | | email |string |Filter on user email | | hasproposal |integer |The event contains proposals | | timestamp |integer | | | publishtimestamp |integer | | | publish_timestamp |integer | | | minimal |integer |Will only return id, timestamp, published and uuid | ## RestSearch Search MISP using a list of filter parameters and return the data in the selected format. The search is available on an event and an attribute level, just select the scope via the URL (/events/restSearch vs /attributes/restSearch). Besides the parameters listed, other, format specific ones can be passed along (for example: requested_attributes and includeContext for the CSV export). This API allows pagination via the page and limit parameters. ``` /events/restSearch ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | returnFormat |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | page |integer |Page number for the pagination | | limit |integer |Limit on the pagination | | value |string | | | type |string |The type of the attribute | | category |string | | | org |string |Can be either the ORG_ID or the ORG_NAME | | tag |string | | | tags |string | | | searchall |integer |Search for a full or a substring (delimited by % for substrings) in the event info, event tags, attribute tags, attribute values or attribute comment fields | | date |date |The user set date field on the event level. If you are using restSearch, you can use any of the valid time related filters (examples: 7d, timestamps, [14d, 7d] for ranges, etc.) | | last |string |Events published within the last x amount of time, where x can be defined in days, hours, minutes (for example 5d or 12h or 30m) | | eventid |integer | | | withAttachments |integer | | | metadata |integer |Will only return the metadata of the given query scope, contained data is omitted. | | uuid |string | | | published |integer | | | publish_timestamp |integer | | | timestamp |integer | | | enforceWarninglist |integer |Should the warning list be enforced. Adds `blocked` field for matching attributes | | sgReferenceOnly |integer |Will only return the sharing group ID | | eventinfo |string |Quick event description | | excludeLocalTags |integer |Exclude local tags from the export | | threat_level_id |integer | | ## AddTag Add a tag or a tag collection to an event. ``` /events/addTag ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | event |integer |Event id | | tag |string | | ## RemoveTag Remove a tag from an event. ``` /events/removeTag ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | event |integer |Event id | | tag |string | | # Event Graph ## Add POST a network in JSON format to this API to to keep an history of it ``` /event_graph/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | event_id |integer | | | network_json |string |Not supported | #### Optional | Name |Type |Description | | -- |-- |-- | | network_name |string |Not supported | # Event Reports ## Add POST a report in JSON format to create a report for the provided event ``` /event_reports/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | name |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | distribution |integer | | | content | | | ## Edit POST a report in JSON format to update the report ``` /event_reports/edit ``` ### URL Parameters ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | name |string | | | distribution |integer | | | content | | | # Feeds ## Add POST a MISP Feed descriptor JSON to this API to add a Feed. ``` /feeds/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | source_format |string | | | url |string | | | name |string | | | input_source |string |Specify whether the source (url field) is a directory (local) or an geniun url (network) | | provider |string |The name of the feed provider | #### Optional | Name |Type |Description | | -- |-- |-- | | enabled |integer | | | caching_enabled |integer |The feed is cached | | lookup_visible |integer |The lookup will not be visible in the feed correlation | | delete_local_file |integer |Remove file after ingestion | | headers |string |Headers to be passed with the requests. All separated by `\n` | | fixed_event |integer |target_event option might be considered | | target_event |integer |The provided ID will be reused as an existing event | | settings |string |Not supported | | publish |integer |The event will be published | | override_ids |integer |The IDS flags will be set to off for this feed | | delta_merge |integer |Merge attributes (only add new attribute, remove revoked attributes) | | distribution |integer | | | sharing_group_id |integer | | | tag_id |integer |A tad ID to attach to created events | | pull_rules |string |Not supported | | rules |string |Not supported | | event_id |integer | | ## Edit POST a MISP Feed descriptor JSON to this API to edit a Feed. ``` /feeds/edit/[feed_id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | feed_id | | | ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | source_format |string | | | url |string | | | name |string | | | enabled |integer | | | caching_enabled |integer |The feed is cached | | lookup_visible |integer |The lookup will not be visible in the feed correlation | | provider |string |The name of the feed provider | | input_source |string |Specify whether the source (url field) is a directory (local) or an geniun url (network) | | delete_local_file |integer |Remove file after ingestion | | headers |string |Headers to be passed with the requests. All separated by `\n` | | fixed_event |integer |target_event option might be considered | | target_event |integer |The provided ID will be reused as an existing event | | settings |string |Not supported | | publish |integer |The event will be published | | override_ids |integer |The IDS flags will be set to off for this feed | | delta_merge |integer |Merge attributes (only add new attribute, remove revoked attributes) | | distribution |integer | | | sharing_group_id |integer | | | tag_id |integer |A tad ID to attach to created events | | pull_rules |string |Not supported | | rules |string |Not supported | | event_id |integer | | ## PreviewIndex Sending a GET request to this endpoint will show the parsed feed in JSON format. ``` /feeds/previewIndex/[feed_id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | feed_id | | | ### Parameters # Galaxy Clusters ## Add POST a MISP GalaxyCluster JSON to this API to create a GalaxyCluster. Contained objects can also be included (such as relations, elements, tags, etc). ``` /galaxy_clusters/add/[galaxy_id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | galaxy_id | | | ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | value |string | | | description |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | distribution |integer | | | sharing_group_id |integer | | | uuid |string | | | version | | | | extends_uuid | | | | extends_version | | | | elements | | | | GalaxyClusterRelation | | | ## Edit POST a MISP GalaxyCluster JSON to this API to edit a GalaxyCluster ``` /galaxy_clusters/edit/[cluster_id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | cluster_id | | | ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | value |string | | | description |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | distribution |integer | | | sharing_group_id |integer | | | uuid |string | | | version | | | | extends_uuid | | | | extends_version | | | | elements | | | ## RestSearch Search MISP using a list of filter parameters and return the data in the selected format. This API allows pagination via the page and limit parameters. ``` /galaxy_clusters/restSearch ``` ### URL Parameters ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | page |integer |Page number for the pagination | | limit |integer |Limit on the pagination | | id |integer | | | uuid |string | | | galaxy_id | | | | galaxy_uuid | | | | version | | | | distribution |integer | | | org_id |integer | | | orgc_id | | | | tag_name | | | | custom | | | | minimal |integer |Will only return id, timestamp, published and uuid | | published |integer | | | value |string | | | extends_uuid | | | # Galaxy Cluster Relations ## Add POST a MISP GalaxyClusterRelation JSON to this API to create a GalaxyCluster relation. Contained objects can also be included (such as tags). ``` /galaxy_cluster_relations/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | galaxy_cluster_uuid |string |Source galaxy cluster UUID | | referenced_galaxy_cluster_uuid |string |Destination galaxy cluster UUID | | referenced_galaxy_cluster_type |string |The type of the relation. Example: `is`, `related-to`, ... | #### Optional | Name |Type |Description | | -- |-- |-- | | distribution |integer | | | sharing_group_id |integer | | | tags |string | | ## Edit POST a MISP GalaxyClusterRelation JSON to this API to edit a GalaxyCluster relation. Contained objects can also be included (such as tags). ``` /galaxy_cluster_relations/edit/[relation_id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | relation_id | | | ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | galaxy_cluster_uuid |string |Source galaxy cluster UUID | | referenced_galaxy_cluster_uuid |string |Destination galaxy cluster UUID | | referenced_galaxy_cluster_type |string |The type of the relation. Example: `is`, `related-to`, ... | #### Optional | Name |Type |Description | | -- |-- |-- | | distribution |integer | | | sharing_group_id |integer | | | tags |string | | # Logs ## Index POST a filter object to receive a JSON with the log entries matching the query. A simple get request will return the entire DB. You can use the filter parameters as url parameters with a GET request such as: https://path.to.my.misp/admin/logs/page:1/limit:200 - to run substring queries simply append/prepend/encapsulate the search term with %. All restSearch rules apply. ``` /admin/logs/index ``` ### URL Parameters ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | id |integer | | | title |string |The title of the log | | created |date | | | model |string | | | model_id |integer | | | action |string |The action that the user performed | | user_id |integer | | | change |string |The text contained in the change field | | email |string |Filter on user email | | org |string |Can be either the ORG_ID or the ORG_NAME | | description |string | | | ip |string |The IP of a login attempt | ## Event Index Simply run a get request on this endpoint to get the relevant log entries for a given event. This functionality is open to any user having access to a given event. ``` /logs/event_index ``` ### URL Parameters ### Parameters # Organisations ## Add POST an Organisation object in JSON format to this API to create a new organsiation. ``` /admin/organisations/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | name |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | description |string | | | type |string |The type of the attribute | | nationality |string | | | sector |string |The sector of the organisation | | uuid |string | | | contacts |string |Contact details for the organisation | | local |integer |If the organisation should have access to this instance, make sure that the Local organisation setting is checked. If you would only like to add a known external organisation for inclusion in sharing groups, uncheck the Local organisation setting. | ## Edit POST an Organisation object in JSON format to this API to create a new organsiation. ``` /admin/organisations/edit ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | name |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | description |string | | | type |string |The type of the attribute | | nationality |string | | | sector |string |The sector of the organisation | | uuid |string | | | contacts |string |Contact details for the organisation | | local |integer |If the organisation should have access to this instance, make sure that the Local organisation setting is checked. If you would only like to add a known external organisation for inclusion in sharing groups, uncheck the Local organisation setting. | # Roles ## Add POST a Role object in JSON format to this API to create a new role. 'permission' sets the data access permission (0 => read only, 1 => add/edit own, 2 => add/edit org, 3 => publish) ``` /admin/roles/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | name |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | perm_delegate |integer | | | perm_sync |integer | | | perm_admin |integer | | | perm_audit |integer | | | perm_auth |integer | | | perm_site_admin |integer | | | perm_regexp_access |integer | | | perm_tagger |integer | | | perm_galaxy_editor |integer | | | perm_template |integer | | | perm_sharing_group |integer | | | perm_tag_editor |integer | | | default_role |integer |The role is a default role (selected by default) | | perm_sighting |integer | | | permission |string | | ## Edit POST a Role object in JSON format to this API to edit a role. 'permission' sets the data access permission (0 => read only, 1 => add/edit own, 2 => add/edit org, 3 => publish) ``` /admin/roles/edit ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | name |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | perm_delegate |integer | | | perm_sync |integer | | | perm_admin |integer | | | perm_audit |integer | | | perm_auth |integer | | | perm_site_admin |integer | | | perm_regexp_access |integer | | | perm_tagger |integer | | | perm_galaxy_editor |integer | | | perm_template |integer | | | perm_sharing_group |integer | | | perm_tag_editor |integer | | | default_role |integer |The role is a default role (selected by default) | | perm_sighting |integer | | | permission |string | | # Servers ## Add POST an Server object in JSON format to this API to add a server. ``` /servers/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | url |string | | | name |string | | | remote_org_id |integer | | | authkey |string |The authorisation key found on the external server | #### Optional | Name |Type |Description | | -- |-- |-- | | push |integer |Allow the upload of events and their attribute to the server | | pull |integer |Allow the download of events and their attribute from the server | | push_sightings |integer |Allow the upload of sightings to the server | | push_rules |string |Not supported | | pull_rules |string |Not supported | | submitted_cert |string |Base64 encoded certificate | | submitted_client_cert |string |Base64 encoded certificate | | json |string |JSON containing ID, UUID and name | ## Edit POST an Server object in JSON format to this API to edit a server. ``` /servers/edit ``` ### URL Parameters ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | url |string | | | name |string | | | authkey |string |The authorisation key found on the external server | | json |string |JSON containing ID, UUID and name | | push |integer |Allow the upload of events and their attribute to the server | | pull |integer |Allow the download of events and their attribute from the server | | push_sightings |integer |Allow the upload of sightings to the server | | push_rules |string |Not supported | | pull_rules |string |Not supported | | submitted_cert |string |Base64 encoded certificate | | submitted_client_cert |string |Base64 encoded certificate | | remote_org_id |integer | | ## ServerSettings Send a GET request to this endpoint to get a full diagnostic along with all currently set settings of the current instance. This will also include the worker status ``` /servers/serverSettings ``` ### URL Parameters ### Parameters # Sightings ## Add POST a simplified sighting object in JSON format to this API to add a or a list of sightings. Pass either value(s) or attribute IDs (can be uuids) to identify the target sightings. ``` /sightings/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | ["values","id"] |Object |["values","id"] | #### Optional | Name |Type |Description | | -- |-- |-- | | type |string |The type of the attribute | | source |string |The source of the Sighting (e.g. honeypot_1) | | timestamp |integer | | | date |date |The user set date field on the event level. If you are using restSearch, you can use any of the valid time related filters (examples: 7d, timestamps, [14d, 7d] for ranges, etc.) | | time |string |Time of the sighting with the form `h:i:s` | ## RestSearch Search MISP sightings using a list of filter parameters and return the data in the JSON format. The search is available on an event, attribute or instance level, just select the scope via the URL (/sighting/restSearch/event vs /sighting/restSearch/attribute vs /sighting/restSearch/). id or uuid MUST be provided if context is set. ``` /sightings/restSearch/[context] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | context | | | ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | returnFormat |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | id |integer | | | uuid |string | | | type |string |The type of the attribute | | from |date |The date from which the event was published | | to |date |The date to which the event was published | | last |string |Events published within the last x amount of time, where x can be defined in days, hours, minutes (for example 5d or 12h or 30m) | | org_id |integer | | | source |string |The source of the Sighting (e.g. honeypot_1) | | includeAttribute |integer |Include matching attributes in the response | | includeEvent |integer |Include matching events in the response | # Sharing Groups ## Add POST a Sharing Group object in JSON format to this API to add a Sharing Group. The API will also try to capture attached organisations and servers if applicable to the current user. ``` /sharing_groups/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | name |string | | | releasability |string |Concise summary for who this sharing group is releasable to | #### Optional | Name |Type |Description | | -- |-- |-- | | description |string | | | uuid |string | | | organisation_uuid |string |Globally used uuid of an organisation | | active |integer |Is the sharing group selectable (active) when choosing distribution | | created |date | | | modified |date |The last time the sharing group was modified | | roaming |integer |Pass the event to any connected instance where the sync connection is tied to an organisation contained in the SG organisation list | | ["url","name","all_orgs"] |Object |["url","name","all_orgs"] | | ["uuid","name","extend"] |Object |["uuid","name","extend"] | ## Edit POST a Sharing Group object in JSON format to this API to edit a Sharing Group. The API will also try to capture attached organisations and servers if applicable to the current user. ``` /sharing_groups/edit ``` ### URL Parameters ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | name |string | | | releasability |string |Concise summary for who this sharing group is releasable to | | description |string | | | uuid |string | | | organisation_uuid |string |Globally used uuid of an organisation | | active |integer |Is the sharing group selectable (active) when choosing distribution | | created |date | | | modified |date |The last time the sharing group was modified | | roaming |integer |Pass the event to any connected instance where the sync connection is tied to an organisation contained in the SG organisation list | | ["url","name","all_orgs"] |Object |["url","name","all_orgs"] | | ["uuid","name","extend"] |Object |["uuid","name","extend"] | # Tags ## Add POST a Tag object in JSON format to this API to create a new tag. ``` /tags/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | name |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | colour |string |A valid hexadecimal colour `#ffffff` | | exportable |integer |The tag is exported when synchronising with other instances | | hide_tag |integer |The tag is hidden (not selectable) | | org_id |integer | | | user_id |integer | | ## Edit POST or PUT a Tag object in JSON format to this API to create a edit an existing tag. ``` /tags/edit/[tag_id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | tag_id | | | ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | name |string | | | colour |string |A valid hexadecimal colour `#ffffff` | | exportable |integer |The tag is exported when synchronising with other instances | | hide_tag |integer |The tag is hidden (not selectable) | | org_id |integer | | | user_id |integer | | ## RemoveTagFromObject Untag an event or attribute. Tag can be the id or the name. ``` /tags/removeTagFromObject ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | uuid |string | | | tag |string | | ## AttachTagToObject Attach a Tag to an object, refenced by an UUID. Tag can either be a tag id or a tag name. ``` /tags/attachTagToObject ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | uuid |string | | | tag |string |Also supports array of tags | ## Search GET or POST the tags to search for as a raw string or as a list. The strict_tag_name_only parameter only returns tags matching exactly the tag name (thus, skipping synonyms and cluster's value) ``` /tags/search/[tag_name]/[strict_tag_name_only] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | tag_name | | | | strict_tag_name_only | | | ### Parameters # Users ## Add POST a User object in JSON format to this API to create a new user. ``` /admin/users/add ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | email |string |Filter on user email | | org_id |integer | | | role_id |integer | | #### Optional | Name |Type |Description | | -- |-- |-- | | password |string |The hardcoded password | | external_auth_required |integer |An external authorisation is required for this user | | external_auth_key |string |A valid external auth key | | enable_password |integer |Set the password manually | | nids_sid |integer |The unique Signature Identification | | server_id |integer | | | gpgkey |string |A valid GPG key | | certif_public |string |A valid x509 certificate | | autoalert |integer |The user receive alerts when events are published | | contactalert |integer |The user receive alerts from `contact reporter` requests | | disabled |integer |Disable the user account | | change_pw |integer |The user will be prompted the change the password | | termsaccepted |integer | | | newsread |integer |The news are read | ## Edit POST a User object in JSON format to this API to edit a user. ``` /admin/users/edit ``` ### URL Parameters ### Parameters #### Optional | Name |Type |Description | | -- |-- |-- | | email |string |Filter on user email | | org_id |integer | | | role_id |integer | | | password |string |The hardcoded password | | external_auth_required |integer |An external authorisation is required for this user | | external_auth_key |string |A valid external auth key | | enable_password |integer |Set the password manually | | nids_sid |integer |The unique Signature Identification | | server_id |integer | | | gpgkey |string |A valid GPG key | | certif_public |string |A valid x509 certificate | | autoalert |integer |The user receive alerts when events are published | | contactalert |integer |The user receive alerts from `contact reporter` requests | | disabled |integer |Disable the user account | | change_pw |integer |The user will be prompted the change the password | | termsaccepted |integer | | | newsread |integer |The news are read | ## QuickEmail POST a body and a subject in a JSON to send an e-mail through MISP to the user ID given in the URL ``` /admin/users/quickEmail ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | subject |string |The email's subject | | body |string |The email's body | ## Change Pw POST a password via a JSON object containing the password key to reset the given user\'s password. ``` /users/change_pw ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | password |string |The hardcoded password | ## Statistics Simply GET the url endpoint to view the API output of the statistics API. Additional statistics are available via the following tab-options similar to the UI: data, orgs, users, tags, attributehistogram, sightings, attackMatrix ``` /users/statistics/[tab] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | tab | | | ### Parameters # User Settings ## SetSetting POST a User setting object in JSON format to this API to create a new setting or update the equivalent existing setting. Admins/site admins can specify a user ID besides their own. ``` /user_settings/setSetting ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | setting | | | | value |string | | #### Optional | Name |Type |Description | | -- |-- |-- | | user_id |integer | | ## Delete POST or DELETE to this API to delete an existing setting. ``` /user_settings/delete/[id] ``` ### URL Parameters | Name |Type |Description | | -- |-- |-- | | id | | | ### Parameters # Warninglists ## CheckValue POST a JSON list with value(s) to check against the warninglists to get a JSON dictionary as a response with any hits, if there are any (with the key being the passed value triggering a warning). ``` /warninglists/checkValue ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | [] |string |Not supported (warninglist->checkvalues) expect an array | ## ToggleEnable POST a json object with a single or a list of warninglist IDsIDs, or alternatively a (list of) substring(s) that match the names of warninglist(s) to toggle whether they're enabled or disabled. Specify the optional enabled boolean flag if you would like to enforce the outcome state. Not setting this flag will just toggle the current state. ``` /warninglists/toggleEnable ``` ### URL Parameters ### Parameters #### Mandatory | Name |Type |Description | | -- |-- |-- | | id |integer | | #### Optional | Name |Type |Description | | -- |-- |-- | | id |integer | | | name |string | | | enabled |integer | |