├── README.md └── dmca-2.1.1.yaml /README.md: -------------------------------------------------------------------------------- 1 | # DMCA.com [![DMCA API](https://images.dmca.com/Badges/dmca-badge-w200-5x1-04.png)](https://www.dmca.com) 2 | See the [API docs](https://app.swaggerhub.com/apis-docs/dmca/dmca-api/2.1.1) 3 | 4 | The official documentation for DMCA services API. 5 | Use the API to 6 | - [register an account](https://app.swaggerhub.com/apis-docs/dmca/dmca-api/2.1.1#/Public%20API/%2Fregister%2Fpost) 7 | - [login to API and get your token](https://app.swaggerhub.com/apis-docs/dmca/dmca-api/2.1.1#/Public%20API/%2Flogin%2Fpost) 8 | - [create a dmca takedown case](https://app.swaggerhub.com/apis-docs/dmca/dmca-api/2.1.1#/DMCA%20Takedowns%20Public%20API/%2FcreateCase%2Fpost) 9 | - [list your dmca takedown cases](https://app.swaggerhub.com/apis-docs/dmca/dmca-api/2.1.1#/DMCA%20Takedowns%20Public%20API/%2FlistCases%2Fget) 10 | - [register an affiliate account](https://app.swaggerhub.com/apis-docs/dmca/dmca-api/2.1.1#/DMCA.com%20Affiliate/%2FregisterAffiliate%2Fpost) 11 | - [create DIY cases](https://app.swaggerhub.com/apis-docs/dmca/dmca-api/2.1.1#/DMCA%20DIY%20Cases/%2FcreateDIYCase%2Fpost) 12 | - get a new badge id 13 | 14 | ## Usage Requirements 15 | 16 | You must have an active account at https://www.dmca.com?r=ghapi 17 | 18 | ## Documentation 19 | 20 | See the [API docs](https://app.swaggerhub.com/apis-docs/dmca/dmca-api/2.1.1). 21 | 22 | 23 | ## API JS Example 24 | 25 |
 function newRegistration(firstName, lastName, companyName, email, callBack) {
26 |                 var data = {
27 |                         "FirstName": firstName,
28 |                         "LastName": lastName,
29 |                         "CompanyName": companyName,
30 |                         "Email": email
31 |                     };
32 |                 $.ajax({
33 |                     type: "POST",
34 |                     contentType: 'application/json; charset=utf-8',
35 |                     url: "https://api.dmca.com/register",
36 |                     data: JSON.stringify(data),
37 |                     dataType: "json",
38 |                     crossDomain: true,
39 |                     context: this,
40 |                     success: function (response) {
41 |                         if (typeof callBack !== 'undefined') { callBack(response); }
42 |                     }
43 |                 });
44 |             }
45 | -------------------------------------------------------------------------------- /dmca-2.1.1.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.1 2 | info: 3 | title: DMCA API 4 | description: "This is the documentation for dmca services API. You can create a 5 | free account at dmca.com for use with many of these API calls.You can also use 6 | any existing DMCA account.\n\n[Visit DMCA.com for access to this API ](https://www.dmca.com?api) 7 | " 8 | termsOfService: https://www.dmca.com/TermsOfService 9 | version: 2.1.1 10 | servers: 11 | - url: https://api.dmca.com 12 | tags: 13 | - name: Public API 14 | description: Common API methods for using DMCA services 15 | externalDocs: 16 | description: Find out more 17 | url: https://www.dmca.com/?r=oasapi 18 | - name: DMCA Takedowns Public API 19 | description: CRUD Operations for DMCA Cases 20 | externalDocs: 21 | description: Find out more 22 | url: https://www.dmca.com/takedowns.aspx?r=oasapi 23 | - name: DMCA DIY Cases 24 | description: CRUD Operations for do-it-yourself (DIY cases - not managed or processed) 25 | externalDocs: 26 | description: Find out more 27 | url: https://www.dmca.com/ProtectionPro.aspx#DIYCaseManagement?r=oasapi 28 | - name: DMCA Compliance API 29 | description: CRUD Operations for DMCA Compliance 30 | externalDocs: 31 | description: Find out more 32 | url: https://www.dmca.com/compliant.aspx?r=oasapi 33 | - name: DMCA Badges 34 | description: Management and CRUD Operations for DMCA Badge related services 35 | externalDocs: 36 | description: Find out more 37 | url: https://www.dmca.com/badges.aspx 38 | - name: DMCA.com Affiliate 39 | description: Common API methods for using DMCA services 40 | externalDocs: 41 | description: Find out more 42 | url: https://www.dmca.com/Affiliates/Signup.aspx?r=oasapi 43 | - name: DMCA Site Report 44 | description: Common API methods for using DMCA services 45 | externalDocs: 46 | description: Find out more 47 | url: https://www.dmca.com/?r=oasapi 48 | paths: 49 | /register: 50 | post: 51 | tags: 52 | - Public API 53 | summary: register a new user for dmca.com and this API 54 | description: Registers a new dmca.com user and returns a badge ID. A confirmation 55 | email will be sent to the email provided with login instructions. 56 | operationId: /register/post 57 | requestBody: 58 | description: create a new child object under your account 59 | content: 60 | application/json: 61 | schema: 62 | $ref: '#/components/schemas/newUserObj' 63 | required: true 64 | responses: 65 | 200: 66 | description: Success operation 67 | 401: 68 | description: Failed operation 69 | security: 70 | - apikeyQuery: [] 71 | /login: 72 | post: 73 | tags: 74 | - Public API 75 | summary: login to the DMCA.com API 76 | description: Logs you in with standard email and password credentials, returns 77 | a token for use in API calls. Please make sure you're only doing this in the 78 | !!BODY!! with !!HTTPS only!!. HTTPS is MANDATORY. 79 | operationId: /login/post 80 | requestBody: 81 | description: create a new child object under your account 82 | content: 83 | application/json: 84 | schema: 85 | $ref: '#/components/schemas/loginObj' 86 | required: true 87 | responses: 88 | 200: 89 | description: Success operation 90 | 401: 91 | description: Failed operation 92 | security: 93 | - apikeyQuery: [] 94 | /createCase: 95 | post: 96 | tags: 97 | - DMCA Takedowns Public API 98 | summary: Creates a new takedown case and returns a case ID 99 | description: Creates a Takedown case to be processed by DMCA.com, the user that's 100 | creating the case will get a case creation email notice 101 | operationId: /createCase/post 102 | parameters: 103 | - name: Token 104 | in: header 105 | description: Security token from Login method or from API section of DMCA.com 106 | website 107 | required: true 108 | style: simple 109 | explode: false 110 | schema: 111 | type: string 112 | requestBody: 113 | description: create a new dmca takedown case object under your account 114 | content: 115 | application/json: 116 | schema: 117 | $ref: '#/components/schemas/createCaseObj' 118 | required: true 119 | responses: 120 | 200: 121 | description: Success operation - Returns Case ID 122 | 429: 123 | description: Failed request - Rate limit exceeded 124 | security: 125 | - apikeyQuery: [] 126 | /updateCase: 127 | post: 128 | tags: 129 | - DMCA Takedowns Public API 130 | summary: Updates an existing takedown case and returns a case ID 131 | description: Updates an existing case object. Max 100 executions per day (email 132 | api@dmca.com to have limit increased) Parameter names are case sensitive 133 | operationId: /updateCase/post 134 | parameters: 135 | - name: Token 136 | in: header 137 | description: Security token from Login method or from API section of DMCA.com 138 | website 139 | required: true 140 | style: simple 141 | explode: false 142 | schema: 143 | type: string 144 | requestBody: 145 | description: create a new dmca takedown case object under your account 146 | content: 147 | application/json: 148 | schema: 149 | $ref: '#/components/schemas/updateCaseObj' 150 | required: true 151 | responses: 152 | 200: 153 | description: Success operation - Returns Case ID 154 | security: 155 | - apikeyQuery: [] 156 | /listCases: 157 | get: 158 | tags: 159 | - DMCA Takedowns Public API 160 | summary: gets a list of account cases 161 | description: Returns a list of takedown cases associated with the account 162 | operationId: /listCases/get 163 | parameters: 164 | - name: Token 165 | in: header 166 | description: Security token from Login method or from API section of DMCA.com 167 | website 168 | required: true 169 | style: simple 170 | explode: false 171 | schema: 172 | type: string 173 | - name: page 174 | in: query 175 | description: allows for paging through result set, max results is 50 per page. 176 | i.e. page=3 177 | required: false 178 | style: form 179 | explode: true 180 | schema: 181 | type: number 182 | responses: 183 | 200: 184 | description: Success operation - Returns list of cases 185 | security: 186 | - apikeyQuery: [] 187 | /getCaseById: 188 | get: 189 | tags: 190 | - DMCA Takedowns Public API 191 | - DMCA Compliance API 192 | - DMCA DIY Cases 193 | summary: gets a case by its ID, must be owned by the API users account 194 | description: Returns a single case object 195 | operationId: /getCaseById/get 196 | parameters: 197 | - name: Token 198 | in: header 199 | description: Security token from Login method or from API section of DMCA.com 200 | website 201 | required: true 202 | style: simple 203 | explode: false 204 | schema: 205 | type: string 206 | - name: id 207 | in: query 208 | description: case the ID that's returned by listCases or createCase method 209 | required: true 210 | style: form 211 | explode: true 212 | schema: 213 | type: string 214 | responses: 215 | 200: 216 | description: Success operation - Returns the requested case object 217 | 404: 218 | description: Failed operation - Case not found 219 | security: 220 | - apikeyQuery: [] 221 | /listDIYCases: 222 | get: 223 | tags: 224 | - DMCA DIY Cases 225 | summary: Gets a list of DIY cases on your account 226 | description: Returns a list of takedown cases associated with the account 227 | operationId: /listDIYCases/get 228 | parameters: 229 | - name: Token 230 | in: header 231 | description: Security token from Login method or from API section of DMCA.com 232 | website 233 | required: true 234 | style: simple 235 | explode: false 236 | schema: 237 | type: string 238 | - name: page 239 | in: query 240 | description: allows for paging through result set, max results is 50 per page. 241 | i.e. page=3 242 | required: false 243 | style: form 244 | explode: true 245 | schema: 246 | type: number 247 | responses: 248 | 200: 249 | description: Success operation - Returns list of cases 250 | security: 251 | - apikeyQuery: [] 252 | /createDIYCase: 253 | post: 254 | tags: 255 | - DMCA DIY Cases 256 | summary: Creates a new DIY takedown case 257 | description: Creates a new DIY Case and returns its ID (A free do it yourself 258 | takedown case). This will not be reviewed, processed or sent anywhere. 259 | operationId: /createDIYCase/post 260 | parameters: 261 | - name: Token 262 | in: header 263 | description: Security token from Login method or from API section of DMCA.com 264 | website 265 | required: true 266 | style: simple 267 | explode: false 268 | schema: 269 | type: string 270 | requestBody: 271 | description: create a new DIY case object under your account 272 | content: 273 | application/json: 274 | schema: 275 | $ref: '#/components/schemas/createDIYCaseObj' 276 | required: true 277 | responses: 278 | 200: 279 | description: Success operation - Returns Case ID 280 | security: 281 | - apikeyQuery: [] 282 | /createComplianceCase: 283 | post: 284 | tags: 285 | - DMCA Compliance API 286 | summary: Creates a new compliance case for site specified 287 | description: On Accounts with compliance case submission services enabled this 288 | method will add a case to the compliance list on the site owners account. 289 | The site must have this service enabled. 290 | operationId: /createComplianceCase/post 291 | requestBody: 292 | description: create a new compliance case under the site id provided 293 | content: 294 | application/json: 295 | schema: 296 | $ref: '#/components/schemas/complianceCaseObj' 297 | required: true 298 | responses: 299 | 200: 300 | description: Success operation - Returns Case ID. Case creation email will 301 | be sent 302 | security: 303 | - apikeyQuery: [] 304 | /listComplianceCases: 305 | get: 306 | tags: 307 | - DMCA Compliance API 308 | summary: Gets a list of Compliance cases 309 | description: Returns a list of takedown cases associated with the account 310 | operationId: /listComplianceCases/get 311 | parameters: 312 | - name: Token 313 | in: header 314 | description: Security token from Login method or from API section of DMCA.com 315 | website 316 | required: true 317 | style: simple 318 | explode: false 319 | schema: 320 | type: string 321 | - name: page 322 | in: query 323 | description: allows for paging through result set, max results is 50 per page. 324 | i.e. page=3 325 | required: false 326 | style: form 327 | explode: true 328 | schema: 329 | type: number 330 | responses: 331 | 200: 332 | description: Success operation - Returns list of cases 333 | security: 334 | - apikeyQuery: [] 335 | /queuePage: 336 | get: 337 | tags: 338 | - DMCA Badges 339 | summary: Queue a page to be scanned 340 | description: Queue a page to scanned 341 | operationId: /queuePage/get 342 | parameters: 343 | - name: id 344 | in: query 345 | description: badge id 346 | required: true 347 | style: form 348 | explode: true 349 | schema: 350 | type: string 351 | - name: refurl 352 | in: query 353 | description: url to be scanned. should include https:// or http:// 354 | required: true 355 | style: form 356 | explode: true 357 | schema: 358 | type: string 359 | responses: 360 | 200: 361 | description: Success operation 362 | security: 363 | - apikeyQuery: [] 364 | /getRegisteredBadges: 365 | get: 366 | tags: 367 | - DMCA Badges 368 | summary: Get DMCA badge embed codes 369 | description: Use this to generate badge codes for a given badge / account 370 | operationId: /getRegisteredBadges/get 371 | parameters: 372 | - name: AccountID 373 | in: query 374 | description: badge or account id 375 | required: true 376 | style: form 377 | explode: true 378 | schema: 379 | type: string 380 | responses: 381 | 200: 382 | description: Success operation 383 | security: 384 | - apikeyQuery: [] 385 | /registerAffiliate: 386 | post: 387 | tags: 388 | - DMCA.com Affiliate 389 | summary: Registers a child account 390 | description: Creates a new affiliate / child account and returns the new child 391 | account username and pw. Child account will be emailed to confirm 392 | operationId: /registerAffiliate/post 393 | parameters: 394 | - name: Token 395 | in: header 396 | description: Security token from Login method or from API section of DMCA.com 397 | website 398 | required: true 399 | style: simple 400 | explode: false 401 | schema: 402 | type: string 403 | requestBody: 404 | description: create a new child object under your account 405 | content: 406 | application/json: 407 | schema: 408 | $ref: '#/components/schemas/newChildObj' 409 | required: true 410 | responses: 411 | 200: 412 | description: Success operation 413 | 401: 414 | description: Failed operation 415 | security: 416 | - apikeyQuery: [] 417 | /listAffiliates: 418 | get: 419 | tags: 420 | - DMCA.com Affiliate 421 | summary: Returns list of child accounts 422 | description: Returns a list of affiliate under your account 423 | operationId: /listAffiliates/get 424 | parameters: 425 | - name: page 426 | in: query 427 | description: allows for paging through result set, max results is 50 per page. 428 | i.e. page=3 429 | required: false 430 | style: form 431 | explode: true 432 | schema: 433 | type: number 434 | - name: Token 435 | in: header 436 | description: Security token from Login method or from API section of DMCA.com 437 | website 438 | required: true 439 | style: simple 440 | explode: false 441 | schema: 442 | type: string 443 | responses: 444 | 200: 445 | description: Success operation - Returns list of affiliates 446 | security: 447 | - apikeyQuery: [] 448 | /getAffiliateStats: 449 | get: 450 | tags: 451 | - DMCA.com Affiliate 452 | summary: Returns commission report 453 | description: Returns a breakdown of orders that have come in, what will be paid 454 | or whats owed 455 | operationId: /getAffiliateStats/get 456 | parameters: 457 | - name: Token 458 | in: header 459 | description: Security token from Login method or from API section of DMCA.com 460 | website 461 | required: true 462 | style: simple 463 | explode: false 464 | schema: 465 | type: string 466 | - name: page 467 | in: query 468 | description: allows for paging through result set, max results is 50 per page. 469 | i.e. page=3 470 | required: false 471 | style: form 472 | explode: true 473 | schema: 474 | type: number 475 | responses: 476 | 200: 477 | description: Success operation - Returns list of affiliates 478 | security: 479 | - apikeyQuery: [] 480 | /resetChildPw: 481 | post: 482 | tags: 483 | - DMCA.com Affiliate 484 | summary: Reset and resend the pw of a child account 485 | description: This operation will reset and resend a new PW to a child account. 486 | It will first verify that the child account belongs to the corresponding security 487 | token 488 | operationId: /resetChildPw/post 489 | parameters: 490 | - name: Token 491 | in: header 492 | description: Security token from Login method or from API section of DMCA.com 493 | website 494 | required: true 495 | style: simple 496 | explode: false 497 | schema: 498 | type: string 499 | requestBody: 500 | description: email address of the child account to have its password reset 501 | content: 502 | application/json: 503 | schema: 504 | $ref: '#/components/schemas/emailObj' 505 | required: true 506 | responses: 507 | 200: 508 | description: Success operation 509 | 401: 510 | description: Failed operation 511 | security: 512 | - apikeyQuery: [] 513 | /enableProtectionPro: 514 | post: 515 | tags: 516 | - DMCA.com Affiliate 517 | summary: Enable Protection Pro on affiliate/child account 518 | description: This operation will enable protection pro on the account specified. 519 | They will receive a welcome email that will direct them into the dmca.com 520 | dashboard. 521 | operationId: /enableProtectionPro/post 522 | parameters: 523 | - name: childAccountId 524 | in: query 525 | description: account id of the child account to be upgraded 526 | required: true 527 | style: form 528 | explode: true 529 | schema: 530 | type: string 531 | - name: Token 532 | in: header 533 | description: Security token from Login method or from API section of DMCA.com 534 | website 535 | required: true 536 | style: simple 537 | explode: false 538 | schema: 539 | type: string 540 | responses: 541 | 200: 542 | description: Success operation 543 | 401: 544 | description: Failed operation 545 | security: 546 | - apikeyQuery: [] 547 | /disableProtectionPro: 548 | post: 549 | tags: 550 | - DMCA.com Affiliate 551 | summary: Disable Protection Pro on affiliate/child account 552 | description: This operation will disable protection pro on the account specified. 553 | operationId: /disableProtectionPro/post 554 | parameters: 555 | - name: childAccountId 556 | in: query 557 | description: account id of the child account to be upgraded 558 | required: true 559 | style: form 560 | explode: true 561 | schema: 562 | type: string 563 | - name: Token 564 | in: header 565 | description: Security token from Login method or from API section of DMCA.com 566 | website 567 | required: true 568 | style: simple 569 | explode: false 570 | schema: 571 | type: string 572 | responses: 573 | 200: 574 | description: Success operation 575 | 401: 576 | description: Failed operation 577 | security: 578 | - apikeyQuery: [] 579 | /getSiteReport/{domain}: 580 | get: 581 | tags: 582 | - DMCA Site Report 583 | summary: Returns a single site report object 584 | description: Returns a single site report object. If the site report (profile) 585 | for the given domain doesn't exist, the base record will be created but will 586 | still need to be claimed, validated etc. to be edited. 587 | operationId: /getSiteReport/{domain} 588 | parameters: 589 | - name: domain 590 | in: path 591 | description: the fully qualified domain name of the site report 592 | required: true 593 | style: simple 594 | explode: false 595 | schema: 596 | type: string 597 | responses: 598 | 200: 599 | description: Success operation 600 | components: 601 | schemas: 602 | createCaseObj: 603 | type: object 604 | properties: 605 | subject: 606 | type: string 607 | description: 608 | type: string 609 | copiedFromUrl: 610 | type: string 611 | infringingUrl: 612 | type: string 613 | infringingSiteIp: 614 | type: string 615 | xml: 616 | name: createCaseObj 617 | createDIYCaseObj: 618 | type: object 619 | properties: 620 | subject: 621 | type: string 622 | description: 623 | type: string 624 | copiedFromUrl: 625 | type: string 626 | infringingUrl: 627 | type: string 628 | infringingSiteIp: 629 | type: string 630 | type: 631 | type: string 632 | enum: 633 | - Business - General 634 | - Personal - General 635 | - Toolkit Business Request CAN 636 | - Toolkit Business Request EU 637 | - Toolkit Personal Request CAN 638 | - Toolkit Personal Request EU 639 | - Toolkit Personal Request India 640 | - Toolkit Business Request India 641 | xml: 642 | name: createCaseObj 643 | updateCaseObj: 644 | type: object 645 | properties: 646 | case_id: 647 | type: string 648 | status: 649 | type: string 650 | subject: 651 | type: string 652 | description: 653 | type: string 654 | copiedFromUrl: 655 | type: string 656 | infringingUrl: 657 | type: string 658 | infringingSiteIp: 659 | type: string 660 | priority: 661 | type: string 662 | xml: 663 | name: updateCaseObj 664 | complianceCaseObj: 665 | type: object 666 | properties: 667 | submitterEmail: 668 | type: string 669 | submitterFirstName: 670 | type: string 671 | submitterLastName: 672 | type: string 673 | submitterCompanyName: 674 | type: string 675 | description: 676 | type: string 677 | copiedFromUrl: 678 | type: string 679 | infringingUrl: 680 | type: string 681 | infringingSiteIp: 682 | type: string 683 | siteId: 684 | type: string 685 | description: id of the site the case is being submitted to. (note the site 686 | owner must have this feature enabled) 687 | xml: 688 | name: complianceCaseObj 689 | newChildObj: 690 | type: object 691 | properties: 692 | FirstName: 693 | type: string 694 | LastName: 695 | type: string 696 | ClientEmail: 697 | type: string 698 | description: New clients email 699 | example: john@dmca.com 700 | CompanyName: 701 | type: string 702 | AffiliateToken: 703 | type: string 704 | description: 10 digit affiliate token 705 | xml: 706 | name: newChildObj 707 | newUserObj: 708 | type: object 709 | properties: 710 | FirstName: 711 | type: string 712 | LastName: 713 | type: string 714 | Email: 715 | type: string 716 | description: email address. (will be emailed to validate) 717 | example: john@dmca.com 718 | CompanyName: 719 | type: string 720 | mpi: 721 | type: string 722 | description: Main Product Interest 723 | enum: 724 | - Protection Pro 725 | - DMCA Takedowns 726 | - DMCA Compliance 727 | xml: 728 | name: newUserObj 729 | loginObj: 730 | type: object 731 | properties: 732 | email: 733 | type: string 734 | example: john@dmca.com 735 | password: 736 | type: string 737 | xml: 738 | name: loginObj 739 | emailObj: 740 | type: object 741 | properties: 742 | ClientEmail: 743 | type: string 744 | example: john@dmca.com 745 | xml: 746 | name: emailObj 747 | securitySchemes: 748 | apikeyQuery: 749 | type: apiKey 750 | name: Token 751 | in: header 752 | --------------------------------------------------------------------------------